Erro - Relatório Linhas por Horário (fixes bug #6197)

Tempo: 06 horas

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@43185 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2015-04-16 13:21:14 +00:00
parent c7be930ceb
commit adc1a941ca
1 changed files with 123 additions and 163 deletions

View File

@ -11,8 +11,7 @@ import java.util.Map;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import org.zkoss.util.resource.Labels; import org.apache.log4j.Logger;
import org.zkoss.zhtml.Messagebox;
import com.rjconsultores.ventaboletos.entidad.Corrida; import com.rjconsultores.ventaboletos.entidad.Corrida;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
@ -25,12 +24,12 @@ import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
public class RelatorioLinhasHorario extends Relatorio { public class RelatorioLinhasHorario extends Relatorio {
private static Logger log = Logger.getLogger(RelatorioLinhasHorario.class);
private List<RelatorioLinhasHorarioBean> lsDadosRelatorio; private List<RelatorioLinhasHorarioBean> lsDadosRelatorio;
public RelatorioLinhasHorario(Map<String, Object> parametros, Connection conexao) throws Exception { public RelatorioLinhasHorario(Map<String, Object> parametros, Connection conexao) throws Exception {
super(parametros, conexao); super(parametros, conexao);
this.setCustomDataSource(new DataSource(this) { this.setCustomDataSource(new DataSource(this) {
@Override @Override
public void initDados() throws Exception { public void initDados() throws Exception {
@ -79,8 +78,6 @@ public class RelatorioLinhasHorario extends Relatorio {
Integer tipoServico = (Integer) parametros.get("TIPOSERVICIO_ID"); Integer tipoServico = (Integer) parametros.get("TIPOSERVICIO_ID");
String sql = getSql(lsNumLinha, lsNumServico, empresa, tipoServico, grupoRuta); String sql = getSql(lsNumLinha, lsNumServico, empresa, tipoServico, grupoRuta);
System.out.println(sql);
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
ResultSet rset = null; ResultSet rset = null;
@ -287,7 +284,7 @@ public class RelatorioLinhasHorario extends Relatorio {
} catch (NullPointerException nex) { } catch (NullPointerException nex) {
equivalente = BigDecimal.ZERO; equivalente = BigDecimal.ZERO;
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); log.error("", ex);
} }
horarioBean.setEquivalente(equivalente); horarioBean.setEquivalente(equivalente);
@ -303,7 +300,7 @@ public class RelatorioLinhasHorario extends Relatorio {
} catch (NullPointerException nex) { } catch (NullPointerException nex) {
mpa = BigDecimal.ZERO; mpa = BigDecimal.ZERO;
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); log.error("", ex);
} }
horarioBean.setMpa(mpa); horarioBean.setMpa(mpa);
return horarioBean; return horarioBean;
@ -330,7 +327,7 @@ public class RelatorioLinhasHorario extends Relatorio {
} catch (NullPointerException nex) { } catch (NullPointerException nex) {
eq = BigDecimal.ZERO; eq = BigDecimal.ZERO;
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); log.error("", ex);
} }
horarioBean.setEq(eq); horarioBean.setEq(eq);
return horarioBean; return horarioBean;
@ -365,7 +362,7 @@ public class RelatorioLinhasHorario extends Relatorio {
} catch (NullPointerException nex) { } catch (NullPointerException nex) {
iap = BigDecimal.ZERO; iap = BigDecimal.ZERO;
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); log.error("", ex);
} }
horarioBean.setIap(iap); horarioBean.setIap(iap);
return horarioBean; return horarioBean;
@ -381,7 +378,7 @@ public class RelatorioLinhasHorario extends Relatorio {
} catch (NullPointerException nex) { } catch (NullPointerException nex) {
iap = BigDecimal.ZERO; iap = BigDecimal.ZERO;
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); log.error("", ex);
} }
return iap; return iap;
} }
@ -391,136 +388,115 @@ public class RelatorioLinhasHorario extends Relatorio {
} }
private String getSql(ArrayList<Ruta> lsNumLinha, ArrayList<Corrida> lsNumServico, Empresa empresa, Integer tipoServico, GrupoRuta grupoRuta) { private String getSql(ArrayList<Ruta> lsNumLinha, ArrayList<Corrida> lsNumServico, Empresa empresa, Integer tipoServico, GrupoRuta grupoRuta) {
StringBuffer sql = new StringBuffer(); StringBuffer sql = new StringBuffer();
sql.append("SELECT ");
sql.append(" SELECT R.RUTA_ID, "); sql.append("RUTA_ID, GRUPO_RUTA, HORA, SERVICO, SENTIDO , LOT, CLA, TARIFA, ORIGEM, DESTINO, ");
sql.append(" NVL(GR.DESCGRUPO, 'Não Definido') AS GRUPO_RUTA, "); sql.append("EXTENSAO, SUM(EQUIVALENTE * EXTENSAO) AS EXTENSAO_TRECHO, ");
sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') AS HORA, "); sql.append("BAGAGENS, SUM(SEGURO) AS SEGURO, SUM(TX_EMBARQUE) AS TX_EMBARQUE, SUM(PEDAGIO) AS PEDAGIO, SUM(PASSAGENS) AS PASSAGENS, ");
sql.append(" C.CORRIDA_ID AS SERVICO, "); sql.append("ORD, EXTRA, TIPO_LINHA, ABSOL ");
sql.append(" R.INDSENTIDOIDA AS SENTIDO, "); sql.append("FROM ");
sql.append(" DA.CANTASIENTOS AS LOT, "); sql.append("(SELECT ");
sql.append(" NVL(CS.CVECLASE, '') AS CLA, "); sql.append(" R.RUTA_ID, ");
sql.append(" NVL(TF.PRECIOORIGINAL, 0) AS TARIFA, "); sql.append(" NVL(GR.DESCGRUPO, 'Não Definido') AS GRUPO_RUTA, ");
sql.append(" ORIGEM.CVEPARADA AS ORIGEM, "); sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') AS HORA, ");
sql.append(" DESTINO.CVEPARADA AS DESTINO, "); sql.append(" C.CORRIDA_ID AS SERVICO, ");
sql.append(" EXTENSAO, "); sql.append(" R.INDSENTIDOIDA AS SENTIDO, ");
sql.append(" SUM(CJ.EQUIVALENTE * EXTENSAO) AS EXTENSAO_TRECHO, "); sql.append(" DA.CANTASIENTOS AS LOT, ");
sql.append(" SUM(EE.IMPINGRESO) AS BAGAGENS, "); sql.append(" NVL(CS.CVECLASE, '') AS CLA, ");
sql.append(" SUM(CJ.IMPORTESEGURO) AS SEGURO, "); sql.append(" NVL(TF.PRECIOORIGINAL, 0) AS TARIFA, ");
sql.append(" SUM(CJ.IMPORTETAXAEMBARQUE) AS TX_EMBARQUE, "); sql.append(" ORIGEM.CVEPARADA AS ORIGEM, ");
sql.append(" SUM(CJ.IMPORTEPEDAGIO) AS PEDAGIO, "); sql.append(" DESTINO.CVEPARADA AS DESTINO, ");
sql.append(" SUM(CJ.PRECIOPAGADO) AS PASSAGENS, "); sql.append(" EXTENSAO, ");
sql.append(" ORD, "); sql.append(" CJ.EQUIVALENTE AS EQUIVALENTE, ");
sql.append(" EXTRA, "); sql.append(" SUM(EE.IMPINGRESO) AS BAGAGENS, ");
sql.append(" CASE WHEN CO.ESTADO_ID <> CD.ESTADO_ID THEN 'INTERESTADUAL' "); sql.append(" CJ.IMPORTESEGURO AS SEGURO, ");
sql.append(" ELSE 'INTERMUNICIPAL' END TIPO_LINHA, "); sql.append(" CJ.IMPORTETAXAEMBARQUE AS TX_EMBARQUE, ");
sql.append(" ABSOL "); sql.append(" CJ.IMPORTEPEDAGIO AS PEDAGIO, ");
sql.append(" FROM "); sql.append(" CJ.PRECIOPAGADO AS PASSAGENS, ");
sql.append(" (SELECT RS.RUTA_ID, "); sql.append(" ORD, ");
sql.append(" SUM(NVL(T.CANTKMREAL, 0)) AS EXTENSAO "); 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(" FROM RUTA_SECUENCIA RS ");
sql.append(" INNER JOIN TRAMO T ON ( RS.TRAMO_ID = T.TRAMO_ID ) "); 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(" WHERE RS.ACTIVO = 1 ");
sql.append(" GROUP BY RS.RUTA_ID) TB1, "); sql.append(" AND T.ACTIVO = 1 ");
sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, "); sql.append(" GROUP BY RS.RUTA_ID) TB1, ");
sql.append(" COUNT(CASE WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, ");
sql.append(" AND C.TIPOSERVICIO_ID = 1 THEN 1 ELSE NULL END) AS ORD "); 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(" FROM CORRIDA C ");
sql.append(" WHERE C.ACTIVO <> 0 "); sql.append(" WHERE C.ACTIVO <> 0 ");
sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB2, "); sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB2, ");
sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, "); sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, ");
sql.append(" COUNT(CASE WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); 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(" AND C.TIPOSERVICIO_ID = 2 THEN 1 ELSE NULL END) AS EXTRA "); sql.append(" FROM CORRIDA C ");
sql.append(" FROM CORRIDA C "); sql.append(" WHERE C.ACTIVO <> 0 ");
sql.append(" WHERE C.ACTIVO <> 0 "); sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB3, ");
sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB3, "); sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, ");
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(" COUNT(CASE WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); sql.append(" FROM CORRIDA C ");
sql.append(" THEN 1 ELSE NULL END) AS ABSOL "); sql.append(" LEFT JOIN BOLETO B ON (B.CORRIDA_ID = C.CORRIDA_ID AND B.FECCORRIDA = C.FECCORRIDA ) ");
sql.append(" FROM CORRIDA C "); sql.append(" WHERE C.ACTIVO <> 0 AND B.ACTIVO = 1 ");
sql.append(" LEFT JOIN BOLETO B "); sql.append(" AND B.MOTIVOCANCELACION_ID IS NULL ");
sql.append(" ON ( B.CORRIDA_ID = C.CORRIDA_ID AND B.FECCORRIDA = C.FECCORRIDA ) "); sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB4, ");
sql.append(" WHERE C.ACTIVO <> 0 AND B.ACTIVO = 1 "); sql.append(" CORRIDA C ");
sql.append(" AND B.MOTIVOCANCELACION_ID IS NULL "); sql.append("INNER JOIN ");
sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB4, "); sql.append(" (SELECT CO.FECCORRIDA, ");
sql.append(" CORRIDA C "); sql.append(" CO.CORRIDA_ID, ");
sql.append(" LEFT JOIN "); sql.append(" CO.ROLOPERATIVO_ID, ");
sql.append(" (SELECT CO.FECCORRIDA, "); sql.append(" CO.RUTA_ID, ");
sql.append(" CO.CORRIDA_ID, "); sql.append(" CO.EMPRESACORRIDA_ID, ");
sql.append(" CO.ROLOPERATIVO_ID, "); sql.append(" ROUND((BO.NUMKMVIAJE * COUNT(1) / ");
sql.append(" CO.RUTA_ID, "); 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(" BO.PRECIOBASE, "); sql.append(" SUM(NVL(BO.IMPORTESEGURO, 0)) AS IMPORTESEGURO, ");
sql.append(" ROUND((BO.NUMKMVIAJE * COUNT(1) / (SELECT SUM(TR.CANTKMREAL) "); sql.append(" SUM(NVL(BO.IMPORTETAXAEMBARQUE, 0)) AS IMPORTETAXAEMBARQUE, ");
sql.append(" FROM RUTA_SECUENCIA RS, TRAMO TR "); sql.append(" SUM(NVL(BO.IMPORTEPEDAGIO, 0)) AS IMPORTEPEDAGIO, ");
sql.append(" WHERE RS.RUTA_ID = CO.RUTA_ID "); sql.append(" SUM(NVL(BO.PRECIOPAGADO, 0)) AS PRECIOPAGADO ");
sql.append(" AND RS.TRAMO_ID = TR.TRAMO_ID)), 2) EQUIVALENTE, "); sql.append(" FROM CORRIDA CO ");
sql.append(" SUM(NVL(BO.IMPORTESEGURO, 0)) AS IMPORTESEGURO, "); sql.append(" INNER JOIN BOLETO BO ON CO.CORRIDA_ID = BO.CORRIDA_ID AND CO.FECCORRIDA = BO.FECCORRIDA ");
sql.append(" SUM(NVL(BO.IMPORTETAXAEMBARQUE, 0)) AS IMPORTETAXAEMBARQUE, "); sql.append(" WHERE BO.ACTIVO = 1 AND CO.ACTIVO <> 0 ");
sql.append(" SUM(NVL(BO.IMPORTEPEDAGIO, 0)) AS IMPORTEPEDAGIO, "); sql.append(" AND BO.INDSTATUSBOLETO != 'S' AND BO.MOTIVOCANCELACION_ID IS NULL ");
sql.append(" SUM(NVL(BO.PRECIOPAGADO, 0)) AS PRECIOPAGADO "); sql.append(" AND BO.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL ");
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 ");
if (empresa != null) { if (lsNumServico.size() > 0) {
sql.append(" AND C.EMPRESACORRIDA_ID IN ( " + empresa.getEmpresaId() + " ) "); 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(" GROUP BY CO.FECCORRIDA, CO.CORRIDA_ID, CO.ROLOPERATIVO_ID, CO.RUTA_ID, CO.EMPRESACORRIDA_ID, BO.NUMKMVIAJE) CJ ");
sql.append(" AND R.GRUPORUTA_ID IN ( " + grupoRuta.getGrupoRutaId() + " ) "); 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) { if (lsNumServico.size() > 0) {
for (Corrida corrida : lsNumServico) { for (Corrida corrida : lsNumServico) {
@ -533,6 +509,8 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" ) "); sql.append(" ) ");
} }
sql.append(grupoRuta == null ? "" : " AND R.GRUPORUTA_ID IN ( " + grupoRuta.getGrupoRutaId() + " ) ");
if (lsNumLinha.size() > 0) { if (lsNumLinha.size() > 0) {
for (Ruta ruta : lsNumLinha) { for (Ruta ruta : lsNumLinha) {
if (lsNumLinha.indexOf(ruta) == 0) { if (lsNumLinha.indexOf(ruta) == 0) {
@ -544,35 +522,17 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" ) "); sql.append(" ) ");
} }
if (tipoServico > 0) { sql.append(tipoServico > 0 ? " AND C.TIPOSERVICIO_ID = " + tipoServico + " " : "");
sql.append(" AND C.TIPOSERVICIO_ID = " + tipoServico + " ");
}
sql.append(" AND C.ACTIVO <> 0 "); sql.append("AND C.ACTIVO <> 0 AND ORIGEM.ACTIVO = 1 AND DESTINO.ACTIVO = 1 ");
sql.append(" AND ORIGEM.ACTIVO = 1 "); sql.append("AND R.ACTIVO = 1 AND RO.ACTIVO = 1 AND DA.ACTIVO = 1 AND CS.ACTIVO = 1 ");
sql.append(" AND DESTINO.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(" AND R.ACTIVO = 1 "); sql.append(" TF.PRECIOORIGINAL, DA.CANTASIENTOS, CS.CVECLASE, EXTENSAO, ORD, EXTRA, ABSOL, ");
sql.append(" AND RO.ACTIVO = 1 "); sql.append(" CO.ESTADO_ID, CD.ESTADO_ID, ORIGEM.CVEPARADA, DESTINO.CVEPARADA, CJ.PRECIOPAGADO, ");
sql.append(" AND DA.ACTIVO = 1 "); sql.append(" CJ.IMPORTESEGURO, CJ.IMPORTETAXAEMBARQUE, CJ.IMPORTEPEDAGIO, CJ.EQUIVALENTE ");
sql.append(" AND CS.ACTIVO = 1 "); sql.append("ORDER BY NVL(GR.DESCGRUPO, 'Não Definido'), C.CORRIDA_ID ) ");
sql.append(" GROUP BY R.RUTA_ID, "); sql.append("GROUP BY RUTA_ID, GRUPO_RUTA, HORA, SERVICO, SENTIDO, LOT, CLA, TARIFA, ORIGEM, DESTINO, ");
sql.append(" NVL(GR.DESCGRUPO, 'Não Definido'), "); sql.append("EXTENSAO, BAGAGENS, ORD, EXTRA, TIPO_LINHA, ABSOL");
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 ");
return sql.toString(); return sql.toString();