diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/CalcularPeajeController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/CalcularPeajeController.java index 161426128..49d7477b1 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/CalcularPeajeController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/CalcularPeajeController.java @@ -12,9 +12,12 @@ import org.zkoss.zul.Combobox; import org.zkoss.zul.Messagebox; import com.rjconsultores.ventaboletos.constantes.Constantes; import com.rjconsultores.ventaboletos.entidad.ClasseIndicePeaje; +import com.rjconsultores.ventaboletos.entidad.EmpresaImposto; import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.entidad.RutaEmpresa; import com.rjconsultores.ventaboletos.service.CalcularPeajeService; +import com.rjconsultores.ventaboletos.service.EmpresaImpostoService; import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService; import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; @@ -31,6 +34,9 @@ public class CalcularPeajeController extends MyGenericForwardComposer { private RutaService rutaService; @Autowired private CalcularPeajeService calcularPeajeService; + @Autowired + private EmpresaImpostoService empresaImpostoService; + private Combobox cmbOrgaoConcedente; private List lsOrgaoConcedente; @@ -67,6 +73,13 @@ public class CalcularPeajeController extends MyGenericForwardComposer { OrgaoConcedente orgao = ((OrgaoConcedente) cmbOrgaoConcedente.getSelectedItem().getValue()); if (orgao.getIndicePeaje() != null) { List lsRuta = rutaService.buscaRutasFromOrgao(orgao); + if (!validarImpostoICMSEmpresa(lsRuta)){ + Messagebox.show("Foram encontradas empresas com ICMS nulo, o cálculo não poderá ser realizado.", + Labels.getLabel("indexController.mniCalculoPeaje.label"), Messagebox.OK, Messagebox.ERROR); + + return; + } + try { calcularPeajeService.gerarSQLInserirPeajes(lsRuta, orgao); @@ -103,4 +116,28 @@ public class CalcularPeajeController extends MyGenericForwardComposer { Labels.getLabel("indexController.mniCalculoPeaje.label"), Messagebox.NO, Messagebox.ERROR); } } + + private boolean validarImpostoICMSEmpresa(List lsRuta){ + List lsEmpresaId = new ArrayList(); + + for (Ruta ruta: lsRuta){ + for (RutaEmpresa rutaEmpresa: ruta.getLsRutaEmpresa()){ + if (lsEmpresaId.contains(rutaEmpresa.getEmpresa().getEmpresaId())){ + continue; + } + + lsEmpresaId.add(rutaEmpresa.getEmpresa().getEmpresaId()); + } + } + + for (Integer empresaId: lsEmpresaId){ + for (EmpresaImposto empresaImposto: empresaImpostoService.buscarEmpresaImposto(empresaId)){ + if (empresaImposto.getIcms() == null){ + return false; + } + } + } + + return true; + } }