From 2d7c973bfdd655eeb416f0d5cab4615f94042ce5 Mon Sep 17 00:00:00 2001 From: "valdir.cordeiro" Date: Mon, 17 Jul 2023 20:08:40 -0300 Subject: [PATCH] =?UTF-8?q?bug#al-2935=20ADM=20-=20Ajuste=20Pricing=20Cone?= =?UTF-8?q?x=C3=A3o=20dev:=20qua:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 +- .../pricing/EditarPricingController.java | 149 ++++++++++++++---- .../render/RenderConexaoPricing.java | 35 ++++ web/gui/pricing/editarPricing.zul | 21 +-- 4 files changed, 161 insertions(+), 48 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConexaoPricing.java diff --git a/pom.xml b/pom.xml index a67740220..2f110fb4d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,11 +4,11 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.10.0 + 1.10.1 war - 1.7.0 + 1.7.1 1.6.0 UTF-8 UTF-8 diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingController.java index 00cd1f52a..eb999f548 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/EditarPricingController.java @@ -84,6 +84,7 @@ import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; import com.rjconsultores.ventaboletos.web.utilerias.MyTextboxDecimal; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderConexaoPricing; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderGeracaoConexionPorRuta; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderPricingAsiento; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderPricingCategoria; @@ -265,6 +266,7 @@ public class EditarPricingController extends PricingController { private List lsConexoesCtrlList; private List conexoesPricingList; + private List conexoesPricingListApresentacao; private List paradasConexao; private MyListbox conexaoCtrlList; private List lsPricingConexao; @@ -1074,6 +1076,8 @@ public class EditarPricingController extends PricingController { } pricing.setPricingConexaoList(lsPricingConexao); + + limparPesquisaPricingConexao(pricing.getPricingId()); } if (gravarNovo) { @@ -1136,6 +1140,16 @@ public class EditarPricingController extends PricingController { } } + private void limparPesquisaPricingConexao(Integer pricingId) { + try { + if(pricingId != null) { + conexionCtrlService.limparPesquisaPricingConexao(pricingId); + } + } catch (Exception e) { + log.info("Erro ao remover pesquisa do pricing de conexao, erro: ", e); + } + } + private Boolean isExistePricingAtivo(List lsPricingConexao2) { for(PricingConexao p : lsPricingConexao2) { @@ -2652,15 +2666,26 @@ public class EditarPricingController extends PricingController { Parada paradaOrigem = paradaService.obtenerID(p.getOrigenId()); Parada paradaDestino = paradaService.obtenerID(p.getDestinoId()); + Boolean origem = false, destino = false; + if(!paradasConexao.contains(paradaOrigem)) { paradasConexao.add(paradaOrigem); + } else { + origem = true; } if(!paradasConexao.contains(paradaDestino)) { paradasConexao.add(paradaDestino); + } else { + destino = true; } - Comboitem comboItem = new Comboitem(p.getConexionctrlId() + " : " + paradaOrigem.getDescparada() + " -> " + paradaDestino.getDescparada()); + //Se ja foi adicionado a origem e destino nao mostra novamente. + if(origem && destino) { + continue; + } + + Comboitem comboItem = new Comboitem(paradaOrigem.getDescparada() + " -> " + paradaDestino.getDescparada()); comboItem.setValue(p); comboItem.setParent(cmbConexaoCtrl); } @@ -2685,7 +2710,7 @@ public class EditarPricingController extends PricingController { Labels.getLabel("editarPricingController.window.title"), Messagebox.OK, Messagebox.INFORMATION); return; } else { - List novasConexoes = conexionCtrlService.carregarConexoesCadastradas(coCtrl.getConexionctrlId()); + List novasConexoes = conexionCtrlService.carregarConexoesCadastradas(coCtrl.getOrigenId(), coCtrl.getDestinoId(), null); if(isConexaoJaAdicionada(novasConexoes)) { Messagebox.show(Labels.getLabel("editarConexionController.msgConexaoJaAdicionada.value"), @@ -2693,32 +2718,74 @@ public class EditarPricingController extends PricingController { return; } - criarPricingConexao(coCtrl, novasConexoes); + criarPricingConexao(novasConexoes); conexoesPricingList.addAll(novasConexoes); - conexaoCtrlList.setData(conexoesPricingList); - conexaoCtrlList.setItemRenderer(new RenderGeracaoConexionPorRuta()); + + conexoesPricingListApresentacao = buscarDadosApresentacao(conexoesPricingList); + + conexaoCtrlList.setData(conexoesPricingListApresentacao); + conexaoCtrlList.setItemRenderer(new RenderConexaoPricing()); } } catch (Exception e) { log.error("Erro ao adicionar nova conexao, erro: ", e); } } - private void criarPricingConexao(ConexionCtrl coCtrl, List novasConexoes) { - PricingConexao prConexao = new PricingConexao(); - prConexao.setActivo(Pricing.ATIVO); - prConexao.setConexionCtrl(coCtrl); - prConexao.setFecmodif(Calendar.getInstance().getTime()); - prConexao.setPricing(pricing); - prConexao.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); - - lsPricingConexao.add(prConexao); + private List buscarDadosApresentacao(List conexoesPricingList2) { + try { + List listaApresentacao = new ArrayList<>(); + List origemDestino = new ArrayList<>(); + + for(ParadaVOConexionRuta p : conexoesPricingList2) { + String parada = p.getParadaOrigem().getDescparada() + "-" + p.getParadaDestino().getDescparada(); + + if(!origemDestino.contains(parada)) { + origemDestino.add(parada); + listaApresentacao.add(p); + } + } + + return listaApresentacao; + } catch (Exception e) { + log.error("Erro ao buscar dados de Apresentacao: ", e); + } + return null; + } + + private void criarPricingConexao(List novasConexoes) { for(ParadaVOConexionRuta nConex : novasConexoes) { + PricingConexao prConexao = new PricingConexao(); + prConexao.setActivo(Pricing.ATIVO); + + ConexionCtrl coCtrl = new ConexionCtrl(); + coCtrl.setConexionctrlId(nConex.getConexionCtrl().getConexionctrlId()); + prConexao.setConexionCtrl(coCtrl); + + prConexao.setFecmodif(Calendar.getInstance().getTime()); + prConexao.setPricing(pricing); + prConexao.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + + if(!conexaoJaAdicionada(prConexao)) { + lsPricingConexao.add(prConexao); + } + nConex.setPricingConexao(prConexao); } } + private boolean conexaoJaAdicionada(PricingConexao prCon) { + for(PricingConexao conex : lsPricingConexao) { + if(prCon.getConexionCtrl().getConexionctrlId() != null + && prCon.getConexionCtrl().getConexionctrlId().equals(conex.getConexionCtrl().getConexionctrlId()) ){ + return true; + } + } + + return false; + } + private void carregarConexoesCadastradas() { if (lsPricingConexao.size() > 0) { @@ -2729,7 +2796,8 @@ public class EditarPricingController extends PricingController { List novasConexoes = new ArrayList<>(); for(PricingConexao p : lsPricingConexao) { - List aux = conexionCtrlService.carregarConexoesCadastradas(p.getConexionCtrl().getConexionctrlId()); + List aux = conexionCtrlService.carregarConexoesCadastradas(p.getConexionCtrl().getOrigenId(), p.getConexionCtrl().getDestinoId(), + p.getConexionCtrl().getConexionctrlId()); for(ParadaVOConexionRuta nConex : aux) { nConex.setPricingConexao(p); @@ -2739,8 +2807,11 @@ public class EditarPricingController extends PricingController { } conexoesPricingList.addAll(novasConexoes); - conexaoCtrlList.setData(conexoesPricingList); - conexaoCtrlList.setItemRenderer(new RenderGeracaoConexionPorRuta()); + + conexoesPricingListApresentacao = buscarDadosApresentacao(conexoesPricingList); + + conexaoCtrlList.setData(conexoesPricingListApresentacao); + conexaoCtrlList.setItemRenderer(new RenderConexaoPricing()); } } @@ -2750,22 +2821,40 @@ public class EditarPricingController extends PricingController { if (conexao != null ) { - PricingConexao prConexao = conexao.getPricingConexao(); + PricingConexao prConexaoSelecionado = conexao.getPricingConexao(); - lsPricingConexao.remove(prConexao); + List prConexaoARemover = new ArrayList<>(); - if(prConexao.getPricingConexaoId() != null) { - prConexao.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); - prConexao.setFecmodif(Calendar.getInstance().getTime()); - prConexao.setActivo(Pricing.EXCLUIDO); + List todos = new ArrayList<>(); + todos.addAll(lsPricingConexao); + + //Limpa o pricing, pois o remove nao funciona pq o equals nao leva em consideracao somente origem e destino + lsPricingConexao.clear(); + + for(PricingConexao prConexao : todos) { - lsPricingConexao.add(prConexao); + if(isMesmaOrigemDestino(prConexao, prConexaoSelecionado)) { + + if(prConexao.getPricingConexaoId() != null) { + prConexao.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + prConexao.setFecmodif(Calendar.getInstance().getTime()); + prConexao.setActivo(Pricing.EXCLUIDO); + //Adiciona os que ja estao no banco de dados + lsPricingConexao.add(prConexao); + } else { + prConexaoARemover.add(prConexao); + } + } else { + //Adiciona os que nao sao iguais ao selecionado + lsPricingConexao.add(prConexao); + } } List listaAAdicionar = new ArrayList<>(); for(ParadaVOConexionRuta pAdiciona : conexoesPricingList) { - if(!pAdiciona.getConexionCtrl().getConexionctrlId().equals(prConexao.getConexionCtrl().getConexionctrlId())) { + if(!pAdiciona.getParadaOrigem().getParadaId().equals(conexao.getParadaOrigem().getParadaId()) || + !pAdiciona.getParadaDestino().getParadaId().equals(conexao.getParadaDestino().getParadaId()) ) { listaAAdicionar.add(pAdiciona); } } @@ -2774,15 +2863,21 @@ public class EditarPricingController extends PricingController { conexoesPricingList.addAll(listaAAdicionar); conexaoCtrlList.clear(); - conexaoCtrlList.setData(conexoesPricingList); + + conexoesPricingListApresentacao = buscarDadosApresentacao(conexoesPricingList); + conexaoCtrlList.setData(conexoesPricingListApresentacao); } } + private boolean isMesmaOrigemDestino(PricingConexao prConexao, PricingConexao prConexaoSelecionado) { + return prConexao.getConexionCtrl() != null && prConexao.getConexionCtrl().isOrigemDestinoIgual(prConexaoSelecionado.getConexionCtrl().getOrigenId(), prConexaoSelecionado.getConexionCtrl().getDestinoId()); + } + private boolean isConexaoJaAdicionada(List novasConexoes) { for(ParadaVOConexionRuta p : novasConexoes) { for(ParadaVOConexionRuta pAdd : conexoesPricingList) { - if(pAdd.getConexionCtrl().getConexionctrlId().equals(p.getConexionCtrl().getConexionctrlId())) { + if(pAdd.getConexionCtrl().getOrigenId().equals(p.getConexionCtrl().getOrigenId()) && pAdd.getConexionCtrl().getDestinoId().equals(p.getConexionCtrl().getDestinoId())) { return true; } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConexaoPricing.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConexaoPricing.java new file mode 100644 index 000000000..f2341c861 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderConexaoPricing.java @@ -0,0 +1,35 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta; + +/** + * + * @author Valdir Cordeiro + */ +public class RenderConexaoPricing implements ListitemRenderer { + + + public void render(Listitem lstm, Object o) throws Exception { + + ParadaVOConexionRuta conexion = (ParadaVOConexionRuta) o; + + Listcell lc = new Listcell(conexion.getParadaOrigem().getDescparada()); + lc.setParent(lstm); + + lc = new Listcell(conexion.getParadaDestino().getDescparada()); + lc.setParent(lstm); + + + lstm.setValue(conexion); + + + } +} diff --git a/web/gui/pricing/editarPricing.zul b/web/gui/pricing/editarPricing.zul index da2435cf0..c142f0a5f 100644 --- a/web/gui/pricing/editarPricing.zul +++ b/web/gui/pricing/editarPricing.zul @@ -924,26 +924,9 @@ pageSize="15" multiple="false" height="370px" width="100%"> + label="${c:l('editarConexionPorRutaController.labelOrigemConexao.value')}" width="50%" /> - - - - - + label="${c:l('editarConexionPorRutaController.labelDestinoConexao.value')}" width="50%" />