From adc1a941ca579bdcc964ce415447faf0e9eec1b8 Mon Sep 17 00:00:00 2001 From: julio Date: Thu, 16 Apr 2015 13:21:14 +0000 Subject: [PATCH] =?UTF-8?q?Erro=20-=20Relat=C3=B3rio=20Linhas=20por=20Hor?= =?UTF-8?q?=C3=A1rio=20(fixes=20bug=20#6197)=20Tempo:=2006=20horas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@43185 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioLinhasHorario.java | 286 ++++++++---------- 1 file changed, 123 insertions(+), 163 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java index 45ea94271..b7fc3465b 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java @@ -11,8 +11,7 @@ import java.util.Map; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; -import org.zkoss.util.resource.Labels; -import org.zkoss.zhtml.Messagebox; +import org.apache.log4j.Logger; import com.rjconsultores.ventaboletos.entidad.Corrida; import com.rjconsultores.ventaboletos.entidad.Empresa; @@ -25,11 +24,11 @@ import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; public class RelatorioLinhasHorario extends Relatorio { + private static Logger log = Logger.getLogger(RelatorioLinhasHorario.class); private List lsDadosRelatorio; public RelatorioLinhasHorario(Map parametros, Connection conexao) throws Exception { super(parametros, conexao); - this.setCustomDataSource(new DataSource(this) { @Override @@ -79,8 +78,6 @@ public class RelatorioLinhasHorario extends Relatorio { Integer tipoServico = (Integer) parametros.get("TIPOSERVICIO_ID"); String sql = getSql(lsNumLinha, lsNumServico, empresa, tipoServico, grupoRuta); - System.out.println(sql); - NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); ResultSet rset = null; @@ -287,7 +284,7 @@ public class RelatorioLinhasHorario extends Relatorio { } catch (NullPointerException nex) { equivalente = BigDecimal.ZERO; } catch (Exception ex) { - ex.printStackTrace(); + log.error("", ex); } horarioBean.setEquivalente(equivalente); @@ -303,7 +300,7 @@ public class RelatorioLinhasHorario extends Relatorio { } catch (NullPointerException nex) { mpa = BigDecimal.ZERO; } catch (Exception ex) { - ex.printStackTrace(); + log.error("", ex); } horarioBean.setMpa(mpa); return horarioBean; @@ -330,7 +327,7 @@ public class RelatorioLinhasHorario extends Relatorio { } catch (NullPointerException nex) { eq = BigDecimal.ZERO; } catch (Exception ex) { - ex.printStackTrace(); + log.error("", ex); } horarioBean.setEq(eq); return horarioBean; @@ -365,7 +362,7 @@ public class RelatorioLinhasHorario extends Relatorio { } catch (NullPointerException nex) { iap = BigDecimal.ZERO; } catch (Exception ex) { - ex.printStackTrace(); + log.error("", ex); } horarioBean.setIap(iap); return horarioBean; @@ -381,7 +378,7 @@ public class RelatorioLinhasHorario extends Relatorio { } catch (NullPointerException nex) { iap = BigDecimal.ZERO; } catch (Exception ex) { - ex.printStackTrace(); + log.error("", ex); } return iap; } @@ -391,136 +388,115 @@ public class RelatorioLinhasHorario extends Relatorio { } private String getSql(ArrayList lsNumLinha, ArrayList lsNumServico, Empresa empresa, Integer tipoServico, GrupoRuta grupoRuta) { + StringBuffer sql = new StringBuffer(); - - sql.append(" SELECT R.RUTA_ID, "); - sql.append(" NVL(GR.DESCGRUPO, 'Não Definido') AS GRUPO_RUTA, "); - sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') AS HORA, "); - sql.append(" C.CORRIDA_ID AS SERVICO, "); - sql.append(" R.INDSENTIDOIDA AS SENTIDO, "); - sql.append(" DA.CANTASIENTOS AS LOT, "); - sql.append(" NVL(CS.CVECLASE, '') AS CLA, "); - sql.append(" NVL(TF.PRECIOORIGINAL, 0) AS TARIFA, "); - sql.append(" ORIGEM.CVEPARADA AS ORIGEM, "); - sql.append(" DESTINO.CVEPARADA AS DESTINO, "); - sql.append(" EXTENSAO, "); - sql.append(" SUM(CJ.EQUIVALENTE * EXTENSAO) AS EXTENSAO_TRECHO, "); - sql.append(" SUM(EE.IMPINGRESO) AS BAGAGENS, "); - sql.append(" SUM(CJ.IMPORTESEGURO) AS SEGURO, "); - sql.append(" SUM(CJ.IMPORTETAXAEMBARQUE) AS TX_EMBARQUE, "); - sql.append(" SUM(CJ.IMPORTEPEDAGIO) AS PEDAGIO, "); - sql.append(" SUM(CJ.PRECIOPAGADO) AS PASSAGENS, "); - sql.append(" ORD, "); - sql.append(" EXTRA, "); - sql.append(" CASE WHEN CO.ESTADO_ID <> CD.ESTADO_ID THEN 'INTERESTADUAL' "); - sql.append(" ELSE 'INTERMUNICIPAL' END TIPO_LINHA, "); - sql.append(" ABSOL "); - sql.append(" FROM "); - sql.append(" (SELECT RS.RUTA_ID, "); - sql.append(" SUM(NVL(T.CANTKMREAL, 0)) AS EXTENSAO "); + sql.append("SELECT "); + sql.append("RUTA_ID, GRUPO_RUTA, HORA, SERVICO, SENTIDO , LOT, CLA, TARIFA, ORIGEM, DESTINO, "); + sql.append("EXTENSAO, SUM(EQUIVALENTE * EXTENSAO) AS EXTENSAO_TRECHO, "); + sql.append("BAGAGENS, SUM(SEGURO) AS SEGURO, SUM(TX_EMBARQUE) AS TX_EMBARQUE, SUM(PEDAGIO) AS PEDAGIO, SUM(PASSAGENS) AS PASSAGENS, "); + sql.append("ORD, EXTRA, TIPO_LINHA, ABSOL "); + sql.append("FROM "); + sql.append("(SELECT "); + sql.append(" R.RUTA_ID, "); + sql.append(" NVL(GR.DESCGRUPO, 'Não Definido') AS GRUPO_RUTA, "); + sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') AS HORA, "); + sql.append(" C.CORRIDA_ID AS SERVICO, "); + sql.append(" R.INDSENTIDOIDA AS SENTIDO, "); + sql.append(" DA.CANTASIENTOS AS LOT, "); + sql.append(" NVL(CS.CVECLASE, '') AS CLA, "); + sql.append(" NVL(TF.PRECIOORIGINAL, 0) AS TARIFA, "); + sql.append(" ORIGEM.CVEPARADA AS ORIGEM, "); + sql.append(" DESTINO.CVEPARADA AS DESTINO, "); + sql.append(" EXTENSAO, "); + sql.append(" CJ.EQUIVALENTE AS EQUIVALENTE, "); + sql.append(" SUM(EE.IMPINGRESO) AS BAGAGENS, "); + sql.append(" CJ.IMPORTESEGURO AS SEGURO, "); + sql.append(" CJ.IMPORTETAXAEMBARQUE AS TX_EMBARQUE, "); + sql.append(" CJ.IMPORTEPEDAGIO AS PEDAGIO, "); + sql.append(" CJ.PRECIOPAGADO AS PASSAGENS, "); + sql.append(" ORD, "); + sql.append(" EXTRA, "); + sql.append(" CASE WHEN CO.ESTADO_ID <> CD.ESTADO_ID THEN 'INTERESTADUAL' ELSE 'INTERMUNICIPAL' END TIPO_LINHA, "); + sql.append(" ABSOL "); + sql.append("FROM "); + sql.append(" (SELECT RS.RUTA_ID, SUM(NVL(T.CANTKMREAL, 0)) AS EXTENSAO "); sql.append(" FROM RUTA_SECUENCIA RS "); - sql.append(" INNER JOIN TRAMO T ON ( RS.TRAMO_ID = T.TRAMO_ID ) "); - sql.append(" WHERE RS.ACTIVO = 1 AND T.ACTIVO = 1 "); - sql.append(" GROUP BY RS.RUTA_ID) TB1, "); - sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, "); - sql.append(" COUNT(CASE WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); - sql.append(" AND C.TIPOSERVICIO_ID = 1 THEN 1 ELSE NULL END) AS ORD "); - sql.append(" FROM CORRIDA C "); - sql.append(" WHERE C.ACTIVO <> 0 "); - sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB2, "); - sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, "); - sql.append(" COUNT(CASE WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); - sql.append(" AND C.TIPOSERVICIO_ID = 2 THEN 1 ELSE NULL END) AS EXTRA "); - sql.append(" FROM CORRIDA C "); - sql.append(" WHERE C.ACTIVO <> 0 "); - sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB3, "); - sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, "); - sql.append(" COUNT(CASE WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); - sql.append(" THEN 1 ELSE NULL END) AS ABSOL "); - sql.append(" FROM CORRIDA C "); - sql.append(" LEFT JOIN BOLETO B "); - sql.append(" ON ( B.CORRIDA_ID = C.CORRIDA_ID AND B.FECCORRIDA = C.FECCORRIDA ) "); - sql.append(" WHERE C.ACTIVO <> 0 AND B.ACTIVO = 1 "); - sql.append(" AND B.MOTIVOCANCELACION_ID IS NULL "); - sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB4, "); - sql.append(" CORRIDA C "); - sql.append(" LEFT JOIN "); - sql.append(" (SELECT CO.FECCORRIDA, "); - sql.append(" CO.CORRIDA_ID, "); - sql.append(" CO.ROLOPERATIVO_ID, "); - sql.append(" CO.RUTA_ID, "); - sql.append(" BO.PRECIOBASE, "); - sql.append(" ROUND((BO.NUMKMVIAJE * COUNT(1) / (SELECT SUM(TR.CANTKMREAL) "); - sql.append(" FROM RUTA_SECUENCIA RS, TRAMO TR "); - sql.append(" WHERE RS.RUTA_ID = CO.RUTA_ID "); - sql.append(" AND RS.TRAMO_ID = TR.TRAMO_ID)), 2) EQUIVALENTE, "); - sql.append(" SUM(NVL(BO.IMPORTESEGURO, 0)) AS IMPORTESEGURO, "); - sql.append(" SUM(NVL(BO.IMPORTETAXAEMBARQUE, 0)) AS IMPORTETAXAEMBARQUE, "); - sql.append(" SUM(NVL(BO.IMPORTEPEDAGIO, 0)) AS IMPORTEPEDAGIO, "); - sql.append(" SUM(NVL(BO.PRECIOPAGADO, 0)) AS PRECIOPAGADO "); - sql.append(" FROM CORRIDA CO, BOLETO BO "); - sql.append(" WHERE CO.CORRIDA_ID = BO.CORRIDA_ID "); - sql.append(" AND CO.FECCORRIDA = BO.FECCORRIDA "); - sql.append(" AND BO.ACTIVO = 1 "); - sql.append(" AND BO.INDSTATUSBOLETO != 'S' "); - sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR BO.MOTIVOCANCELACION_ID = 0) "); - sql.append(" GROUP BY CO.FECCORRIDA, "); - sql.append(" CO.CORRIDA_ID, "); - sql.append(" CO.ROLOPERATIVO_ID, "); - sql.append(" CO.RUTA_ID, "); - sql.append(" BO.PRECIOBASE, "); - sql.append(" BO.NUMKMVIAJE) CJ "); - sql.append(" ON ( CJ.CORRIDA_ID = C.CORRIDA_ID "); - sql.append(" AND CJ.FECCORRIDA = C.FECCORRIDA "); - sql.append(" AND CJ.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID ) "); - sql.append(" LEFT JOIN PARADA ORIGEM "); - sql.append(" ON ( C.ORIGEN_ID = ORIGEM.PARADA_ID ) "); - sql.append(" LEFT JOIN PARADA DESTINO "); - sql.append(" ON ( C.DESTINO_ID = DESTINO.PARADA_ID ) "); - sql.append(" LEFT OUTER JOIN CIUDAD CO "); - sql.append(" ON ( CO.CIUDAD_ID = ORIGEM.CIUDAD_ID ) "); - sql.append(" LEFT OUTER JOIN CIUDAD CD "); - sql.append(" ON ( CO.CIUDAD_ID = DESTINO.CIUDAD_ID ) "); - sql.append(" LEFT JOIN RUTA R "); - sql.append(" ON ( C.RUTA_ID = R.RUTA_ID ) "); - sql.append(" LEFT OUTER JOIN GRUPO_RUTA GR "); - sql.append(" ON ( R.GRUPORUTA_ID = GR.GRUPORUTA_ID ) "); - sql.append(" LEFT JOIN ROL_OPERATIVO RO "); - sql.append(" ON ( C.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID ) "); - sql.append(" LEFT OUTER JOIN DIAGRAMA_AUTOBUS DA "); - sql.append(" ON ( DA.DIAGRAMAAUTOBUS_ID = RO.DIAGRAMAAUTOBUS_ID ) "); - sql.append(" LEFT JOIN CLASE_SERVICIO CS "); - sql.append(" ON ( CS.CLASESERVICIO_ID = C.CLASESERVICIO_ID ) "); - sql.append(" LEFT JOIN EVENTO_EXTRA EE "); - sql.append(" ON ( EE.CORRIDA_ID = C.CORRIDA_ID "); - sql.append(" AND EE.FECCORRIDA = C.FECCORRIDA "); - sql.append(" AND EE.TIPOEVENTOEXTRA_ID = 1 ) "); - sql.append(" LEFT JOIN TARIFA TF "); - sql.append(" ON ( TF.CLASESERVICIO_ID = C.CLASESERVICIO_ID "); - sql.append(" AND TF.DESTINO_ID = C.DESTINO_ID "); - sql.append(" AND TF.ORIGEN_ID = C.ORIGEN_ID "); - sql.append(" AND TF.MARCA_ID = C.MARCA_ID "); - sql.append(" AND TF.RUTA_ID = C.RUTA_ID ) "); - sql.append(" LEFT OUTER JOIN VIGENCIA_TARIFA VTF "); - sql.append(" ON ( TF.VIGENCIATARIFA_ID = VTF.VIGENCIATARIFA_ID "); - sql.append(" AND C.FECCORRIDA BETWEEN VTF.FECINICIOVIGENCIA AND "); - sql.append(" VTF.FECFINVIGENCIA ) "); - sql.append(" WHERE CJ.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); - sql.append(" AND TB1.RUTA_ID = C.RUTA_ID "); - sql.append(" AND TB2.CORRIDA_ID = C.CORRIDA_ID "); - sql.append(" AND TB2.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID "); - sql.append(" AND TB3.CORRIDA_ID = C.CORRIDA_ID "); - sql.append(" AND TB3.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID "); - sql.append(" AND TB4.CORRIDA_ID = C.CORRIDA_ID "); - sql.append(" AND TB4.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID "); + sql.append(" INNER JOIN TRAMO T ON (RS.TRAMO_ID = T.TRAMO_ID ) "); + sql.append(" WHERE RS.ACTIVO = 1 "); + sql.append(" AND T.ACTIVO = 1 "); + sql.append(" GROUP BY RS.RUTA_ID) TB1, "); + sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, "); + sql.append(" COUNT(CASE WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL AND C.TIPOSERVICIO_ID = 1 THEN 1 ELSE NULL END) AS ORD "); + sql.append(" FROM CORRIDA C "); + sql.append(" WHERE C.ACTIVO <> 0 "); + sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB2, "); + sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, "); + sql.append(" COUNT(CASE WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL AND C.TIPOSERVICIO_ID = 2 THEN 1 ELSE NULL END) AS EXTRA "); + sql.append(" FROM CORRIDA C "); + sql.append(" WHERE C.ACTIVO <> 0 "); + sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB3, "); + sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, "); + sql.append(" COUNT( CASE WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL THEN 1 ELSE NULL END) AS ABSOL "); + sql.append(" FROM CORRIDA C "); + sql.append(" LEFT JOIN BOLETO B ON (B.CORRIDA_ID = C.CORRIDA_ID AND B.FECCORRIDA = C.FECCORRIDA ) "); + sql.append(" WHERE C.ACTIVO <> 0 AND B.ACTIVO = 1 "); + sql.append(" AND B.MOTIVOCANCELACION_ID IS NULL "); + sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB4, "); + sql.append(" CORRIDA C "); + sql.append("INNER JOIN "); + sql.append(" (SELECT CO.FECCORRIDA, "); + sql.append(" CO.CORRIDA_ID, "); + sql.append(" CO.ROLOPERATIVO_ID, "); + sql.append(" CO.RUTA_ID, "); + sql.append(" CO.EMPRESACORRIDA_ID, "); + sql.append(" ROUND((BO.NUMKMVIAJE * COUNT(1) / "); + sql.append(" (SELECT SUM(TR.CANTKMREAL) FROM RUTA_SECUENCIA RS, TRAMO TR WHERE RS.RUTA_ID = CO.RUTA_ID AND RS.TRAMO_ID = TR.TRAMO_ID)), 2) EQUIVALENTE, "); + sql.append(" SUM(NVL(BO.IMPORTESEGURO, 0)) AS IMPORTESEGURO, "); + sql.append(" SUM(NVL(BO.IMPORTETAXAEMBARQUE, 0)) AS IMPORTETAXAEMBARQUE, "); + sql.append(" SUM(NVL(BO.IMPORTEPEDAGIO, 0)) AS IMPORTEPEDAGIO, "); + sql.append(" SUM(NVL(BO.PRECIOPAGADO, 0)) AS PRECIOPAGADO "); + sql.append(" FROM CORRIDA CO "); + sql.append(" INNER JOIN BOLETO BO ON CO.CORRIDA_ID = BO.CORRIDA_ID AND CO.FECCORRIDA = BO.FECCORRIDA "); + sql.append(" WHERE BO.ACTIVO = 1 AND CO.ACTIVO <> 0 "); + sql.append(" AND BO.INDSTATUSBOLETO != 'S' AND BO.MOTIVOCANCELACION_ID IS NULL "); + sql.append(" AND BO.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); - if (empresa != null) { - sql.append(" AND C.EMPRESACORRIDA_ID IN ( " + empresa.getEmpresaId() + " ) "); + if (lsNumServico.size() > 0) { + for (Corrida corrida : lsNumServico) { + if (lsNumServico.indexOf(corrida) == 0) { + sql.append(" AND BO.CORRIDA_ID IN ( " + corrida.getId().getCorridaId()); + } else { + sql.append(" , " + corrida.getId().getCorridaId() + " "); + } + } + sql.append(" ) "); } - if (grupoRuta != null) { - sql.append(" AND R.GRUPORUTA_ID IN ( " + grupoRuta.getGrupoRutaId() + " ) "); - } + sql.append(" GROUP BY CO.FECCORRIDA, CO.CORRIDA_ID, CO.ROLOPERATIVO_ID, CO.RUTA_ID, CO.EMPRESACORRIDA_ID, BO.NUMKMVIAJE) CJ "); + sql.append(" ON (CJ.CORRIDA_ID = C.CORRIDA_ID AND CJ.FECCORRIDA = C.FECCORRIDA AND CJ.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID "); + sql.append(" AND CJ.RUTA_ID = C.RUTA_ID AND CJ.EMPRESACORRIDA_ID = C.EMPRESACORRIDA_ID) "); + sql.append("LEFT JOIN PARADA ORIGEM ON (C.ORIGEN_ID = ORIGEM.PARADA_ID ) "); + sql.append("LEFT JOIN PARADA DESTINO ON ( C.DESTINO_ID = DESTINO.PARADA_ID ) "); + sql.append("LEFT OUTER JOIN CIUDAD CO ON (CO.CIUDAD_ID = ORIGEM.CIUDAD_ID ) "); + sql.append("LEFT OUTER JOIN CIUDAD CD ON (CO.CIUDAD_ID = DESTINO.CIUDAD_ID ) "); + sql.append("LEFT JOIN RUTA R ON (C.RUTA_ID = R.RUTA_ID ) "); + sql.append("LEFT OUTER JOIN GRUPO_RUTA GR ON (R.GRUPORUTA_ID = GR.GRUPORUTA_ID ) "); + sql.append("LEFT JOIN ROL_OPERATIVO RO ON (C.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID ) "); + sql.append("LEFT OUTER JOIN DIAGRAMA_AUTOBUS DA ON (DA.DIAGRAMAAUTOBUS_ID = RO.DIAGRAMAAUTOBUS_ID ) "); + sql.append("LEFT JOIN CLASE_SERVICIO CS ON (CS.CLASESERVICIO_ID = C.CLASESERVICIO_ID ) "); + sql.append("LEFT JOIN EVENTO_EXTRA EE ON (EE.CORRIDA_ID = C.CORRIDA_ID AND EE.FECCORRIDA = C.FECCORRIDA AND EE.TIPOEVENTOEXTRA_ID = 1 ) "); + sql.append("LEFT JOIN TARIFA TF ON (TF.CLASESERVICIO_ID = C.CLASESERVICIO_ID AND TF.DESTINO_ID = C.DESTINO_ID AND TF.ORIGEN_ID = C.ORIGEN_ID AND TF.MARCA_ID = C.MARCA_ID AND TF.RUTA_ID = C.RUTA_ID ) "); + sql.append("LEFT OUTER JOIN VIGENCIA_TARIFA VTF ON (TF.VIGENCIATARIFA_ID = VTF.VIGENCIATARIFA_ID AND C.FECCORRIDA BETWEEN VTF.FECINICIOVIGENCIA AND VTF.FECFINVIGENCIA ) "); + sql.append("WHERE TB1.RUTA_ID = C.RUTA_ID "); + sql.append("AND TB2.CORRIDA_ID = C.CORRIDA_ID "); + sql.append("AND TB2.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID "); + sql.append("AND TB3.CORRIDA_ID = C.CORRIDA_ID "); + sql.append("AND TB3.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID "); + sql.append("AND TB4.CORRIDA_ID = C.CORRIDA_ID "); + sql.append("AND TB4.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID "); + sql.append("AND C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); + + sql.append(empresa == null ? "" : "AND C.EMPRESACORRIDA_ID = " + empresa.getEmpresaId()); if (lsNumServico.size() > 0) { for (Corrida corrida : lsNumServico) { @@ -533,6 +509,8 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" ) "); } + sql.append(grupoRuta == null ? "" : " AND R.GRUPORUTA_ID IN ( " + grupoRuta.getGrupoRutaId() + " ) "); + if (lsNumLinha.size() > 0) { for (Ruta ruta : lsNumLinha) { if (lsNumLinha.indexOf(ruta) == 0) { @@ -544,35 +522,17 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" ) "); } - if (tipoServico > 0) { - sql.append(" AND C.TIPOSERVICIO_ID = " + tipoServico + " "); - } + sql.append(tipoServico > 0 ? " AND C.TIPOSERVICIO_ID = " + tipoServico + " " : ""); - sql.append(" AND C.ACTIVO <> 0 "); - sql.append(" AND ORIGEM.ACTIVO = 1 "); - sql.append(" AND DESTINO.ACTIVO = 1 "); - sql.append(" AND R.ACTIVO = 1 "); - sql.append(" AND RO.ACTIVO = 1 "); - sql.append(" AND DA.ACTIVO = 1 "); - sql.append(" AND CS.ACTIVO = 1 "); - sql.append(" GROUP BY R.RUTA_ID, "); - sql.append(" NVL(GR.DESCGRUPO, 'Não Definido'), "); - sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI'), "); - sql.append(" C.CORRIDA_ID, "); - sql.append(" R.INDSENTIDOIDA, "); - sql.append(" TF.PRECIOORIGINAL, "); - sql.append(" DA.CANTASIENTOS, "); - sql.append(" CS.CVECLASE, "); - sql.append(" EXTENSAO, "); - sql.append(" ORD, "); - sql.append(" EXTRA, "); - sql.append(" ABSOL, "); - sql.append(" CO.ESTADO_ID, "); - sql.append(" CD.ESTADO_ID, "); - sql.append(" ORIGEM.CVEPARADA, "); - sql.append(" DESTINO.CVEPARADA "); - sql.append(" ORDER BY NVL(GR.DESCGRUPO, 'Não Definido'), "); - sql.append(" C.CORRIDA_ID "); + sql.append("AND C.ACTIVO <> 0 AND ORIGEM.ACTIVO = 1 AND DESTINO.ACTIVO = 1 "); + sql.append("AND R.ACTIVO = 1 AND RO.ACTIVO = 1 AND DA.ACTIVO = 1 AND CS.ACTIVO = 1 "); + sql.append("GROUP BY R.RUTA_ID, NVL(GR.DESCGRUPO, 'Não Definido'), TO_CHAR(C.FECHORSALIDA, 'HH24:MI'), C.CORRIDA_ID, R.INDSENTIDOIDA, "); + sql.append(" TF.PRECIOORIGINAL, DA.CANTASIENTOS, CS.CVECLASE, EXTENSAO, ORD, EXTRA, ABSOL, "); + sql.append(" CO.ESTADO_ID, CD.ESTADO_ID, ORIGEM.CVEPARADA, DESTINO.CVEPARADA, CJ.PRECIOPAGADO, "); + sql.append(" CJ.IMPORTESEGURO, CJ.IMPORTETAXAEMBARQUE, CJ.IMPORTEPEDAGIO, CJ.EQUIVALENTE "); + sql.append("ORDER BY NVL(GR.DESCGRUPO, 'Não Definido'), C.CORRIDA_ID ) "); + sql.append("GROUP BY RUTA_ID, GRUPO_RUTA, HORA, SERVICO, SENTIDO, LOT, CLA, TARIFA, ORIGEM, DESTINO, "); + sql.append("EXTENSAO, BAGAGENS, ORD, EXTRA, TIPO_LINHA, ABSOL"); return sql.toString();