From b81a55f9dffb283961bd4ce93d4aef45dde584c7 Mon Sep 17 00:00:00 2001 From: "valdir.cordeiro" Date: Mon, 17 Jul 2023 20:08:30 -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 | 2 +- .../ventaboletos/dao/ConexionCtrlDAO.java | 4 + .../hibernate/ConexionCtrlHibernateDAO.java | 73 ++++++++++++++++++- .../ventaboletos/entidad/ConexionCtrl.java | 2 +- .../ventaboletos/entidad/PricingConexao.java | 20 +++++ .../service/ConexionCtrlService.java | 5 ++ .../service/impl/ConexionCtrlServiceImpl.java | 10 +++ .../vo/parada/ParadaVOConexionRuta.java | 4 + 8 files changed, 116 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 756dbba90..80a91a768 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 br.com.rjconsultores ModelWeb - 1.7.0 + 1.7.1 rj-releases diff --git a/src/com/rjconsultores/ventaboletos/dao/ConexionCtrlDAO.java b/src/com/rjconsultores/ventaboletos/dao/ConexionCtrlDAO.java index 07388a805..74b5f99d3 100644 --- a/src/com/rjconsultores/ventaboletos/dao/ConexionCtrlDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/ConexionCtrlDAO.java @@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.dao; import java.util.List; import com.rjconsultores.ventaboletos.entidad.ConexionCtrl; +import com.rjconsultores.ventaboletos.entidad.PricingConexao; import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta; public interface ConexionCtrlDAO extends GenericDAO { @@ -13,4 +14,7 @@ public interface ConexionCtrlDAO extends GenericDAO { public List carregarConexoesCadastradas(Long conexionctrlId); + public List carregarConexoesCadastradas(Integer origenId, Integer destinoId, Long conexionctrlId); + + public void limparPesquisaPricingConexao(Integer pricingId); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionCtrlHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionCtrlHibernateDAO.java index 3c68dd3c0..97f68c75a 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionCtrlHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ConexionCtrlHibernateDAO.java @@ -5,6 +5,7 @@ import java.util.Collections; import java.util.List; import org.hibernate.Query; +import org.hibernate.SQLQuery; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -13,9 +14,9 @@ import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.ConexionCtrlDAO; import com.rjconsultores.ventaboletos.entidad.ConexionCtrl; import com.rjconsultores.ventaboletos.entidad.Parada; +import com.rjconsultores.ventaboletos.entidad.PricingConexao; import com.rjconsultores.ventaboletos.vo.conexion.OrdenarLocalidadesGeradas; import com.rjconsultores.ventaboletos.vo.parada.ConexionCtrlVO; -import com.rjconsultores.ventaboletos.vo.parada.ConexionRutaCtrlVO; import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta; @Repository("conexionCtrlDAO") @@ -63,6 +64,7 @@ public class ConexionCtrlHibernateDAO extends GenericHibernateDAO carregarConexoesCadastradas(Long conexionctrlId) { @@ -86,10 +88,77 @@ public class ConexionCtrlHibernateDAO extends GenericHibernateDAO carregarConexoesCadastradas(Integer origenId, Integer destinoId, Long conexionctrlId) { + + if(origenId == null || destinoId == null) { + return null; + } + + StringBuilder sQuery = new StringBuilder(); + sQuery.append(" select distinct ") + .append(" origem.descparada as origem, destino.descparada as destino, c.conexionctrl_id ") + .append(" from") + .append(" conexion_ctrl c inner join ") + .append(" parada origem on origem.parada_id = c.origen_id inner join ") + .append(" parada destino on destino.parada_id = c.destino_id ") + .append(" where ") + .append(" c.activo = 1 and c.indpricing = 1 and c.origen_id = :origenId and c.destino_id = :destinoId "); + + if(conexionctrlId != null) { + sQuery.append(" and c.conexionctrl_id = :conexionctrlId "); + } + + Query qr = getSession().createSQLQuery(sQuery.toString()); + qr.setParameter("origenId", origenId); + qr.setParameter("destinoId", destinoId); + + if(conexionctrlId != null) { + qr.setParameter("conexionctrlId", conexionctrlId); + } + + List localidadesCombinadas = new ArrayList(0); + + List result = qr.list(); + + for (Object[] tupla : result) { + + Parada paradaOrigem = new Parada(origenId, null, tupla[0].toString()); + Parada paradaDestino = new Parada(destinoId, null, tupla[1].toString()); + + conexionctrlId = Long.valueOf(tupla[2].toString()); + + ConexionCtrlVO conex = new ConexionCtrlVO(origenId, destinoId); + conex.setConexionctrlId(conexionctrlId); + conex.setIndPricing(true); + conex.setOrigenId(origenId); + conex.setDestinoId(destinoId); + + ParadaVOConexionRuta parada = new ParadaVOConexionRuta(); + + parada.setParadaOrigem(paradaOrigem); + parada.setParadaDestino(paradaDestino); + parada.setConexionCtrl(conex); + + localidadesCombinadas.add(parada); + } + + return localidadesCombinadas; + + } + + public void limparPesquisaPricingConexao(Integer pricingId) { + StringBuilder sQuery = new StringBuilder("DELETE FROM PRICING_CONEXAO_VALOR WHERE PRICING_ID = :pricingId AND TRUNC(FECMODIF) = TRUNC(SYSDATE) "); + SQLQuery qrUpdate = getSession().createSQLQuery(sQuery.toString()); + + qrUpdate.setParameter("pricingId", pricingId); + qrUpdate.executeUpdate(); + } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/ConexionCtrl.java b/src/com/rjconsultores/ventaboletos/entidad/ConexionCtrl.java index d54647c5d..39110acca 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/ConexionCtrl.java +++ b/src/com/rjconsultores/ventaboletos/entidad/ConexionCtrl.java @@ -144,7 +144,7 @@ public class ConexionCtrl implements Serializable { } public boolean isOrigemDestinoIgual(Integer origemConexaoCtrl, Integer destinoConexaoCtrl) { - return getOrigenId().equals(origemConexaoCtrl) && getDestinoId().equals(destinoConexaoCtrl); + return getOrigenId() != null && getDestinoId() != null && getOrigenId().equals(origemConexaoCtrl) && getDestinoId().equals(destinoConexaoCtrl); } public Boolean getIndPricing() { diff --git a/src/com/rjconsultores/ventaboletos/entidad/PricingConexao.java b/src/com/rjconsultores/ventaboletos/entidad/PricingConexao.java index e30051470..91daa0862 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/PricingConexao.java +++ b/src/com/rjconsultores/ventaboletos/entidad/PricingConexao.java @@ -2,6 +2,8 @@ package com.rjconsultores.ventaboletos.entidad; import java.io.Serializable; import java.util.Date; +import java.util.Objects; + import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; @@ -103,4 +105,22 @@ public class PricingConexao implements Serializable { public void setConexionCtrl(ConexionCtrl conexionCtrl) { this.conexionCtrl = conexionCtrl; } + + @Override + public int hashCode() { + return Objects.hash(conexionCtrl, pricing); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + PricingConexao other = (PricingConexao) obj; + return Objects.equals(conexionCtrl, other.conexionCtrl) && Objects.equals(pricing, other.pricing); + } + } diff --git a/src/com/rjconsultores/ventaboletos/service/ConexionCtrlService.java b/src/com/rjconsultores/ventaboletos/service/ConexionCtrlService.java index 5dd0d43e1..93477f45f 100644 --- a/src/com/rjconsultores/ventaboletos/service/ConexionCtrlService.java +++ b/src/com/rjconsultores/ventaboletos/service/ConexionCtrlService.java @@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.service; import java.util.List; import com.rjconsultores.ventaboletos.entidad.ConexionCtrl; +import com.rjconsultores.ventaboletos.entidad.PricingConexao; import com.rjconsultores.ventaboletos.vo.parada.ParadaVOConexionRuta; public interface ConexionCtrlService extends GenericService { @@ -15,4 +16,8 @@ public interface ConexionCtrlService extends GenericService public List carregarConexoesCadastradas(Long conexionctrlId); + public List carregarConexoesCadastradas(Integer origenId, Integer destinoId, Long conexionctrlId); + + public void limparPesquisaPricingConexao(Integer pricingId); + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ConexionCtrlServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ConexionCtrlServiceImpl.java index 4a6eab577..557303206 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ConexionCtrlServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ConexionCtrlServiceImpl.java @@ -16,6 +16,7 @@ import com.rjconsultores.ventaboletos.entidad.ConexionCtrl; import com.rjconsultores.ventaboletos.entidad.ConexionDescuento; import com.rjconsultores.ventaboletos.entidad.ConexionRutaCtrl; import com.rjconsultores.ventaboletos.entidad.ConexionRutaTramoCtrl; +import com.rjconsultores.ventaboletos.entidad.PricingConexao; import com.rjconsultores.ventaboletos.service.ConexionConfService; import com.rjconsultores.ventaboletos.service.ConexionCtrlService; import com.rjconsultores.ventaboletos.service.ConexionService; @@ -131,4 +132,13 @@ public class ConexionCtrlServiceImpl implements ConexionCtrlService { public List carregarConexoesCadastradas(Long conexionctrlId) { return conexionCtrlDAO.carregarConexoesCadastradas(conexionctrlId); } + + @Override + public List carregarConexoesCadastradas(Integer origenId, Integer destinoId, Long conexionctrlId) { + return conexionCtrlDAO.carregarConexoesCadastradas(origenId, destinoId, conexionctrlId); + } + + public void limparPesquisaPricingConexao(Integer pricingId) { + conexionCtrlDAO.limparPesquisaPricingConexao(pricingId); + } } diff --git a/src/com/rjconsultores/ventaboletos/vo/parada/ParadaVOConexionRuta.java b/src/com/rjconsultores/ventaboletos/vo/parada/ParadaVOConexionRuta.java index 0cd126cfe..4e61a9df7 100644 --- a/src/com/rjconsultores/ventaboletos/vo/parada/ParadaVOConexionRuta.java +++ b/src/com/rjconsultores/ventaboletos/vo/parada/ParadaVOConexionRuta.java @@ -21,6 +21,10 @@ public class ParadaVOConexionRuta { private ConexionRutaCtrlVO conexionRutaCtrl; private PricingConexao pricingConexao; + + public ParadaVOConexionRuta() { + super(); + } public ParadaVOConexionRuta(int grupo, Parada paradaOrigem, Parada paradaDestino, Integer rutaId, String numRuta, Short secuencia, boolean valido, Parada paradaOrigemTrecho, Parada paradaDestinoTrecho, ConexionCtrlVO conexionCtrl,