diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/SisdapHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/SisdapHibernateDAO.java index 8bb645efa..60c6a637c 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/SisdapHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/SisdapHibernateDAO.java @@ -34,64 +34,46 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); StringBuilder sb = new StringBuilder(); - sb.append("SELECT DISTINCT e.codantt antt, "); + sb.append("select distinct 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(" NVL(CASE subviagens.sentido "); - sb.append(" WHEN 1 THEN Count(subviagens.ruta) "); - sb.append(" END, 0) viagensIda, "); - sb.append(" NVL(CASE subviagens.sentido "); - sb.append(" WHEN 0 THEN Count(subviagens.ruta) "); - sb.append(" END, 0) viagensVolta, "); - sb.append(" NVL(CASE subviagens.sentido "); - sb.append(" WHEN 1 THEN ( da.cantasientos * Count(subviagens.ruta) ) "); - sb.append(" END, 0) lugaresIda, "); - sb.append(" NVL(CASE subviagens.sentido "); - sb.append(" WHEN 0 THEN ( da.cantasientos * Count(subviagens.ruta) ) "); - sb.append(" END, 0) lugaresVolta "); - sb.append("FROM corrida c "); - sb.append(" inner join ruta r "); - sb.append(" ON r.ruta_id = c.ruta_id "); - sb.append(" inner join empresa e "); - sb.append(" ON e.empresa_id = c.empresacorrida_id "); - sb.append(" left join rol_operativo ro "); - sb.append(" ON c.roloperativo_id = ro.roloperativo_id "); - sb.append(" left join diagrama_autobus da "); - sb.append(" ON da.diagramaautobus_id = ro.diagramaautobus_id "); - sb.append(" left join (SELECT DISTINCT ru.prefixo ruta, "); - sb.append(" bo.corrida_id corrida, "); - sb.append(" bo.feccorrida feccorrida, "); - sb.append(" bo.empresacorrida_id empresacorrida, "); - sb.append(" ru.indsentidoida sentido "); - sb.append(" FROM boleto bo "); - sb.append(" left join ruta ru "); - sb.append(" ON ru.ruta_id = bo.ruta_id "); - sb.append(" WHERE bo.numasiento IS NOT NULL "); - sb.append(" AND bo.motivocancelacion_id IS NULL "); - sb.append(" AND bo.feccorrida BETWEEN To_date(:fecInicio, 'DD/MM/YYYY') AND "); - sb.append(" To_date(:fecFinal, 'DD/MM/YYYY') "); - sb.append(" GROUP BY ru.prefixo, "); - sb.append(" bo.corrida_id, "); - sb.append(" bo.feccorrida, "); - sb.append(" bo.empresacorrida_id, "); - sb.append(" ru.indsentidoida) subviagens "); - sb.append(" ON ( subviagens.ruta = r.prefixo "); - sb.append(" AND subviagens.corrida = c.corrida_id "); - sb.append(" AND subviagens.feccorrida = c.feccorrida "); - sb.append(" AND subviagens.empresacorrida = e.empresa_id ) "); - sb.append("WHERE e.empresa_id = :empresaId "); - sb.append(" AND r.orgaoconcedente_id = 3 "); - 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(" to_char(c.feccorrida, 'MM') mes, "); + sb.append(" to_char(c.feccorrida, 'yyyy') ano, "); + sb.append(" nvl(case r.indsentidoida "); + sb.append(" when 1 then count(r.prefixo) "); + sb.append(" end, 0) viagensida, "); + sb.append(" nvl(case r.indsentidoida "); + sb.append(" when 0 then count(r.prefixo) "); + sb.append(" end, 0) viagensvolta, "); + sb.append(" nvl(case r.indsentidoida "); + sb.append(" when 1 then sum(da.cantasientos) "); + sb.append(" end, 0) lugaresida, "); + sb.append(" nvl(case r.indsentidoida "); + sb.append(" when 0 then sum(da.cantasientos) "); + sb.append(" end, 0) lugaresvolta "); + 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 rol_operativo ro "); + sb.append(" on c.roloperativo_id = ro.roloperativo_id "); + sb.append(" left outer join diagrama_autobus da "); + sb.append(" on da.diagramaautobus_id = ro.diagramaautobus_id "); + sb.append("where m.marca_id = :empresaId "); + sb.append(" and r.orgaoconcedente_id = 3 "); + 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(" da.cantasientos, "); - sb.append(" subviagens.sentido, "); - sb.append(" To_char(c.feccorrida, 'MM'), "); - sb.append(" To_char(c.feccorrida, 'yyyy') "); - sb.append("ORDER BY mes, "); + sb.append(" r.indsentidoida, "); + sb.append(" to_char(c.feccorrida, 'MM'), "); + sb.append(" to_char(c.feccorrida, 'yyyy') "); + sb.append("order by mes, "); sb.append(" ano, "); sb.append(" e.codantt, "); sb.append(" r.prefixo, "); @@ -288,7 +270,7 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO if (insert) result.add(ms); } - + for (MovimentoSecoes ms : result) { movimentosSecoes.add(ms.toString()); }