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