diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaController.java index 402eb4057..bbf2a1d3f 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaController.java @@ -1444,15 +1444,47 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { } private void gravaFechamentoCtaCorrente() { - List params = fechamentoParamptovtaService.buscaParametrosPorPuntoventa(puntoVenta); - for (int i = 0; i < params.size(); i++) { - FechamentoParamptovta fechamentoParamptovta = (FechamentoParamptovta) params.get(i); - fechamentoParamptovtaService.borrar(fechamentoParamptovta); + List paramsFechamento = fechamentoParamptovtaService.buscaParametrosPorPuntoventa(puntoVenta); + gravarCC(paramsFechamento); + removerCC(paramsFechamento); + } + + private void gravarCC(List paramsFechamento) { + boolean encontrouEmpresaComFechamentoConfigurado = false; + for (Object object : fechamentoParamptovtaList.getListData()) { + encontrouEmpresaComFechamentoConfigurado = false; + FechamentoParamptovta fechamentoParamptovta = (FechamentoParamptovta) object; + //verifica se empresa já está configurada com fechamento de conta corrente + for(FechamentoParamptovta paramFechamento : paramsFechamento){ + if(fechamentoParamptovta.getEmpresa().getEmpresaId() == paramFechamento.getEmpresa().getEmpresaId()){ + encontrouEmpresaComFechamentoConfigurado = true; + break; + } + } + //Caso não esteja configurada insere no banco + if(!encontrouEmpresaComFechamentoConfigurado){ + fechamentoParamptovta.setPuntoventa(puntoVenta); + fechamentoParamptovtaService.suscribir(fechamentoParamptovta); + } } - for (Object object : fechamentoParamptovtaList.getListData()) { - FechamentoParamptovta fechamentoParamptovta = (FechamentoParamptovta) object; - fechamentoParamptovta.setPuntoventa(puntoVenta); - fechamentoParamptovtaService.suscribir(fechamentoParamptovta); + } + + private void removerCC(List paramsFechamento) { + boolean removerEmpresa = true; + for(FechamentoParamptovta paramFechamento : paramsFechamento){ + removerEmpresa = true; + //Procura por empresas que estão no banco mas não estão na lista + for (Object object : fechamentoParamptovtaList.getListData()) { + FechamentoParamptovta fechamentoParamptovta = (FechamentoParamptovta) object; + if(paramFechamento.getEmpresa().getEmpresaId() == fechamentoParamptovta.getEmpresa().getEmpresaId()){ + removerEmpresa = false; + break; + } + } + //Remove do banco a empresa que não está na lista + if(removerEmpresa){ + fechamentoParamptovtaService.borrar(paramFechamento); + } } }