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 5e5302a7e..845116457 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 @@ -105,9 +105,8 @@ public class CalcularPeajeController extends MyGenericForwardComposer { public void onClick$btnCalcularPeaje(Event ev) throws InterruptedException { OrgaoConcedente orgao = null; - boolean orgaoListaRutasHasIndices = true; - List lsRutaAuxiliar = new ArrayList(); - if(!validaSeTodasAsRutasPossuiPeloMenosUmaSecuenciaComApracaDePedagio(lsRutaAuxiliar)) { + boolean orgaoListaRutasHasIndices = true; + if(!validaSeTodasAsRutasPossuiPeloMenosUmaSecuenciaComApracaDePedagio()) { return; }; if (!listSelectedRutas.isEmpty()) { @@ -122,13 +121,27 @@ public class CalcularPeajeController extends MyGenericForwardComposer { orgao = ((OrgaoConcedente) cmbOrgaoConcedente.getSelectedItem().getValue()); } - if ((orgao != null && orgao.getIndicePeaje() != null) || (!listSelectedRutas.isEmpty() && orgaoListaRutasHasIndices) || !listSelectedCasetaPeaje.isEmpty() ) { + if ((orgao != null && orgao.getIndicePeaje() != null) || (!listSelectedRutas.isEmpty() && orgaoListaRutasHasIndices) || (!listSelectedCasetaPeaje.isEmpty() && orgaoListaRutasHasIndices)) { List lsRuta; if (!listSelectedRutas.isEmpty()) { lsRuta = listSelectedRutas; } else if (!listSelectedCasetaPeaje.isEmpty()){ lsRuta=rutaService.buscarPorOrgaoEcasetaPeaje(orgao,converterLiistDeCasetaPeajeEmArrayDeCasetaPeaje(listSelectedCasetaPeaje)); + orgao = null; + List lsRutaAux = new ArrayList(); + lsRutaAux.addAll(lsRuta); + for (Ruta r : lsRutaAux) { + if (r.getOrgaoConcedente().getIndicePeaje() == null) { + lsRuta.remove(r); + } + } + + if(!lsRutaAux.isEmpty() && lsRuta.isEmpty() ) { + lsIdsOrgSemIndice.add(lsRutaAux.get(0).getOrgaoConcedente().getOrgaoConcedenteId()); + retornoDoErro(orgao); + return; + } } else { lsRuta = rutaService.buscaRutasFromOrgao(orgao); @@ -187,21 +200,26 @@ public class CalcularPeajeController extends MyGenericForwardComposer { Labels.getLabel("indexController.mniCalculoPeaje.label"), Messagebox.NO, Messagebox.ERROR); } } else { - if (orgao != null) { - Messagebox.show( - Labels.getLabel("calcularPeajeController.MSG.orgaoSemIndice", new Object[] { orgao.getOrgaoConcedenteId() }), - Labels.getLabel("indexController.mniCalculoPeaje.label"), Messagebox.NO, Messagebox.ERROR); - } else { - Messagebox.show( - Labels.getLabel("calcularPeajeController.MSG.orgaoSemIndice", new Object[] { retornaIdsOrgaoSemIndice(lsIdsOrgSemIndice) }), - Labels.getLabel("indexController.mniCalculoPeaje.label"), Messagebox.NO, Messagebox.ERROR); - } + retornoDoErro(orgao); } } - private Boolean validaSeTodasAsRutasPossuiPeloMenosUmaSecuenciaComApracaDePedagio(List lsRutaAuxiliar) throws InterruptedException { + private void retornoDoErro(OrgaoConcedente orgao) throws InterruptedException { + if (orgao != null) { + Messagebox.show( + Labels.getLabel("calcularPeajeController.MSG.orgaoSemIndice", new Object[] { orgao.getOrgaoConcedenteId() }), + Labels.getLabel("indexController.mniCalculoPeaje.label"), Messagebox.NO, Messagebox.ERROR); + } else { + Messagebox.show( + Labels.getLabel("calcularPeajeController.MSG.orgaoSemIndice", new Object[] { retornaIdsOrgaoSemIndice(lsIdsOrgSemIndice) }), + Labels.getLabel("indexController.mniCalculoPeaje.label"), Messagebox.NO, Messagebox.ERROR); + } + } + + private Boolean validaSeTodasAsRutasPossuiPeloMenosUmaSecuenciaComApracaDePedagio() throws InterruptedException { if (!listSelectedCasetaPeaje.isEmpty() && !listSelectedRutas.isEmpty()) { + List lsRutaAuxiliar = new ArrayList(); retornarApenasRutaQuePossuiSecuenciasComAsPracas(lsRutaAuxiliar); for (Ruta ruta : listSelectedRutas) { if (!lsRutaAuxiliar.contains(ruta)) {