fixes bug#20931

dev: Gleimar
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@104210 d1611594-4594-4d17-8e1d-87c2c4800839
master
fabio 2020-11-09 23:17:49 +00:00
parent e7b4e1cde9
commit 286d0aea34
2 changed files with 107 additions and 121 deletions

View File

@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.dao.hibernate;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
@ -51,6 +52,9 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
@Autowired
private CategoriaDescuentoDAO categoriaDescuentoDAO;
@Autowired
private ConstanteHibernateDAO constanteDAO;
@Autowired
private AliasServicoService aliasServicoService;
@ -356,17 +360,18 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
}
private void preencherTramosSequencias(final CorridaVO corrida, PuntoVenta puntoVenta, Empresa empresa) {
boolean isTarifaMinimaHabilitado = Boolean.getBoolean(constanteDAO.buscarPorNomeConstante("isTarifaMinimaHabilitado").getValorconstante());
StringBuilder sb = new StringBuilder();
sb.append(" SELECT");
sb.append(" TRM.TRAMO_ID AS tramoId,");
sb.append(" TRM.DESCTRAMO AS desctramo,");
sb.append(" TRM.ORIGEN_ID AS origemId,");
sb.append(" ORI.DESCPARADA AS descOrigem,");
sb.append(" ORICID.CIUDAD_ID AS cidadeOrigemId,");
sb.append(" ORICID.NOMBCIUDAD AS nomeCidadeOrigem,");
sb.append(" ORIEST.ESTADO_ID AS estadoOrigemId,");
sb.append(" ORIEST.NOMBESTADO AS nomeEstadoOrigem,");
sb.append(" TRM.TRAMO_ID AS tramoId,");
sb.append(" TRM.DESCTRAMO AS desctramo,");
sb.append(" TRM.ORIGEN_ID AS origemId,");
sb.append(" ORI.DESCPARADA AS descOrigem,");
sb.append(" ORICID.CIUDAD_ID AS cidadeOrigemId,");
sb.append(" ORICID.NOMBCIUDAD AS nomeCidadeOrigem,");
sb.append(" ORIEST.ESTADO_ID AS estadoOrigemId,");
sb.append(" ORIEST.NOMBESTADO AS nomeEstadoOrigem,");
sb.append(" ORIEST.CVEESTADO AS cveEstadoOrigem,");
sb.append(" TRM.DESTINO_ID AS destinoId,");
sb.append(" DES.DESCPARADA AS descDestino,");
@ -383,83 +388,89 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
sb.append(" TA.IMPORTEOUTROS AS importeOutros,");
sb.append(" TA.IMPORTESEGURO AS importeSeguro,");
sb.append(" TA.PRECIO AS precio,");
sb.append(" TA.RUTA_ID as rutaId,");
sb.append(" (");
sb.append(" select IMPORTETARIFA");
sb.append(" from (");
sb.append(" select");
sb.append(" tmx.TARIFAMINIMA_ID as TARIFAMINIMA_ID,");
sb.append(" tmx.ACTIVO as ACTIVO,");
sb.append(" tmx.CLASESERVICIO_ID as CLASESERVICIO_ID,");
sb.append(" tmx.COEFICIENTETARIFA_ID as COEFICIENTETARIFA_ID,");
sb.append(" tmx.DESTINO_ID as DESTINO_ID,");
sb.append(" tmx.FECMODIF as FECMODIF,");
sb.append(" tmx.IMPORTETARIFA as IMPORTETARIFA,");
sb.append(" tmx.MARCA_ID as MARCA_ID,");
sb.append(" tmx.MONEDA_ID as MONEDA_ID,");
sb.append(" tmx.ORGAOCONCEDENTE_ID as ORGAOCONCEDENTE_ID,");
sb.append(" tmx.ORIGEN_ID as ORIGEN_ID,");
sb.append(" tmx.PLAZA_ID as PLAZA_ID,");
sb.append(" tmx.REGIONMETROPOLITANA_ID as REGIONMETROPOLITANA_ID,");
sb.append(" tmx.RUTA_ID as RUTA_ID,");
sb.append(" tmx.USUARIO_ID as USUARIO_ID,");
sb.append(" tmx.VIGENCIATARIFA_ID as VIGENCIATARIFA_ID,");
sb.append(" ocx.ORGAOCONCEDENTE_ID as orgaoConcedenteId,");
sb.append(" paradaOrigem.PARADA_ID as paradaOrigemId,");
sb.append(" paradaDestino.PARADA_ID as paradaDestinoId,");
sb.append(" ruta.ruta_id as rutaId");
sb.append(" from TARIFA_MINIMA tmx");
sb.append(" join marca m on m.marca_id = tmx.marca_id ");
sb.append(" join empresa e on e.empresa_id = m.empresa_id ");
sb.append(" join PARADA paradaOrigem on paradaOrigem.activo = 1");
sb.append(" join PARADA paradaDestino on paradaDestino.activo = 1");
sb.append(" join RUTA ruta on ruta.activo = 1");
sb.append(" left outer join ORGAO_CONCEDENTE ocx on tmx.ORGAOCONCEDENTE_ID=ocx.ORGAOCONCEDENTE_ID ");
sb.append(" left outer join TARIFA_MINIMA_CATEGORIA tmcx on tmx.TARIFAMINIMA_ID=tmcx.TARIFAMINIMA_ID and tmcx.ACTIVO = 1 ");
sb.append(" left outer join VIGENCIA_TARIFA vtx on tmx.VIGENCIATARIFA_ID=vtx.VIGENCIATARIFA_ID ");
sb.append(" left outer join REGION_METROPOLITANA rmx on tmx.REGIONMETROPOLITANA_ID=rmx.REGIONMETROPOLITANA_ID ");
sb.append(" left outer join PARADA prmox on rmx.REGIONMETROPOLITANA_ID=prmox.REGIONMETROPOLITANA_ID ");
sb.append(" left outer join PARADA prmdx on rmx.REGIONMETROPOLITANA_ID=prmdx.REGIONMETROPOLITANA_ID ");
sb.append(" where tmx.ACTIVO=1 ");
sb.append(" and (prmox.PARADA_ID in (paradaOrigem.PARADA_ID, -1) or prmox.PARADA_ID is null) ");
sb.append(" and (prmdx.PARADA_ID in (paradaDestino.PARADA_ID, -1) or prmdx.PARADA_ID is null) ");
sb.append(" and (tmx.ORIGEN_ID in (paradaOrigem.PARADA_ID, -1) or tmx.ORIGEN_ID is null) ");
sb.append(" and (tmx.DESTINO_ID in (paradaDestino.PARADA_ID, -1) or tmx.DESTINO_ID is null) ");
sb.append(" and (tmx.PLAZA_ID in (:plazaId, -1)) ");
sb.append(" and (tmx.CLASESERVICIO_ID in (:claseservicioId, -1)) ");
sb.append(" and (e.EMPRESA_ID in (:empresaId, -1)) ");
sb.append(" and (tmcx.TARIFAMINIMACATEGORIA_ID is null or tmcx.CATEGORIA_ID in (:categoriaId, -1)) ");
sb.append(" and tmx.MONEDA_ID=:moneda");
sb.append(" and (ocx.ORGAOCONCEDENTE_ID is null or ocx.ORGAOCONCEDENTE_ID=-1 or ocx.ORGAOCONCEDENTE_ID=(");
sb.append(" select distinct rx.ORGAOCONCEDENTE_ID");
sb.append(" from RUTA rx ");
sb.append(" left outer join RUTA_COMBINACION rcx on rx.RUTA_ID=rcx.RUTA_ID ");
sb.append(" left outer join TRAMO tx on rcx.TRAMO_ID=tx.TRAMO_ID ");
sb.append(" left outer join ORGAO_TRAMO otx on tx.TRAMO_ID=otx.TRAMO_ID ");
sb.append(" where");
sb.append(" rcx.RUTA_ID=ruta.RUTA_ID");
sb.append(" and (");
sb.append(" (tmx.COEFICIENTETARIFA_ID in (otx.COEFICIENTETARIFA1_ID,otx.COEFICIENTETARIFA2_ID,otx.COEFICIENTETARIFA3_ID))");
sb.append(" and tx.ORIGEN_ID=paradaOrigem.parada_id ");
sb.append(" and tx.DESTINO_ID=paradaDestino.parada_id");
sb.append(" or tmx.COEFICIENTETARIFA_ID is null");
sb.append(" )");
sb.append(" )");
sb.append(" )");
sb.append(" and (SYSDATE between vtx.FECINICIOVIGENCIA and vtx.FECFINVIGENCIA)");
sb.append(" order by");
sb.append(" tmx.PLAZA_ID desc,");
sb.append(" tmx.ORIGEN_ID desc,");
sb.append(" tmx.DESTINO_ID desc,");
sb.append(" tmx.CLASESERVICIO_ID desc,");
sb.append(" tmx.MARCA_ID desc");
sb.append(" )");
sb.append(" where");
sb.append(" paradaOrigemId = TRM.ORIGEN_ID");
sb.append(" and paradaDestinoId = TRM.DESTINO_ID");
sb.append(" and rutaId = TA.RUTA_ID");
sb.append(" and rownum = 1");
sb.append(" ) as tarifaMinima ");
sb.append(" TA.RUTA_ID as rutaId, ");
if(isTarifaMinimaHabilitado) {
sb.append(" (");
sb.append(" select IMPORTETARIFA");
sb.append(" from (");
sb.append(" select");
sb.append(" tmx.TARIFAMINIMA_ID as TARIFAMINIMA_ID,");
sb.append(" tmx.ACTIVO as ACTIVO,");
sb.append(" tmx.CLASESERVICIO_ID as CLASESERVICIO_ID,");
sb.append(" tmx.COEFICIENTETARIFA_ID as COEFICIENTETARIFA_ID,");
sb.append(" tmx.DESTINO_ID as DESTINO_ID,");
sb.append(" tmx.FECMODIF as FECMODIF,");
sb.append(" tmx.IMPORTETARIFA as IMPORTETARIFA,");
sb.append(" tmx.MARCA_ID as MARCA_ID,");
sb.append(" tmx.MONEDA_ID as MONEDA_ID,");
sb.append(" tmx.ORGAOCONCEDENTE_ID as ORGAOCONCEDENTE_ID,");
sb.append(" tmx.ORIGEN_ID as ORIGEN_ID,");
sb.append(" tmx.PLAZA_ID as PLAZA_ID,");
sb.append(" tmx.REGIONMETROPOLITANA_ID as REGIONMETROPOLITANA_ID,");
sb.append(" tmx.RUTA_ID as RUTA_ID,");
sb.append(" tmx.USUARIO_ID as USUARIO_ID,");
sb.append(" tmx.VIGENCIATARIFA_ID as VIGENCIATARIFA_ID,");
sb.append(" ocx.ORGAOCONCEDENTE_ID as orgaoConcedenteId,");
sb.append(" paradaOrigem.PARADA_ID as paradaOrigemId,");
sb.append(" paradaDestino.PARADA_ID as paradaDestinoId,");
sb.append(" ruta.ruta_id as rutaId");
sb.append(" from TARIFA_MINIMA tmx");
sb.append(" join marca m on m.marca_id = tmx.marca_id ");
sb.append(" join empresa e on e.empresa_id = m.empresa_id ");
sb.append(" join PARADA paradaOrigem on paradaOrigem.activo = 1");
sb.append(" join PARADA paradaDestino on paradaDestino.activo = 1");
sb.append(" join RUTA ruta on ruta.activo = 1");
sb.append(" left outer join ORGAO_CONCEDENTE ocx on tmx.ORGAOCONCEDENTE_ID=ocx.ORGAOCONCEDENTE_ID ");
sb.append(" left outer join TARIFA_MINIMA_CATEGORIA tmcx on tmx.TARIFAMINIMA_ID=tmcx.TARIFAMINIMA_ID and tmcx.ACTIVO = 1 ");
sb.append(" left outer join VIGENCIA_TARIFA vtx on tmx.VIGENCIATARIFA_ID=vtx.VIGENCIATARIFA_ID ");
sb.append(" left outer join REGION_METROPOLITANA rmx on tmx.REGIONMETROPOLITANA_ID=rmx.REGIONMETROPOLITANA_ID ");
sb.append(" left outer join PARADA prmox on rmx.REGIONMETROPOLITANA_ID=prmox.REGIONMETROPOLITANA_ID ");
sb.append(" left outer join PARADA prmdx on rmx.REGIONMETROPOLITANA_ID=prmdx.REGIONMETROPOLITANA_ID ");
sb.append(" where tmx.ACTIVO=1 ");
sb.append(" and (prmox.PARADA_ID in (paradaOrigem.PARADA_ID, -1) or prmox.PARADA_ID is null) ");
sb.append(" and (prmdx.PARADA_ID in (paradaDestino.PARADA_ID, -1) or prmdx.PARADA_ID is null) ");
sb.append(" and (tmx.ORIGEN_ID in (paradaOrigem.PARADA_ID, -1) or tmx.ORIGEN_ID is null) ");
sb.append(" and (tmx.DESTINO_ID in (paradaDestino.PARADA_ID, -1) or tmx.DESTINO_ID is null) ");
sb.append(" and (tmx.PLAZA_ID in (:plazaId, -1)) ");
sb.append(" and (tmx.CLASESERVICIO_ID in (:claseservicioId, -1)) ");
sb.append(" and (e.EMPRESA_ID in (:empresaId, -1)) ");
sb.append(" and (tmcx.TARIFAMINIMACATEGORIA_ID is null or tmcx.CATEGORIA_ID in (:categoriaId, -1)) ");
sb.append(" and tmx.MONEDA_ID=:moneda");
sb.append(" and (ocx.ORGAOCONCEDENTE_ID is null or ocx.ORGAOCONCEDENTE_ID=-1 or ocx.ORGAOCONCEDENTE_ID=(");
sb.append(" select distinct rx.ORGAOCONCEDENTE_ID");
sb.append(" from RUTA rx ");
sb.append(" left outer join RUTA_COMBINACION rcx on rx.RUTA_ID=rcx.RUTA_ID ");
sb.append(" left outer join TRAMO tx on rcx.TRAMO_ID=tx.TRAMO_ID ");
sb.append(" left outer join ORGAO_TRAMO otx on tx.TRAMO_ID=otx.TRAMO_ID ");
sb.append(" where");
sb.append(" rcx.RUTA_ID=ruta.RUTA_ID");
sb.append(" and (");
sb.append(" (tmx.COEFICIENTETARIFA_ID in (otx.COEFICIENTETARIFA1_ID,otx.COEFICIENTETARIFA2_ID,otx.COEFICIENTETARIFA3_ID))");
sb.append(" and tx.ORIGEN_ID=paradaOrigem.parada_id ");
sb.append(" and tx.DESTINO_ID=paradaDestino.parada_id");
sb.append(" or tmx.COEFICIENTETARIFA_ID is null");
sb.append(" )");
sb.append(" )");
sb.append(" )");
sb.append(" and (SYSDATE between vtx.FECINICIOVIGENCIA and vtx.FECFINVIGENCIA)");
sb.append(" order by");
sb.append(" tmx.PLAZA_ID desc,");
sb.append(" tmx.ORIGEN_ID desc,");
sb.append(" tmx.DESTINO_ID desc,");
sb.append(" tmx.CLASESERVICIO_ID desc,");
sb.append(" tmx.MARCA_ID desc");
sb.append(" )");
sb.append(" where");
sb.append(" paradaOrigemId = TRM.ORIGEN_ID");
sb.append(" and paradaDestinoId = TRM.DESTINO_ID");
sb.append(" and rutaId = TA.RUTA_ID");
sb.append(" and rownum = 1");
sb.append(" ) as tarifaMinima ");
}else {
sb.append(" null as tarifaMinima ");
}
sb.append(" FROM RUTA_COMBINACION RC");
sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = RC.TRAMO_ID");
sb.append(" JOIN CORRIDA_TRAMO CRT ON CRT.DESTINO_ID = TRM.DESTINO_ID AND CRT.CORRIDA_ID = :corridaId AND CRT.FECCORRIDA = TO_DATE(:feccorrida,'DD/MM/YYYY HH24:MI:SS')");
@ -491,34 +502,6 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
sb.append(" AND TRM.ORIGEN_ID IN (SELECT X.ORIGEN_ID FROM CORRIDA_TRAMO X WHERE X.CORRIDA_ID = :corridaId AND X.FECCORRIDA = TO_DATE(:feccorrida,'DD/MM/YYYY HH24:MI:SS'))");
sb.append(" AND TRM.DESTINO_ID IN (SELECT X.DESTINO_ID FROM CORRIDA_TRAMO X WHERE X.CORRIDA_ID = :corridaId AND X.FECCORRIDA = TO_DATE(:feccorrida,'DD/MM/YYYY HH24:MI:SS'))");
sb.append(" AND (SYSDATE BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA AND VT.ACTIVO = 1)");
sb.append(" GROUP BY");
sb.append(" TRM.TRAMO_ID,");
sb.append(" TRM.DESCTRAMO,");
sb.append(" TRM.ORIGEN_ID,");
sb.append(" ORI.DESCPARADA,");
sb.append(" ORICID.CIUDAD_ID,");
sb.append(" ORICID.NOMBCIUDAD,");
sb.append(" ORIEST.ESTADO_ID,");
sb.append(" ORIEST.NOMBESTADO,");
sb.append(" ORIEST.CVEESTADO,");
sb.append(" TRM.DESTINO_ID,");
sb.append(" DES.DESCPARADA,");
sb.append(" DESCID.CIUDAD_ID,");
sb.append(" DESCID.NOMBCIUDAD,");
sb.append(" DESEST.ESTADO_ID,");
sb.append(" DESEST.NOMBESTADO,");
sb.append(" DESEST.CVEESTADO,");
sb.append(" TRM.VIA_ID,");
sb.append(" VIA.NOMBVIA,");
sb.append(" CRT.NUMSECUENCIA,");
sb.append(" TA.IMPORTETAXAEMBARQUE,");
sb.append(" TA.IMPORTEPEDAGIO,");
sb.append(" TA.IMPORTEOUTROS,");
sb.append(" TA.IMPORTESEGURO,");
sb.append(" TA.PRECIO,");
sb.append(" TA.RUTA_ID");
sb.append(" ORDER BY");
sb.append(" CRT.NUMSECUENCIA");
Query query = getSession().createSQLQuery(sb.toString())
.addScalar("tramoId", IntegerType.INSTANCE)
@ -552,16 +535,19 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
query.setParameter("rutaId", corrida.getRutaId());
query.setParameter("corridaId", corrida.getCorridaId());
query.setParameter("feccorrida", corrida.getFeccorrida() + " 00:00:00");
query.setParameter("plazaId", puntoVenta.getColonia().getCiudad().getPlaza().getPlazaId());
query.setParameter("claseservicioId", corrida.getClaseServicioId());
query.setParameter("categoriaId", Constantes.CATEGORIA_NORMAL);
query.setParameter("moneda", puntoVenta.getMoneda().getMonedaId());
if(isTarifaMinimaHabilitado) {
query.setParameter("plazaId", puntoVenta.getColonia().getCiudad().getPlaza().getPlazaId());
query.setParameter("claseservicioId", corrida.getClaseServicioId());
query.setParameter("categoriaId", Constantes.CATEGORIA_NORMAL);
query.setParameter("moneda", puntoVenta.getMoneda().getMonedaId());
}
List<TramoSequenciaVO> tramosequencia = query.list();
CategoriaDescuento categoriaDescuento = categoriaDescuentoDAO.pesquisarPorCategoriaEmpresa(Constantes.CATEGORIA_NORMAL, corrida.getEmpresaId());
List<TramoVO> lsTramo = new ArrayList<TramoVO>();
HashSet<TramoVO> setTramo = new HashSet<TramoVO>();
List<AliasServico> aliasLs = aliasServicoService.buscarPorRuta(corrida.getRutaId());
@ -648,9 +634,10 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
tramo.setDescAliasdestino(aC.getAliasDestino().getDescparada());
tramo.setDescAliasorigen(aC.getAliasOrigen().getDescparada());
}
lsTramo.add(tramo);
setTramo.add(tramo);
}
List<TramoVO> lsTramo = new ArrayList<TramoVO>(setTramo);
corrida.setLsTramoVO(lsTramo);
}

View File

@ -213,7 +213,6 @@ public class TramoHibernateDAO extends GenericHibernateDAO<Tramo, Integer>
sql.append(" coalesce(ta.importeoutros, 0) AS valorOutros, ");
sql.append(" coalesce(ta.importeseguro, 0) AS valorSeguro, ");
sql.append(" coalesce(ta.precio, 0) AS valorTarifa ");
// sql.append(" , co.ruta_id AS rutaId ");
sql.append(" FROM ");
sql.append(" ruta_combinacion rc ");
sql.append(" JOIN tramo trm ON trm.tramo_id = rc.tramo_id AND trm.activo = 1 ");