B6 - Agrupar ida/volta de acordo com Álias no relatório SISDAP (fixed bug #5479)
Tempo: 6 horas git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@37123 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
57ac5273c5
commit
f2ecb4d01a
|
@ -327,66 +327,184 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO
|
|||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("select e.codantt antt, ");
|
||||
sb.append(" r.prefixo prefixo, ");
|
||||
sb.append(" to_char(c.feccorrida, 'MM') mes, ");
|
||||
sb.append(" to_char(c.feccorrida, 'yyyy') ano, ");
|
||||
sb.append(" case r.indsentidoida when 1 then po.codantt else pd.codantt end localorigem, ");
|
||||
sb.append(" case r.indsentidoida when 1 then pd.codantt else po.codantt end localdestino, ");
|
||||
sb.append(" nvl(case when r.indsentidoida = 1 and b.categoria_id in ");
|
||||
sb.append(" (select categoria_id from categoria where grupocategoria_id is null) ");
|
||||
sb.append(" then count(*) end, 0) passageirosida, ");
|
||||
sb.append(" nvl(case when r.indsentidoida = 0 and b.categoria_id in ");
|
||||
sb.append(" (select categoria_id from categoria where grupocategoria_id is null) ");
|
||||
sb.append(" then count(*) end, 0) passageirosvolta, ");
|
||||
sb.append(" nvl(case when r.indsentidoida = 1 and b.categoria_id in ");
|
||||
sb.append(" (select categoria_id from categoria where grupocategoria_id in ( 2 )) ");
|
||||
sb.append(" then count(*) end, 0) gratuidadepasselivreida, ");
|
||||
sb.append(" nvl(case when r.indsentidoida = 0 and b.categoria_id in ");
|
||||
sb.append(" (select categoria_id from categoria where grupocategoria_id in ( 2 )) ");
|
||||
sb.append(" then count(*) end, 0) gratuidadepasselivrevolta, ");
|
||||
sb.append(" nvl(case when r.indsentidoida = 1 and b.categoria_id in ");
|
||||
sb.append(" (select categoria_id from categoria where grupocategoria_id in ( 1 )) ");
|
||||
sb.append(" then count(*) end, 0) gratuidadeidosoida, ");
|
||||
sb.append(" nvl(case when r.indsentidoida = 0 and b.categoria_id in ");
|
||||
sb.append(" (select categoria_id from categoria where grupocategoria_id in ( 1 )) ");
|
||||
sb.append(" then count(*) end, 0) gratuidadeidosovolta, ");
|
||||
sb.append(" nvl(case when r.indsentidoida = 1 and b.categoria_id in ");
|
||||
sb.append(" (select categoria_id from categoria where grupocategoria_id in ( 3 )) ");
|
||||
sb.append(" then count(*) end, 0) descontoidosoida, ");
|
||||
sb.append(" nvl(case when r.indsentidoida = 0 and b.categoria_id in ");
|
||||
sb.append(" (select categoria_id from categoria where grupocategoria_id in ( 3 )) ");
|
||||
sb.append(" then count(*) end, 0) descontoidosovolta ");
|
||||
sb.append("from ruta_empresa re ");
|
||||
sb.append(" left join marca m on m.marca_id = re.empresa_id ");
|
||||
sb.append(" left join empresa e on m.empresa_id = e.empresa_id ");
|
||||
sb.append(" left join ruta r on re.ruta_id = r.ruta_id ");
|
||||
sb.append(" left join corrida c on c.ruta_id = r.ruta_id ");
|
||||
sb.append(" left outer join boleto b on c.corrida_id = b.corrida_id ");
|
||||
sb.append(" and c.feccorrida = b.feccorrida ");
|
||||
sb.append(" left outer join parada po on po.parada_id = b.origen_id ");
|
||||
sb.append(" left outer join parada pd on pd.parada_id = b.destino_id ");
|
||||
sb.append("where m.marca_id = :empresaId ");
|
||||
sb.append(" and re.activo = 1 ");
|
||||
sb.append(" and r.activo = 1 ");
|
||||
sb.append(" and r.orgaoconcedente_id = 3 ");
|
||||
sb.append(" and b.numasiento is not null ");
|
||||
sb.append(" and b.motivocancelacion_id is null ");
|
||||
sb.append(" and e.codantt is not null ");
|
||||
sb.append(" and c.feccorrida between to_date(:fecInicio, 'DD/MM/YYYY') and ");
|
||||
sb.append(" to_date(:fecFinal, 'DD/MM/YYYY') ");
|
||||
sb.append("group by e.codantt, ");
|
||||
sb.append(" r.prefixo, ");
|
||||
sb.append(" to_char(c.feccorrida, 'MM'), ");
|
||||
sb.append(" to_char(c.feccorrida, 'yyyy'), ");
|
||||
sb.append(" po.codantt, ");
|
||||
sb.append(" pd.codantt, ");
|
||||
sb.append(" r.indsentidoida, ");
|
||||
sb.append(" b.categoria_id ");
|
||||
sb.append("order by mes, ");
|
||||
sb.append("SELECT subAlias.antt, ");
|
||||
sb.append(" subAlias.prefixo, ");
|
||||
sb.append(" subAlias.mes, ");
|
||||
sb.append(" subAlias.ano, ");
|
||||
sb.append(" po.codantt localOrigem, ");
|
||||
sb.append(" pd.codantt localDestino, ");
|
||||
sb.append(" subAlias.passageirosida, ");
|
||||
sb.append(" subAlias.passageirosvolta, ");
|
||||
sb.append(" subAlias.gratuidadepasselivreida, ");
|
||||
sb.append(" subAlias.gratuidadepasselivrevolta, ");
|
||||
sb.append(" subAlias.gratuidadeidosoida, ");
|
||||
sb.append(" subAlias.gratuidadeidosovolta, ");
|
||||
sb.append(" subAlias.descontoidosoida, ");
|
||||
sb.append(" subAlias.descontoidosovolta ");
|
||||
sb.append("FROM (SELECT subResp.antt antt, ");
|
||||
sb.append(" subResp.prefixo prefixo, ");
|
||||
sb.append(" subResp.mes mes, ");
|
||||
sb.append(" subResp.ano ano, ");
|
||||
sb.append(" Nvl(ase.aliasorigen_id, subResp.localorigem) aliasorigen, ");
|
||||
sb.append(" Nvl(ase.aliasdestino_id, subResp.localdestino) aliasdestino, ");
|
||||
sb.append(" subResp.passageirosida passageirosida, ");
|
||||
sb.append(" subResp.passageirosvolta passageirosvolta, ");
|
||||
sb.append(" subResp.gratuidadepasselivreida ");
|
||||
sb.append(" gratuidadepasselivreida, ");
|
||||
sb.append(" subResp.gratuidadepasselivrevolta ");
|
||||
sb.append(" gratuidadepasselivrevolta ");
|
||||
sb.append(" , ");
|
||||
sb.append(" subResp.gratuidadeidosoida ");
|
||||
sb.append(" gratuidadeidosoida, ");
|
||||
sb.append(" subResp.gratuidadeidosovolta ");
|
||||
sb.append(" gratuidadeidosovolta, ");
|
||||
sb.append(" subResp.descontoidosoida descontoidosoida, ");
|
||||
sb.append(" subResp.descontoidosovolta descontoidosovolta ");
|
||||
sb.append(" FROM (SELECT e.codantt antt, ");
|
||||
sb.append(" r.prefixo prefixo, ");
|
||||
sb.append(" To_char(c.feccorrida, 'MM') mes, ");
|
||||
sb.append(" To_char(c.feccorrida, 'yyyy') ano, ");
|
||||
sb.append(" CASE r.indsentidoida ");
|
||||
sb.append(" WHEN 1 THEN po.parada_id ");
|
||||
sb.append(" ELSE pd.parada_id ");
|
||||
sb.append(" END localorigem, ");
|
||||
sb.append(" CASE r.indsentidoida ");
|
||||
sb.append(" WHEN 1 THEN pd.parada_id ");
|
||||
sb.append(" ELSE po.parada_id ");
|
||||
sb.append(" END localdestino, ");
|
||||
sb.append(" Nvl(CASE ");
|
||||
sb.append(" WHEN r.indsentidoida = 1 ");
|
||||
sb.append(" AND b.categoria_id IN (SELECT categoria_id ");
|
||||
sb.append(" FROM categoria ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" grupocategoria_id IS NULL) THEN ");
|
||||
sb.append(" Count(* ");
|
||||
sb.append(" ) ");
|
||||
sb.append(" END, 0) passageirosida, ");
|
||||
sb.append(" Nvl(CASE ");
|
||||
sb.append(" WHEN r.indsentidoida = 0 ");
|
||||
sb.append(" AND b.categoria_id IN (SELECT categoria_id ");
|
||||
sb.append(" FROM categoria ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" grupocategoria_id IS NULL) THEN ");
|
||||
sb.append(" Count(* ");
|
||||
sb.append(" ) ");
|
||||
sb.append(" END, 0) passageirosvolta, ");
|
||||
sb.append(" Nvl(CASE ");
|
||||
sb.append(" WHEN r.indsentidoida = 1 ");
|
||||
sb.append(" AND b.categoria_id IN (SELECT categoria_id ");
|
||||
sb.append(" FROM categoria ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" grupocategoria_id IN ( 2 )) ");
|
||||
sb.append(" THEN Count( ");
|
||||
sb.append(" *) ");
|
||||
sb.append(" END, 0) gratuidadepasselivreida, ");
|
||||
sb.append(" Nvl(CASE ");
|
||||
sb.append(" WHEN r.indsentidoida = 0 ");
|
||||
sb.append(" AND b.categoria_id IN (SELECT categoria_id ");
|
||||
sb.append(" FROM categoria ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" grupocategoria_id IN ( 2 )) ");
|
||||
sb.append(" THEN Count( ");
|
||||
sb.append(" *) ");
|
||||
sb.append(" END, 0) gratuidadepasselivrevolta, ");
|
||||
sb.append(" Nvl(CASE ");
|
||||
sb.append(" WHEN r.indsentidoida = 1 ");
|
||||
sb.append(" AND b.categoria_id IN (SELECT categoria_id ");
|
||||
sb.append(" FROM categoria ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" grupocategoria_id IN ( 1 )) ");
|
||||
sb.append(" THEN Count( ");
|
||||
sb.append(" *) ");
|
||||
sb.append(" END, 0) gratuidadeidosoida, ");
|
||||
sb.append(" Nvl(CASE ");
|
||||
sb.append(" WHEN r.indsentidoida = 0 ");
|
||||
sb.append(" AND b.categoria_id IN (SELECT categoria_id ");
|
||||
sb.append(" FROM categoria ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" grupocategoria_id IN ( 1 )) ");
|
||||
sb.append(" THEN Count( ");
|
||||
sb.append(" *) ");
|
||||
sb.append(" END, 0) gratuidadeidosovolta, ");
|
||||
sb.append(" Nvl(CASE ");
|
||||
sb.append(" WHEN r.indsentidoida = 1 ");
|
||||
sb.append(" AND b.categoria_id IN (SELECT categoria_id ");
|
||||
sb.append(" FROM categoria ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" grupocategoria_id IN ( 3 )) ");
|
||||
sb.append(" THEN Count( ");
|
||||
sb.append(" *) ");
|
||||
sb.append(" END, 0) descontoidosoida, ");
|
||||
sb.append(" Nvl(CASE ");
|
||||
sb.append(" WHEN r.indsentidoida = 0 ");
|
||||
sb.append(" AND b.categoria_id IN (SELECT categoria_id ");
|
||||
sb.append(" FROM categoria ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" grupocategoria_id IN ( 3 )) ");
|
||||
sb.append(" THEN Count( ");
|
||||
sb.append(" *) ");
|
||||
sb.append(" END, 0) descontoidosovolta ");
|
||||
sb.append(" FROM ruta_empresa re ");
|
||||
sb.append(" left join marca m ");
|
||||
sb.append(" ON m.marca_id = re.empresa_id ");
|
||||
sb.append(" left join empresa e ");
|
||||
sb.append(" ON m.empresa_id = e.empresa_id ");
|
||||
sb.append(" left join ruta r ");
|
||||
sb.append(" ON re.ruta_id = r.ruta_id ");
|
||||
sb.append(" left join corrida c ");
|
||||
sb.append(" ON c.ruta_id = r.ruta_id ");
|
||||
sb.append(" left outer join boleto b ");
|
||||
sb.append(" ON c.corrida_id = b.corrida_id ");
|
||||
sb.append(" AND c.feccorrida = b.feccorrida ");
|
||||
sb.append(" left outer join parada po ");
|
||||
sb.append(" ON po.parada_id = b.origen_id ");
|
||||
sb.append(" left outer join parada pd ");
|
||||
sb.append(" ON pd.parada_id = b.destino_id ");
|
||||
sb.append(" WHERE m.marca_id = :empresaId ");
|
||||
sb.append(" AND re.activo = 1 ");
|
||||
sb.append(" AND r.activo = 1 ");
|
||||
sb.append(" AND r.orgaoconcedente_id = 3 ");
|
||||
sb.append(" AND b.numasiento IS NOT NULL ");
|
||||
sb.append(" AND b.motivocancelacion_id IS NULL ");
|
||||
sb.append(" AND e.codantt IS NOT NULL ");
|
||||
sb.append(" AND c.feccorrida BETWEEN To_date(:fecInicio, ");
|
||||
sb.append(" 'DD/MM/YYYY') AND ");
|
||||
sb.append(" To_date ");
|
||||
sb.append(" ( ");
|
||||
sb.append(" :fecFinal, 'DD/MM/YYYY') ");
|
||||
sb.append(" GROUP BY e.codantt, ");
|
||||
sb.append(" r.prefixo, ");
|
||||
sb.append(" To_char(c.feccorrida, 'MM'), ");
|
||||
sb.append(" To_char(c.feccorrida, 'yyyy'), ");
|
||||
sb.append(" po.parada_id, ");
|
||||
sb.append(" pd.parada_id, ");
|
||||
sb.append(" r.indsentidoida, ");
|
||||
sb.append(" b.categoria_id) subResp ");
|
||||
sb.append(" left join alias_servico ase ");
|
||||
sb.append(" ON ( subResp.localorigem = ase.origen_id ");
|
||||
sb.append(" AND subResp.localdestino = ase.destino_id ) ");
|
||||
sb.append(" GROUP BY subResp.antt, ");
|
||||
sb.append(" subResp.prefixo, ");
|
||||
sb.append(" subResp.mes, ");
|
||||
sb.append(" subResp.ano, ");
|
||||
sb.append(" Nvl(ase.aliasorigen_id, subResp.localorigem), ");
|
||||
sb.append(" Nvl(ase.aliasdestino_id, subResp.localdestino), ");
|
||||
sb.append(" subResp.passageirosida, ");
|
||||
sb.append(" subResp.passageirosvolta, ");
|
||||
sb.append(" subResp.gratuidadepasselivreida, ");
|
||||
sb.append(" subResp.gratuidadepasselivrevolta, ");
|
||||
sb.append(" subResp.gratuidadeidosoida, ");
|
||||
sb.append(" subResp.gratuidadeidosovolta, ");
|
||||
sb.append(" subResp.descontoidosoida, ");
|
||||
sb.append(" subResp.descontoidosovolta) subAlias ");
|
||||
sb.append(" inner join parada po ");
|
||||
sb.append(" ON ( subAlias.aliasorigen = po.parada_id ) ");
|
||||
sb.append(" inner join parada pd ");
|
||||
sb.append(" ON ( subAlias.aliasdestino = pd.parada_id ) ");
|
||||
sb.append("ORDER BY mes, ");
|
||||
sb.append(" ano, ");
|
||||
sb.append(" e.codantt, ");
|
||||
sb.append(" r.prefixo, ");
|
||||
sb.append(" antt, ");
|
||||
sb.append(" prefixo, ");
|
||||
sb.append(" localorigem, ");
|
||||
sb.append(" localdestino ");
|
||||
|
||||
|
@ -418,77 +536,126 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO
|
|||
private List<PrefixoAntt> buscaPrefixoEmpresaOrigenDestino(Integer empresaId) {
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("SELECT e.codantt antt, ");
|
||||
sb.append(" ru.prefixo prefixo, ");
|
||||
sb.append("SELECT subResp.antt, ");
|
||||
sb.append(" subResp.prefixo, ");
|
||||
sb.append(" po.codantt localOrigem, ");
|
||||
sb.append(" pd.codantt localDestino ");
|
||||
sb.append("FROM ruta_empresa re ");
|
||||
sb.append(" left join marca m ON m.marca_id = re.empresa_id ");
|
||||
sb.append(" left join empresa e ON m.empresa_id = e.empresa_id ");
|
||||
sb.append(" left join ruta ru ON re.ruta_id = ru.ruta_id, ");
|
||||
sb.append(" parada po, ");
|
||||
sb.append(" parada pd ");
|
||||
sb.append("WHERE re.empresa_id = :empresaId ");
|
||||
sb.append(" AND ru.orgaoconcedente_id = 3 ");
|
||||
sb.append(" AND re.activo = 1 AND ru.activo = 1 ");
|
||||
sb.append(" AND po.parada_id = (SELECT t.origen_id FROM tramo t ");
|
||||
sb.append(" WHERE t.tramo_id = ");
|
||||
sb.append(" (SELECT rs.tramo_id FROM ruta r ");
|
||||
sb.append(" left join ruta_secuencia rs ON rs.ruta_id = r.ruta_id ");
|
||||
sb.append(" WHERE r.prefixo IN ( ru.prefixo ) ");
|
||||
sb.append(" AND r.indsentidoida = 1 ");
|
||||
sb.append(" AND r.activo = 1 ");
|
||||
sb.append(" AND rs.activo = 1 ");
|
||||
sb.append(" AND ROWNUM <= 1 ");
|
||||
sb.append(" AND rs.numsecuencia IN ");
|
||||
sb.append(" (SELECT Min(rs.numsecuencia) ");
|
||||
sb.append(" FROM ruta r ");
|
||||
sb.append(" left join ruta_secuencia rs ");
|
||||
sb.append(" ON rs.ruta_id = ");
|
||||
sb.append(" r.ruta_id ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" r.prefixo IN ( ru.prefixo ) ");
|
||||
sb.append(" AND r.indsentidoida = 1 ");
|
||||
sb.append(" AND r.activo = 1 ");
|
||||
sb.append(" AND rs.activo = 1) ");
|
||||
sb.append(" GROUP BY rs.tramo_id) ");
|
||||
sb.append(" AND ROWNUM <= 1) ");
|
||||
sb.append(" AND pd.parada_id = (SELECT t.destino_id ");
|
||||
sb.append(" FROM tramo t ");
|
||||
sb.append(" WHERE t.tramo_id = (SELECT rs.tramo_id ");
|
||||
sb.append(" FROM ruta r ");
|
||||
sb.append(" left join ruta_secuencia ");
|
||||
sb.append(" rs ");
|
||||
sb.append(" ON rs.ruta_id = ");
|
||||
sb.append(" r.ruta_id ");
|
||||
sb.append(" WHERE r.prefixo IN ");
|
||||
sb.append(" ( ru.prefixo ) ");
|
||||
sb.append(" AND r.indsentidoida = 1 ");
|
||||
sb.append(" AND r.activo = 1 ");
|
||||
sb.append(" AND rs.activo = 1 ");
|
||||
sb.append(" AND ROWNUM <= 1 ");
|
||||
sb.append(" AND rs.numsecuencia IN ");
|
||||
sb.append(" (SELECT Max(rs.numsecuencia) ");
|
||||
sb.append(" FROM ruta r ");
|
||||
sb.append(" left join ruta_secuencia rs ");
|
||||
sb.append(" ON rs.ruta_id = ");
|
||||
sb.append(" r.ruta_id ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" r.prefixo IN ( ru.prefixo ) ");
|
||||
sb.append(" AND r.indsentidoida = 1 ");
|
||||
sb.append(" AND r.activo = 1 ");
|
||||
sb.append(" AND rs.activo = 1) ");
|
||||
sb.append(" GROUP BY rs.tramo_id)) ");
|
||||
sb.append("GROUP BY e.codantt, ");
|
||||
sb.append(" ru.prefixo, ");
|
||||
sb.append(" po.descparada, ");
|
||||
sb.append("FROM (SELECT subAlias.antt antt, ");
|
||||
sb.append(" ru.prefixo prefixo, ");
|
||||
sb.append(" subAlias.localorigem localOrigem, ");
|
||||
sb.append(" subAlias.localdestino localDestino ");
|
||||
sb.append(" FROM ruta ru, ");
|
||||
sb.append(" (SELECT subSelect.antt antt, ");
|
||||
sb.append(" subSelect.ruta_id rutaId, ");
|
||||
sb.append(" subSelect.prefixo prefixo, ");
|
||||
sb.append(" Nvl(asr.aliasorigen_id, subSelect.localorigem) AS ");
|
||||
sb.append(" localOrigem, ");
|
||||
sb.append(" Nvl(asr.aliasdestino_id, subSelect.localdestino) AS ");
|
||||
sb.append(" localDestino ");
|
||||
sb.append(" FROM (SELECT e.codantt antt, ");
|
||||
sb.append(" ru.ruta_id, ");
|
||||
sb.append(" po.parada_id localOrigem, ");
|
||||
sb.append(" pd.parada_id localDestino, ");
|
||||
sb.append(" ru.prefixo prefixo ");
|
||||
sb.append(" FROM ruta_empresa re ");
|
||||
sb.append(" left join marca m ");
|
||||
sb.append(" ON m.marca_id = re.empresa_id ");
|
||||
sb.append(" left join empresa e ");
|
||||
sb.append(" ON m.empresa_id = e.empresa_id ");
|
||||
sb.append(" left join ruta ru ");
|
||||
sb.append(" ON re.ruta_id = ru.ruta_id, ");
|
||||
sb.append(" parada po, ");
|
||||
sb.append(" parada pd ");
|
||||
sb.append(" WHERE re.empresa_id = :empresaId ");
|
||||
sb.append(" AND ru.orgaoconcedente_id = 3 ");
|
||||
sb.append(" AND re.activo = 1 ");
|
||||
sb.append(" AND ru.activo = 1 ");
|
||||
sb.append(" AND po.parada_id = (SELECT t.origen_id ");
|
||||
sb.append(" FROM tramo t ");
|
||||
sb.append(" WHERE t.tramo_id = ");
|
||||
sb.append(" (SELECT rs.tramo_id ");
|
||||
sb.append(" FROM ruta r ");
|
||||
sb.append(" left join ruta_secuencia ");
|
||||
sb.append(" rs ");
|
||||
sb.append(" ON rs.ruta_id = ");
|
||||
sb.append(" r.ruta_id ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" r.ruta_id IN ( ru.ruta_id ) ");
|
||||
sb.append(" AND r.indsentidoida = 1 ");
|
||||
sb.append(" AND r.activo = 1 ");
|
||||
sb.append(" AND rs.activo = 1 ");
|
||||
sb.append(" AND ROWNUM <= 1 ");
|
||||
sb.append(" AND rs.numsecuencia IN ");
|
||||
sb.append(" (SELECT ");
|
||||
sb.append(" Min(rs.numsecuencia) + 1 ");
|
||||
sb.append(" FROM ");
|
||||
sb.append(" ruta r ");
|
||||
sb.append(" left join ruta_secuencia ");
|
||||
sb.append(" rs ");
|
||||
sb.append(" ON rs.ruta_id = ");
|
||||
sb.append(" r.ruta_id ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" r.prefixo IN ( ru.prefixo ");
|
||||
sb.append(" ) ");
|
||||
sb.append(" AND r.indsentidoida = 1 ");
|
||||
sb.append(" AND r.activo = 1 ");
|
||||
sb.append(" AND rs.activo = 1) ");
|
||||
sb.append(" GROUP BY ");
|
||||
sb.append(" rs.tramo_id) ");
|
||||
sb.append(" AND ROWNUM <= 1) ");
|
||||
sb.append(" AND pd.parada_id = (SELECT t.destino_id ");
|
||||
sb.append(" FROM tramo t ");
|
||||
sb.append(" WHERE t.tramo_id = ");
|
||||
sb.append(" (SELECT rs.tramo_id ");
|
||||
sb.append(" FROM ruta r ");
|
||||
sb.append(" left join ruta_secuencia ");
|
||||
sb.append(" rs ");
|
||||
sb.append(" ON rs.ruta_id = ");
|
||||
sb.append(" r.ruta_id ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" r.ruta_id IN ( ru.ruta_id ) ");
|
||||
sb.append(" AND r.indsentidoida = 1 ");
|
||||
sb.append(" AND r.activo = 1 ");
|
||||
sb.append(" AND rs.activo = 1 ");
|
||||
sb.append(" AND ROWNUM <= 1 ");
|
||||
sb.append(" AND rs.numsecuencia IN ");
|
||||
sb.append(" (SELECT Max(rs.numsecuencia) ");
|
||||
sb.append(" FROM ruta r ");
|
||||
sb.append(" left join ruta_secuencia rs ");
|
||||
sb.append(" ON rs.ruta_id = ");
|
||||
sb.append(" r.ruta_id ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" r.prefixo IN ( ru.prefixo ) ");
|
||||
sb.append(" AND r.indsentidoida = 1 ");
|
||||
sb.append(" AND r.activo = 1 ");
|
||||
sb.append(" AND rs.activo = 1) ");
|
||||
sb.append(" GROUP BY ");
|
||||
sb.append(" rs.tramo_id)) ");
|
||||
sb.append(" ) ");
|
||||
sb.append(" subSelect ");
|
||||
sb.append(" left join alias_servico asr ");
|
||||
sb.append(" ON ( asr.origen_id = subSelect.localorigem ");
|
||||
sb.append(" AND asr.destino_id = subSelect.localdestino ");
|
||||
sb.append(" AND asr.ruta_id = subSelect.ruta_id ) ");
|
||||
sb.append(" GROUP BY subSelect.antt, ");
|
||||
sb.append(" subSelect.ruta_id, ");
|
||||
sb.append(" subSelect.prefixo, ");
|
||||
sb.append(" Nvl(asr.aliasorigen_id, subSelect.localorigem), ");
|
||||
sb.append(" Nvl(asr.aliasdestino_id, subSelect.localdestino)) ");
|
||||
sb.append(" subAlias ");
|
||||
sb.append(" WHERE ru.ruta_id IN ( subAlias.rutaid ) ");
|
||||
sb.append(" GROUP BY subAlias.antt, ");
|
||||
sb.append(" subAlias.localorigem, ");
|
||||
sb.append(" subAlias.localdestino, ");
|
||||
sb.append(" ru.prefixo) subResp ");
|
||||
sb.append(" inner join parada po ");
|
||||
sb.append(" ON ( subResp.localorigem = po.parada_id ) ");
|
||||
sb.append(" inner join parada pd ");
|
||||
sb.append(" ON ( subResp.localdestino = pd.parada_id ) ");
|
||||
sb.append("ORDER BY subResp.antt, ");
|
||||
sb.append(" subResp.prefixo, ");
|
||||
sb.append(" po.codantt, ");
|
||||
sb.append(" pd.descparada, ");
|
||||
sb.append(" pd.codantt ");
|
||||
sb.append("ORDER BY e.codantt, ");
|
||||
sb.append(" ru.prefixo, ");
|
||||
sb.append(" po.descparada, ");
|
||||
sb.append(" po.codantt ");
|
||||
|
||||
Query query = getSession().createSQLQuery(sb.toString())
|
||||
.addScalar("antt", StringType.INSTANCE)
|
||||
|
|
Loading…
Reference in New Issue