/*
*
* Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute
- Graduate School and Research in Engineering.
* See the file license.txt for copyright permission.
*
*/
package alteraEstudoCaso;
import java.util.List;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import DAO.PerioPMDAO;
import DAO.Impl.HPDAOImpl;
import DAO.Impl.PerioPMDAOImpl;
import DAO.controle.FabricaDeDao;
import DAO.exception.ObjetoNaoEncontradoException;
import modelo.DeModPer;
import modelo.PerioPM;
import service.PerioPMAppService;
import service.DeModPerAppService;
import service.controleTransacao.FabricaDeAppService;
import util.JPAUtil;
/**
*
* @author felipe.arruda
*
*/
public class EstudoAlteraDemandaDePeriodo {
private static PerioPMDAO perioPMDAO;
private static DeModPerAppService deModPerService;
private PerioPM perioPM;
private PerioPM perioPMAnterior;
@BeforeClass
public void setupClass() throws ObjetoNaoEncontradoException{
try {
perioPMDAO = FabricaDeDao.getDao(PerioPMDAOImpl.class);
deModPerService = FabricaDeAppService.getAppService(DeModPerAppService.class);
} catch (Exception e) {
e.printStackTrace();
}
//pega o ultimo periodo da lista de periopms
int periodoPMFinal = perioPMDAO.recuperaListaDePerioPMs().size();
perioPM = perioPMDAO.recuperaPerioPMPorPeriodoPM(periodoPMFinal);
//recupera o ultimo periodo junto com os demodpers.
perioPM = perioPMDAO.recuperaPerioPMComDeModPers(perioPM);
//recupera informacoes sobre o periodo anterior
perioPMAnterior = perioPMDAO.recuperaPerioPMPorPeriodoPM(periodoPMFinal-1);
perioPMAnterior = perioPMDAO.recuperaPerioPMComDeModPers(perioPMAnterior);
}
/**
* Altera as demandas do ultimo periodo para ficarem iguais das demandas do periodo anterior
*/
@Test
public void alterarDemandasUltimoPeriodo(){
//percorre a lista de demod
for(int i=0;i<perioPM.getDeModPers().size();i++){
DeModPer atual = perioPM.getDeModPers().get(i);
DeModPer anterior = perioPMAnterior.getDeModPers().get(i);
//coloca os pedidos do modelo atual como sendo do mesmo modelo, mas do periodo anterior.
atual.setPedidosModelo(anterior.getPedidosModelo());
//coloca os vendas do modelo atual como sendo do mesmo modelo, mas do periodo anterior.
atual.setVendasProjetadasModelo(anterior.getVendasProjetadasModelo());
deModPerService.altera(atual);
}
System.out.println(">>>>alterarDemandasUltimoPeriodo");
}
}