From 401692376ee785175b6f918a53e0769f2b4d0c86 Mon Sep 17 00:00:00 2001 From: "daniel.zauli" Date: Wed, 18 Jan 2017 20:52:16 +0000 Subject: [PATCH] fixes bug #8353 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@65056 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../tarifas/CalcularPeajeController.java | 110 +++++++++++++++++- web/gui/tarifas/calcularPeaje.zul | 34 ++++++ 2 files changed, 138 insertions(+), 6 deletions(-) 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 b1cc81061..40ea8ded6 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 @@ -1,6 +1,7 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.tarifas; import java.util.ArrayList; +import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -24,7 +25,9 @@ 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.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; @Controller("calcularPeajeController") @Scope("prototype") @@ -46,6 +49,12 @@ public class CalcularPeajeController extends MyGenericForwardComposer { private Radio rdConsiderarICMSNo; private Radio rdConsiderarICMSSi; + + private Combobox cmbRuta; + private List listSelectedRutas; + private MyListbox selectedRutasList; + private List lsRutas; + Set lsIdsOrgSemIndice = new HashSet(); public List getLsOrgaoConcedente() { return lsOrgaoConcedente; @@ -65,6 +74,7 @@ public class CalcularPeajeController extends MyGenericForwardComposer { @Override public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); lsOrgaoConcedente = new ArrayList(); @@ -77,12 +87,33 @@ public class CalcularPeajeController extends MyGenericForwardComposer { for (Integer orgaoConcedenteId : Constantes.ORGAOS_CONCEDENTES_CALCULO_AGER) { lsOrgaoConcedente.add(orgaoConcedenteService.obtenerID(orgaoConcedenteId)); } + lsRutas = rutaService.buscarRutasPorEmpresas(UsuarioLogado.getUsuarioLogado().getEmpresa()); + listSelectedRutas = new ArrayList(); } public void onClick$btnCalcularPeaje(Event ev) throws InterruptedException { - OrgaoConcedente orgao = ((OrgaoConcedente) cmbOrgaoConcedente.getSelectedItem().getValue()); - if (orgao.getIndicePeaje() != null) { - List lsRuta = rutaService.buscaRutasFromOrgao(orgao); + OrgaoConcedente orgao ; + boolean orgaoListaRutasHasIndices = true; + if(!listSelectedRutas.isEmpty()){ + orgao = null; + for(Ruta r : listSelectedRutas){ + if(r.getOrgaoConcedente().getIndicePeaje() == null){ + orgaoListaRutasHasIndices = false; + lsIdsOrgSemIndice.add(r.getOrgaoConcedente().getOrgaoConcedenteId()); + } + } + }else{ + orgao = ((OrgaoConcedente) cmbOrgaoConcedente.getSelectedItem().getValue()); + } + + if ((orgao != null && orgao.getIndicePeaje() != null) || (!listSelectedRutas.isEmpty() && orgaoListaRutasHasIndices)) { + + List lsRuta; + if(!listSelectedRutas.isEmpty()){ + lsRuta = listSelectedRutas; + }else{ + lsRuta = rutaService.buscaRutasFromOrgao(orgao); + } boolean usarICMS; if(rdConsiderarICMSSi.isChecked()){ usarICMS = true; @@ -128,9 +159,30 @@ public class CalcularPeajeController extends MyGenericForwardComposer { // TODO else: show some generic error for unexpected error } } else { - Messagebox.show( - Labels.getLabel("calcularPeajeController.MSG.orgaoSemIndice", new Object[] { orgao.getOrgaoConcedenteId() }), - Labels.getLabel("indexController.mniCalculoPeaje.label"), Messagebox.NO, Messagebox.ERROR); + 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 String retornaIdsOrgaoSemIndice(Set s){ + List l = new ArrayList(s); + if(l.size()==1){ + return l.get(0).toString(); + }else{ + StringBuilder sb = new StringBuilder(); + sb.append(l.get(0).toString()); + for(int x = 1 ; x < l.size() ; x++){ + sb.append(", "+l.get(x).toString()); + } + return sb.toString(); } } @@ -157,4 +209,50 @@ public class CalcularPeajeController extends MyGenericForwardComposer { return true; } + public void onClick$btnAddRuta(Event ev) throws InterruptedException { + if (cmbRuta.getSelectedItem() != null) { + listSelectedRutas.add((Ruta) cmbRuta.getSelectedItem().getValue()); + selectedRutasList.setData(listSelectedRutas); + cmbRuta.setSelectedItem(null); + } + } + + public void onClick$btnRemoveRuta(Event ev) throws InterruptedException { + Ruta ruta = (Ruta) selectedRutasList.getSelected(); + listSelectedRutas.remove(ruta); + selectedRutasList.setData(listSelectedRutas); + } + + public Combobox getCmbRuta() { + return cmbRuta; + } + + public void setCmbRuta(Combobox cmbRuta) { + this.cmbRuta = cmbRuta; + } + + public List getListSelectedRutas() { + return listSelectedRutas; + } + + public void setListSelectedRutas(List listSelectedRutas) { + this.listSelectedRutas = listSelectedRutas; + } + + public MyListbox getSelectedRutasList() { + return selectedRutasList; + } + + public void setSelectedRutasList(MyListbox selectedRutasList) { + this.selectedRutasList = selectedRutasList; + } + + public List getLsRutas() { + return lsRutas; + } + + public void setLsRutas(List lsRutas) { + this.lsRutas = lsRutas; + } + } diff --git a/web/gui/tarifas/calcularPeaje.zul b/web/gui/tarifas/calcularPeaje.zul index 1feb6a7b9..53dd38b2f 100644 --- a/web/gui/tarifas/calcularPeaje.zul +++ b/web/gui/tarifas/calcularPeaje.zul @@ -47,5 +47,39 @@ + + + + + + + + + + + +