From b8691c37e6622d142a5fbc7f5690b399b4fc6af6 Mon Sep 17 00:00:00 2001 From: aristides Date: Mon, 10 Oct 2022 21:03:16 +0000 Subject: [PATCH] fixes bug#al-1430 qua: dev:Valdevir git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@114671 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../tarifas/CalcularPeajeController.java | 20 +++ .../tarifas/GenerarTarifaOrgaoController.java | 169 +++++++++++++++++- web/WEB-INF/i3-label_en.label | 1 + web/WEB-INF/i3-label_es_MX.label | 1 + web/WEB-INF/i3-label_pt_BR.label | 3 +- web/gui/tarifas/calcularPeaje.zul | 76 ++++---- web/gui/tarifas/generarTarifaOrgao.zul | 127 ++++++++----- 7 files changed, 309 insertions(+), 88 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 845116457..c5671fded 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 @@ -13,11 +13,13 @@ import org.zkoss.util.resource.Labels; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; import org.zkoss.zul.Combobox; +import org.zkoss.zul.Div; import org.zkoss.zul.Messagebox; import org.zkoss.zul.Radio; import com.rjconsultores.ventaboletos.constantes.Constantes; import com.rjconsultores.ventaboletos.entidad.CasetaPeaje; +import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.EmpresaImposto; import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; import com.rjconsultores.ventaboletos.entidad.Ruta; @@ -26,6 +28,7 @@ import com.rjconsultores.ventaboletos.entidad.RutaEmpresa; import com.rjconsultores.ventaboletos.entidad.RutaSecuencia; import com.rjconsultores.ventaboletos.service.CalcularPeajeService; import com.rjconsultores.ventaboletos.service.CasetaPeajeService; +import com.rjconsultores.ventaboletos.service.ConstanteService; import com.rjconsultores.ventaboletos.service.EmpresaImpostoService; import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService; import com.rjconsultores.ventaboletos.service.RutaService; @@ -49,6 +52,8 @@ public class CalcularPeajeController extends MyGenericForwardComposer { private EmpresaImpostoService empresaImpostoService; @Autowired private CasetaPeajeService casetaPeajeService; + @Autowired + private ConstanteService constanteService; private Combobox cmbOrgaoConcedente; private List lsOrgaoConcedente; @@ -65,6 +70,8 @@ public class CalcularPeajeController extends MyGenericForwardComposer { private MyListbox selectedCasetaPeajeList; private List lsCasetaPeaje; Set lsIdsOrgSemIndice = new HashSet(); + private Div casetaPeajeDiv; + public static final String FILTRAR_POR_PRACA_DE_PEDAGIO = "FILTRAR_POR_PRACA_DE_PEDAGIO"; public List getLsOrgaoConcedente() { return lsOrgaoConcedente; @@ -101,6 +108,7 @@ public class CalcularPeajeController extends MyGenericForwardComposer { listSelectedRutas = new ArrayList(); lsCasetaPeaje = casetaPeajeService.buscarTodosOrdenadoPorDescricao(); listSelectedCasetaPeaje = new ArrayList(); + casetaPeajeDiv.setVisible(buscarContantefiltrarPorPracaDePedagio()); } public void onClick$btnCalcularPeaje(Event ev) throws InterruptedException { @@ -425,4 +433,16 @@ public class CalcularPeajeController extends MyGenericForwardComposer { + private Boolean buscarContantefiltrarPorPracaDePedagio() { + Constante constante = constanteService.buscarPorNomeConstante(FILTRAR_POR_PRACA_DE_PEDAGIO); + if (constante != null) { + if(constante.getValorconstante().equalsIgnoreCase("true")) { + return true; + } + } + return false; + + } + + } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/GenerarTarifaOrgaoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/GenerarTarifaOrgaoController.java index 25f25ad17..b9c6eaa29 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/GenerarTarifaOrgaoController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/GenerarTarifaOrgaoController.java @@ -6,7 +6,9 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.tarifas; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashSet; import java.util.List; +import java.util.Set; import org.hibernate.LazyInitializationException; import org.springframework.beans.factory.annotation.Autowired; @@ -24,12 +26,18 @@ import org.zkoss.zul.Div; import org.zkoss.zul.Messagebox; import com.rjconsultores.ventaboletos.constantes.TipoSeguro; +import com.rjconsultores.ventaboletos.entidad.CasetaPeaje; +import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.entidad.RutaCaseta; import com.rjconsultores.ventaboletos.entidad.RutaEmpresa; +import com.rjconsultores.ventaboletos.entidad.RutaSecuencia; import com.rjconsultores.ventaboletos.exception.BusinessException; +import com.rjconsultores.ventaboletos.service.CasetaPeajeService; +import com.rjconsultores.ventaboletos.service.ConstanteService; import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService; import com.rjconsultores.ventaboletos.service.ParadaService; import com.rjconsultores.ventaboletos.service.RutaEmpresaService; @@ -63,6 +71,10 @@ public class GenerarTarifaOrgaoController extends MyGenericForwardComposer { private OrgaoConcedenteService orgaoConcedenteService; @Autowired private ParadaService paradaService; + @Autowired + private CasetaPeajeService casetaPeajeService; + @Autowired + private ConstanteService constanteService; private List lsParada; private List lsRuta; private List lsOrgaoConcedente; @@ -85,8 +97,17 @@ public class GenerarTarifaOrgaoController extends MyGenericForwardComposer { private List listSelectedParadas; private MyListbox selectedParadasList; private List lsEmpresaSelected; + private Combobox cmbCasetaPeaje; + private List listSelectedCasetaPeaje; + private MyListbox selectedCasetaPeajeList; + private List lsCasetaPeaje; private Boolean esperar = false; private Div paradaDiv; + Set lsIdsOrgSemIndice = new HashSet(); + private Boolean filtraPorPracaDePedagio=false; + private Div casetaPeajeDiv; + + public static final String FILTRAR_POR_PRACA_DE_PEDAGIO = "FILTRAR_POR_PRACA_DE_PEDAGIO"; public Div getParadaDiv() { @@ -127,6 +148,7 @@ public class GenerarTarifaOrgaoController extends MyGenericForwardComposer { lsOrgaoConcedente = orgaoConcedenteService.obtenerTodos(); lsEmpresa = UsuarioLogado.getUsuarioLogado().getEmpresa(); lsRuta = rutaService.buscarRutasPorEmpresas(lsEmpresa); + super.doAfterCompose(comp); @@ -142,6 +164,12 @@ public class GenerarTarifaOrgaoController extends MyGenericForwardComposer { chkTipoSeguro.setVisible(false); } + lsCasetaPeaje = casetaPeajeService.buscarTodosOrdenadoPorDescricao(); + listSelectedCasetaPeaje = new ArrayList(); + filtraPorPracaDePedagio=buscarContantefiltrarPorPracaDePedagio(); + casetaPeajeDiv.setVisible(false); + + } @@ -177,6 +205,18 @@ public class GenerarTarifaOrgaoController extends MyGenericForwardComposer { } } + public void onCheck$chkPedagio(CheckEvent ev) { + if (filtraPorPracaDePedagio) { + if (chkPedagio.isChecked()) { + casetaPeajeDiv.setVisible(true); + } else { + casetaPeajeDiv.setVisible(false); + listSelectedCasetaPeaje = new ArrayList(); + selectedCasetaPeajeList.clear(); + } + } + } + public void onCheck$chkGerarTaxaDeEmbarquePorLocalidade(CheckEvent ev) { if (chkGerarTaxaDeEmbarquePorLocalidade.isChecked()) @@ -240,12 +280,27 @@ public class GenerarTarifaOrgaoController extends MyGenericForwardComposer { if (listSelectedRutas == null || listSelectedRutas.isEmpty()) { limparRutas = true; - if(chkGerarTaxaDeEmbarquePorLocalidade.isChecked()) { - lsRuta=rutaService.buscarRutasPorEmpresaOrgaoConcedenteParadaIds((Empresa) cmbEmpresa.getSelectedItem().getValue(), orgaoConcedente,converteListIdsEmArrayIds(retornarListParadaIds(listSelectedParadas))); - } - listSelectedRutas = lsRuta; - } + if (chkGerarTaxaDeEmbarquePorLocalidade.isChecked()) { + lsRuta = rutaService.buscarRutasPorEmpresaOrgaoConcedenteParadaIds((Empresa) cmbEmpresa.getSelectedItem().getValue(), orgaoConcedente, converteListIdsEmArrayIds(retornarListParadaIds(listSelectedParadas))); + } else { + if(!listSelectedCasetaPeaje.isEmpty()) { + lsRuta = rutaService.buscarPorOrgaoEcasetaPeaje(orgaoConcedente, converterLiistDeCasetaPeajeEmArrayDeCasetaPeaje(listSelectedCasetaPeaje),(Empresa) cmbEmpresa.getSelectedItem().getValue()); + // orgao = null; + List lsRutaAux = new ArrayList(); + lsRutaAux.addAll(lsRuta); + for (Ruta r : lsRutaAux) { + if (r.getOrgaoConcedente().getIndicePeaje() == null) { + lsRuta.remove(r); + } + } + } + } + listSelectedRutas = lsRuta; + + } else if (chkPedagio.isChecked() && !validaSeTodasAsRutasPossuiPeloMenosUmaSecuenciaComApracaDePedagio()) { + return; + } if (!chkZerarTabela.isChecked()) { try { @@ -272,7 +327,11 @@ public class GenerarTarifaOrgaoController extends MyGenericForwardComposer { } if (chkPedagio.isChecked()) { + if(listSelectedCasetaPeaje.isEmpty()) { tarifaOficialService.atualizarPedagio(); + }else { + tarifaOficialService.atualizarPedagioPorListaDePracaDePagio(listSelectedCasetaPeaje); + } } if (chkTipoSeguro.isChecked()) { @@ -491,10 +550,102 @@ public class GenerarTarifaOrgaoController extends MyGenericForwardComposer { } - + public void onClick$btnAddCasetaPeaje(Event ev) throws InterruptedException { + if (cmbCasetaPeaje.getSelectedItem() != null) { + listSelectedCasetaPeaje.add((CasetaPeaje) cmbCasetaPeaje.getSelectedItem().getValue()); + selectedCasetaPeajeList.setData(listSelectedCasetaPeaje); + cmbCasetaPeaje.setSelectedItem(null); + } + } + + public void onClick$btnRemoveCasetaPeaje(Event ev) throws InterruptedException { + CasetaPeaje casetaPeaje= (CasetaPeaje) selectedCasetaPeajeList.getSelected(); + listSelectedCasetaPeaje.remove(casetaPeaje); + selectedCasetaPeajeList.setData(listSelectedCasetaPeaje); + } + + + private Boolean validaSeTodasAsRutasPossuiPeloMenosUmaSecuenciaComApracaDePedagio() throws InterruptedException { + if (!listSelectedCasetaPeaje.isEmpty() && !listSelectedRutas.isEmpty()) { + List lsRutaAuxiliar = new ArrayList(); + retornarApenasRutaQuePossuiSecuenciasComAsPracas(lsRutaAuxiliar); + for (Ruta ruta : listSelectedRutas) { + if (!lsRutaAuxiliar.contains(ruta)) { + Messagebox.show(Labels.getLabel("calcularPeajeController.MSG.linhaSemPracaDePedagio", new Object[] { ruta }), + Labels.getLabel("indexController.mniCalculoPeaje.label"), Messagebox.OK, Messagebox.ERROR); + return false; + } + } + } + return true; + } + + private void retornarApenasRutaQuePossuiSecuenciasComAsPracas(List lsRutaAuxiliar) { + List listSelectedRutasAux = recarregarAsRutasComBanco(listSelectedRutas); + for (CasetaPeaje casetaPeaje : listSelectedCasetaPeaje) { + for (Ruta r : listSelectedRutasAux) { + if (!r.getRutaSecuenciaList().isEmpty()) { + Boolean isRutaSecuencia = false; + for (RutaSecuencia rutaSecuencia : r.getRutaSecuenciaList()) { + if (isRutaSecuencia) + break; + if (rutaSecuencia.getActivo()) { + for (RutaCaseta rutaCaseta : rutaSecuencia.getLsRutaCase()) { + if (rutaCaseta.getActivo() && rutaCaseta.getCasetaPeaje().getCasetaPeajeId().intValue() == casetaPeaje.getCasetaPeajeId().intValue()) { + lsRutaAuxiliar.add(r); + isRutaSecuencia = true; + break; + } + } + } + } + } + } + } + } + + + List recarregarAsRutasComBanco(List lsRutasSelecionadas){ + List lsRutaIds=retornarListRutaIds(lsRutasSelecionadas); + Integer[] arrayDeRutaIds = converteListIdsEmArrayIds(lsRutaIds); + return rutaService.buscarPorIds(arrayDeRutaIds); + } + + + private Integer[] converterLiistDeCasetaPeajeEmArrayDeCasetaPeaje(List lsCasetaPeaje) { + if(!lsCasetaPeaje.isEmpty()) { + return converteListIdsEmArrayIds(retornarListCasetaPeajeIds(lsCasetaPeaje)); + } + return null; + } + + + private List retornarListCasetaPeajeIds(List lsCasetaPeaje) { + List listCasetaPeaje= new ArrayList(); + for (CasetaPeaje c : lsCasetaPeaje) { + listCasetaPeaje.add(c.getCasetaPeajeId()); + } + return listCasetaPeaje; + } + + + public List getLsCasetaPeaje() { + return lsCasetaPeaje; + } - - - + public void setLsCasetaPeaje(List lsCasetaPeaje) { + this.lsCasetaPeaje = lsCasetaPeaje; + } + + private Boolean buscarContantefiltrarPorPracaDePedagio() { + Constante constante = constanteService.buscarPorNomeConstante(FILTRAR_POR_PRACA_DE_PEDAGIO); + if (constante != null) { + if(constante.getValorconstante().equalsIgnoreCase("true")) { + return true; + } + } + return false; + + } } diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label index 374db12fa..aed81533c 100644 --- a/web/WEB-INF/i3-label_en.label +++ b/web/WEB-INF/i3-label_en.label @@ -6363,6 +6363,7 @@ generarTarifaOrgaoController.labelAddLocalidade.value = Adicionar Localidade generarTarifaOrgaoController.labelRemoveLocalidade.value = Remover Localidade generarTarifaOrgaoController.labelLocalidade.value = Localidade generarTarifaOrgaoController.labelGerarTaxaDeEmbarquePorLocalidade.value=Gerar Taxa de Embarque por Localidade +generarTarifaOrgaoController.avisoVigenciaAtual.value=Quando o trecho possuir mais de uma praça de pedágio, os valores da praças que não estão selecionadas receberá o valor cadastrado na Tarifa com vigêncial Atual. #Copiar Tarifa Oficial copiarTarifaOficialController.MSG.copiaOK=Tarifa copiada com sucesso diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 689e05722..17b8d3707 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -6396,6 +6396,7 @@ generarTarifaOrgaoController.labelAddLocalidade.value = Adicionar Localidade generarTarifaOrgaoController.labelRemoveLocalidade.value = Remover Localidade generarTarifaOrgaoController.labelLocalidade.value = Localidade generarTarifaOrgaoController.labelGerarTaxaDeEmbarquePorLocalidade.value=Gerar Taxa de Embarque por Localidade +generarTarifaOrgaoController.avisoVigenciaAtual.value=Quando o trecho possuir mais de uma praça de pedágio, os valores da praças que não estão selecionadas receberá o valor cadastrado na Tarifa com vigêncial Atual. #Copiar Tarifa Oficial copiarTarifaOficialController.MSG.copiaOK=Tarifa se copió existosamente diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 0b294433b..624fe3686 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -6764,7 +6764,8 @@ generarTarifaOrgaoController.labelOrgao.value = Órgão generarTarifaOrgaoController.labelAddLocalidade.value = Adicionar Localidade generarTarifaOrgaoController.labelRemoveLocalidade.value = Remover Localidade generarTarifaOrgaoController.labelLocalidade.value = Localidade -generarTarifaOrgaoController.labelGerarTaxaDeEmbarquePorLocalidade.value=Gerar Taxa de Embarque por Localidade +generarTarifaOrgaoController.labelGerarTaxaDeEmbarquePorLocalidade.value=Gerar Taxa de Embarque por Localidade] +generarTarifaOrgaoController.avisoVigenciaAtual.value=Quando o trecho possuir mais de uma praça de pedágio, os valores da praças que não estão selecionadas receberá o valor cadastrado na Tarifa com vigêncial Atual. #Copiar Tarifa Oficial copiarTarifaOficialController.MSG.copiaOK=Tarifa copiada com sucesso diff --git a/web/gui/tarifas/calcularPeaje.zul b/web/gui/tarifas/calcularPeaje.zul index 6f152f81e..bc9b8b161 100644 --- a/web/gui/tarifas/calcularPeaje.zul +++ b/web/gui/tarifas/calcularPeaje.zul @@ -6,7 +6,7 @@ @@ -30,19 +30,19 @@ @@ -67,8 +67,8 @@