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%" />