From b88d61b67d183ce28d68ee501b32ad2c15449955 Mon Sep 17 00:00:00 2001 From: julio Date: Wed, 13 May 2015 17:16:50 +0000 Subject: [PATCH] =?UTF-8?q?Erro=20-=20Relat=C3=B3rio=20Acompanhamento=20Eq?= =?UTF-8?q?uivalentes=20(fixes=20bug=20#6273)=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@43962 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../RelatorioAcompanhamentoEquivalentes.java | 416 +++++++++--------- ...elatorioAcompanhamentoEquivalenteBean.java | 1 - 2 files changed, 220 insertions(+), 197 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAcompanhamentoEquivalentes.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAcompanhamentoEquivalentes.java index 883249589..8d406a9c2 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAcompanhamentoEquivalentes.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAcompanhamentoEquivalentes.java @@ -110,7 +110,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { // Roda todos os dias do mes for (int dia = 1; dia <= cal.getActualMaximum(Calendar.DATE); dia++) { - BigDecimal valor = BigDecimal.ZERO; + BigDecimal valor = null; RelatorioAcompanhamentoEquivalenteBean equivalenteBean = buscarAcompanhamentoEquivalente(ls, cal.getTime()); if (equivalenteBean != null) { @@ -183,6 +183,46 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { }); } + protected List getListaValoresIndicadores(Integer corridaId, Integer rolOperativoId, + Integer indicador, Integer assentos, String sql, Date dataInicial) throws SQLException { + + List lsEquivalente = new ArrayList(); + try { + + Connection conexao = this.getConexao(); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + + stmt.setInt("CORRIDA_ID", corridaId); + stmt.setDate("DATA_MES", new java.sql.Date(dataInicial.getTime())); + stmt.setInt("ROLOPERATIVO_ID", rolOperativoId); + + if (IndicadorRelatorio.fromInt(indicador).equals(IndicadorRelatorio.IAP)) { + stmt.setInt("CAPACIDADE", assentos); + stmt.setInt("CEM", CEM); + stmt.setInt("MAX_DECIMAL", MAX_DECIMAL); + } + + ResultSet resultSet = stmt.executeQuery(); + + while (resultSet.next()) { + + RelatorioAcompanhamentoEquivalenteBean equivalenteBean = new RelatorioAcompanhamentoEquivalenteBean(); + equivalenteBean.setValor(resultSet.getBigDecimal("VALOR")); + equivalenteBean.setCorridaId(resultSet.getInt("CORRIDA_ID")); + equivalenteBean.setFeccorrida(resultSet.getDate("FECCORRIDA")); + lsEquivalente.add(equivalenteBean); + } + + resultSet.close(); + stmt.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + return lsEquivalente; + } + protected RelatorioAcompanhamentoEquivalenteBean buscarAcompanhamentoEquivalente(List ls, Date data) { for (RelatorioAcompanhamentoEquivalenteBean equivalente : ls) { @@ -193,82 +233,82 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { } protected String getSqlIndicadorEq() { + StringBuilder sql = new StringBuilder(); - sql.append(" SELECT ROUND((SELECT TF.PRECIO"); - sql.append(" FROM CORRIDA CR, TRAMO TR, TARIFA TF, VIGENCIA_TARIFA VT"); - sql.append(" WHERE CR.CORRIDA_ID = :CORRIDA_ID"); - sql.append(" AND CR.FECCORRIDA = :FECCORRIDA"); - sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID"); - sql.append(" AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID"); - sql.append(" AND TF.MARCA_ID = CR.MARCA_ID"); - sql.append(" AND TF.RUTA_ID = CR.RUTA_ID"); - sql.append(" AND TF.TRAMO_ID = TR.TRAMO_ID"); - sql.append(" AND TF.STATUSTARIFA = 'A'"); - sql.append(" AND TF.ACTIVO = 1"); - sql.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID"); - sql.append(" AND TR.DESTINO_ID = CR.DESTINO_ID"); - sql.append(" AND TF.VIGENCIATARIFA_ID = VT.VIGENCIATARIFA_ID"); - sql.append(" AND VT.ACTIVO = 1"); - sql.append(" AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND"); - sql.append(" VT.FECFINVIGENCIA) /"); - sql.append(" (SELECT SUM(BO.PRECIOPAGADO + BO.IMPORTEPEDAGIO +"); - sql.append(" BO.IMPORTESEGURO + BO.IMPORTETAXAEMBARQUE) RECEITA"); - sql.append(" FROM BOLETO BO"); - sql.append(" WHERE BO.CORRIDA_ID = :CORRIDA_ID"); - sql.append(" AND BO.FECCORRIDA = :FECCORRIDA"); - sql.append(" AND BO.ACTIVO = 1"); - sql.append(" AND BO.INDSTATUSOPERACION = 'F'"); - sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR"); - sql.append(" BO.MOTIVOCANCELACION_ID = 0)),"); - sql.append(" 0) VALOR"); - sql.append(" FROM DUAL"); + sql.append("SELECT "); + sql.append("ROUND((EQ.VALOR / TARIFA), 0) AS VALOR, "); + sql.append("EQ.CORRIDA_ID AS CORRIDA_ID, "); + sql.append("EQ.FECCORRIDA AS FECCORRIDA "); + sql.append("FROM "); + sql.append(" (SELECT "); + sql.append(" SUM(BO.PRECIOPAGADO + BO.IMPORTEPEDAGIO + BO.IMPORTESEGURO + BO.IMPORTETAXAEMBARQUE) AS VALOR, "); + sql.append(" BO.CORRIDA_ID, "); + sql.append(" BO.FECCORRIDA, "); + sql.append(" (SELECT "); + sql.append(" TF.PRECIO "); + sql.append(" FROM "); + sql.append(" CORRIDA CR, "); + sql.append(" TRAMO TR, "); + sql.append(" TARIFA TF, "); + sql.append(" VIGENCIA_TARIFA VT "); + sql.append(" WHERE "); + sql.append(" CR.CORRIDA_ID = :CORRIDA_ID "); + sql.append(" AND TO_CHAR(CR.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); + sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); + sql.append(" AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID "); + sql.append(" AND TF.MARCA_ID = CR.MARCA_ID "); + sql.append(" AND TF.RUTA_ID = CR.RUTA_ID "); + sql.append(" AND TF.TRAMO_ID = TR.TRAMO_ID "); + sql.append(" AND TF.STATUSTARIFA = 'A' "); + sql.append(" AND CR.ACTIVO <> 0 "); + sql.append(" AND TF.ACTIVO = 1 "); + sql.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID "); + sql.append(" AND TR.DESTINO_ID = CR.DESTINO_ID "); + sql.append(" AND TF.VIGENCIATARIFA_ID = VT.VIGENCIATARIFA_ID "); + sql.append(" AND VT.ACTIVO = 1 "); + sql.append(" AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA "); + sql.append(" GROUP BY TF.PRECIO) TARIFA "); + sql.append(" FROM "); + sql.append(" BOLETO BO "); + sql.append(" INNER JOIN CORRIDA CR ON "); + sql.append(" CR.CORRIDA_ID = BO.CORRIDA_ID AND CR.FECCORRIDA = BO.FECCORRIDA "); + sql.append(" WHERE "); + sql.append(" BO.CORRIDA_ID = :CORRIDA_ID "); + sql.append(" AND TO_CHAR(BO.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); + sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); + sql.append(" AND CR.ACTIVO <> 0 "); + sql.append(" AND BO.ACTIVO = 1 "); + sql.append(" AND BO.INDSTATUSOPERACION = 'F' "); + sql.append(" AND BO.MOTIVOCANCELACION_ID IS NULL "); + sql.append(" OR BO.MOTIVOCANCELACION_ID = 0 "); + sql.append(" GROUP BY "); + sql.append(" BO.CORRIDA_ID, "); + sql.append(" BO.FECCORRIDA) EQ "); + sql.append("ORDER BY EQ.FECCORRIDA"); return sql.toString(); } protected String getSqlIndicadorPax() { + StringBuilder sql = new StringBuilder(); - sql.append(" SELECT (TAB1.EQUIVALENTE * TAB1.EXTENSAO_LINHA) "); - sql.append(" VALOR"); - sql.append(" FROM (SELECT TAB.*,"); - sql.append(" (SELECT SUM((TR.CANTKMREAL / TAB.EXTENSAO_LINHA) *"); - sql.append(" COUNT(1))"); - sql.append(" FROM CORRIDA CR,"); - sql.append(" CORRIDA_TRAMO CT,"); - sql.append(" TRAMO TR,"); - sql.append(" BOLETO BO,"); - sql.append(" CORRIDA_TRAMO CTD,"); - sql.append(" CORRIDA_TRAMO CTO"); - sql.append(" WHERE CR.CORRIDA_ID = :CORRIDA_ID"); - sql.append(" AND CR.FECCORRIDA = :FECCORRIDA"); - sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID"); - sql.append(" AND CT.FECCORRIDA = CR.FECCORRIDA"); - sql.append(" AND CT.CORRIDA_ID = CR.CORRIDA_ID"); - sql.append(" AND TR.TRAMO_ID = CT.TRAMO_ID"); - sql.append(" AND BO.CORRIDA_ID = CT.CORRIDA_ID"); - sql.append(" AND BO.FECCORRIDA = CT.FECCORRIDA"); - sql.append(" AND BO.ORIGEN_ID = CTO.ORIGEN_ID"); - sql.append(" AND BO.DESTINO_ID = CTD.DESTINO_ID"); - sql.append(" AND CTD.CORRIDA_ID = CT.CORRIDA_ID"); - sql.append(" AND CTD.FECCORRIDA = CT.FECCORRIDA"); - sql.append(" AND CTO.CORRIDA_ID = CT.CORRIDA_ID"); - sql.append(" AND CTO.FECCORRIDA = CT.FECCORRIDA"); - sql.append(" AND CTO.ACTIVO = 1"); - sql.append(" AND CTD.ACTIVO = 1"); - sql.append(" AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND"); - sql.append(" CTD.NUMSECUENCIA"); - sql.append(" AND BO.ACTIVO = 1"); - sql.append(" AND BO.INDSTATUSOPERACION = 'F'"); - sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR"); - sql.append(" BO.MOTIVOCANCELACION_ID = 0)"); - sql.append(" GROUP BY CT.TRAMO_ID, TR.CANTKMREAL) EQUIVALENTE"); - sql.append(" FROM (SELECT (SELECT SUM(TR1.CANTKMREAL)"); - sql.append(" FROM CORRIDA_TRAMO CT1, TRAMO TR1"); - sql.append(" WHERE CT1.CORRIDA_ID = :CORRIDA_ID"); - sql.append(" AND CT1.FECCORRIDA = :FECCORRIDA"); - sql.append(" AND TR1.TRAMO_ID = CT1.TRAMO_ID) EXTENSAO_LINHA"); - sql.append(" "); - sql.append(" FROM DUAL) TAB) TAB1"); + sql.append("SELECT "); + sql.append(" SUM(BO.NUMKMVIAJE) AS VALOR, "); + sql.append(" CR.CORRIDA_ID AS CORRIDA_ID, "); + sql.append(" CR.FECCORRIDA AS FECCORRIDA "); + sql.append("FROM "); + sql.append(" CORRIDA CR "); + sql.append(" INNER JOIN BOLETO BO ON BO.CORRIDA_ID = CR.CORRIDA_ID AND BO.FECCORRIDA = CR.FECCORRIDA "); + sql.append("WHERE "); + sql.append(" CR.CORRIDA_ID = :CORRIDA_ID "); + sql.append("AND TO_CHAR(CR.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); + sql.append("AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); + sql.append("AND BO.ACTIVO = 1 "); + sql.append("AND BO.INDSTATUSOPERACION = 'F' "); + sql.append("AND BO.MOTIVOCANCELACION_ID IS NULL "); + sql.append("OR BO.MOTIVOCANCELACION_ID = 0 "); + sql.append("GROUP BY CR.CORRIDA_ID, CR.FECCORRIDA "); + sql.append("ORDER BY CR.FECCORRIDA"); return sql.toString(); @@ -297,7 +337,6 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { sql.append(" GROUP BY CT1.CORRIDA_ID, CT1.FECCORRIDA, CR.ROLOPERATIVO_ID) EXTENSAO_LINHA "); sql.append(" WHERE BO.CORRIDA_ID = :CORRIDA_ID "); sql.append(" AND TO_CHAR(BO.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); - // sql.append(" AND BO.FECCORRIDA between to_date('01052015 00:00','ddmmyyyy hh24:mi') and to_date('31052015 23:59','ddmmyyyy hh24:mi') "); sql.append(" and EXTENSAO_LINHA.CORRIDA_ID = BO.CORRIDA_ID "); sql.append(" AND EXTENSAO_LINHA.FECCORRIDA = BO.FECCORRIDA "); sql.append(" AND EXTENSAO_LINHA.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID "); @@ -319,27 +358,37 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { protected String getSqlIndicadorReceitaKm() { StringBuilder sql = new StringBuilder(); - sql.append(" SELECT (RECEITA / (SELECT SUM(TR1.CANTKMREAL) "); - sql.append(" FROM CORRIDA_TRAMO CT1 "); - sql.append(" RIGHT JOIN CORRIDA CR ON "); - sql.append(" (CR.CORRIDA_ID = CT1.CORRIDA_ID AND CR.FECCORRIDA = CT1.FECCORRIDA), "); - sql.append(" TRAMO TR1 "); - sql.append(" WHERE CT1.CORRIDA_ID = :CORRIDA_ID "); - sql.append(" AND CT1.FECCORRIDA = :FECCORRIDA "); - sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); - sql.append(" AND TR1.TRAMO_ID = CT1.TRAMO_ID)) VALOR "); - sql.append(" FROM (SELECT SUM(BO.PRECIOPAGADO + BO.IMPORTEPEDAGIO + BO.IMPORTESEGURO + "); - sql.append(" BO.IMPORTETAXAEMBARQUE) RECEITA "); - sql.append(" FROM BOLETO BO "); - sql.append(" RIGHT JOIN CORRIDA CR ON "); - sql.append(" (CR.CORRIDA_ID = BO.CORRIDA_ID AND CR.FECCORRIDA = BO.FECCORRIDA) "); - sql.append(" WHERE BO.CORRIDA_ID = :CORRIDA_ID "); - sql.append(" AND BO.FECCORRIDA = :FECCORRIDA "); - sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); - sql.append(" AND BO.ACTIVO = 1 "); - sql.append(" AND BO.INDSTATUSOPERACION = 'F' "); - sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR "); - sql.append(" BO.MOTIVOCANCELACION_ID = 0)) RC "); + sql.append("SELECT (SUB_REC.RECEITA/SUB_REC.KM) AS VALOR, "); + sql.append("SUB_REC.CORRIDA_ID AS CORRIDA_ID, "); + sql.append("SUB_REC.FECCORRIDA AS FECCORRIDA "); + sql.append("FROM "); + sql.append(" (SELECT "); + sql.append(" SUM(BO.PRECIOPAGADO + BO.IMPORTEPEDAGIO + BO.IMPORTESEGURO + BO.IMPORTETAXAEMBARQUE) AS RECEITA, "); + sql.append(" SUB_KM.KM, "); + sql.append(" CR.CORRIDA_ID, "); + sql.append(" CR.FECCORRIDA "); + sql.append(" FROM BOLETO BO "); + sql.append(" INNER JOIN CORRIDA CR ON CR.CORRIDA_ID = BO.CORRIDA_ID AND CR.FECCORRIDA = BO.FECCORRIDA "); + sql.append(" INNER JOIN (SELECT "); + sql.append(" SUM(TR1.CANTKMREAL) KM, "); + sql.append(" CR.CORRIDA_ID, "); + sql.append(" CR.FECCORRIDA "); + sql.append(" FROM CORRIDA_TRAMO CT1 "); + sql.append(" LEFT JOIN CORRIDA CR ON CR.CORRIDA_ID = CT1.CORRIDA_ID AND CR.FECCORRIDA = CT1.FECCORRIDA "); + sql.append(" INNER JOIN TRAMO TR1 ON TR1.TRAMO_ID = CT1.TRAMO_ID "); + sql.append(" WHERE CT1.CORRIDA_ID = :CORRIDA_ID "); + sql.append(" AND TO_CHAR(CT1.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); + sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); + sql.append(" GROUP BY CR.CORRIDA_ID, CR.FECCORRIDA )SUB_KM ON SUB_KM.CORRIDA_ID = CR.CORRIDA_ID AND SUB_KM.FECCORRIDA = CR.FECCORRIDA "); + sql.append(" WHERE BO.CORRIDA_ID = :CORRIDA_ID "); + sql.append(" AND TO_CHAR(BO.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); + sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); + sql.append(" AND BO.ACTIVO = 1 "); + sql.append(" AND BO.INDSTATUSOPERACION = 'F' "); + sql.append(" AND BO.MOTIVOCANCELACION_ID IS NULL OR BO.MOTIVOCANCELACION_ID = 0 "); + sql.append(" GROUP BY CR.CORRIDA_ID, CR.FECCORRIDA, SUB_KM.KM "); + sql.append(" ) SUB_REC "); + sql.append("ORDER BY SUB_REC.FECCORRIDA "); return sql.toString(); } @@ -347,58 +396,77 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { protected String getSqlIndicadorReceitaViagem() { StringBuilder sql = new StringBuilder(); - sql.append("SELECT SUM(BO.PRECIOPAGADO + BO.IMPORTEPEDAGIO + BO.IMPORTESEGURO + "); - sql.append(" BO.IMPORTETAXAEMBARQUE) VALOR "); - sql.append(" FROM BOLETO BO "); - sql.append(" RIGHT JOIN CORRIDA CR ON "); - sql.append(" (CR.CORRIDA_ID = BO.CORRIDA_ID AND CR.FECCORRIDA = BO.FECCORRIDA) "); - sql.append(" WHERE BO.CORRIDA_ID = :CORRIDA_ID "); - sql.append(" AND BO.FECCORRIDA = :FECCORRIDA "); - sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); - sql.append(" AND BO.ACTIVO = 1 "); - sql.append(" AND BO.INDSTATUSOPERACION = 'F' "); - sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR "); - sql.append(" BO.MOTIVOCANCELACION_ID = 0) "); + sql.append("SELECT "); + sql.append(" SUM(BO.PRECIOPAGADO + BO.IMPORTEPEDAGIO + BO.IMPORTESEGURO + BO.IMPORTETAXAEMBARQUE) AS VALOR, "); + sql.append(" BO.CORRIDA_ID AS CORRIDA_ID, "); + sql.append(" BO.FECCORRIDA AS FECCORRIDA "); + sql.append("FROM BOLETO BO "); + sql.append("INNER JOIN CORRIDA CR ON CR.CORRIDA_ID = BO.CORRIDA_ID AND CR.FECCORRIDA = BO.FECCORRIDA "); + sql.append("WHERE "); + sql.append(" BO.CORRIDA_ID = :CORRIDA_ID "); + sql.append("AND TO_CHAR(BO.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); + sql.append("AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); + sql.append("AND BO.ACTIVO = 1 "); + sql.append("AND BO.INDSTATUSOPERACION = 'F' "); + sql.append("AND BO.MOTIVOCANCELACION_ID IS NULL OR BO.MOTIVOCANCELACION_ID = 0 "); + sql.append("GROUP BY BO.CORRIDA_ID, BO.FECCORRIDA "); + sql.append("ORDER BY BO.FECCORRIDA"); return sql.toString(); } protected String getSqlIndicadorEquivalentes() { + /* O calculo do MPE não leva em consideração a quantidade de viagens conforme formula, uma vez que o detalhemtno do relatório já é por viagem */ StringBuilder sql = new StringBuilder(); - sql.append(" SELECT SUM((TR.CANTKMREAL/EL.EXTENSAO_LINHA ) * COUNT(1)) VALOR "); - sql.append(" FROM CORRIDA CR, "); - sql.append(" CORRIDA_TRAMO CT, "); - sql.append(" TRAMO TR, "); - sql.append(" BOLETO BO, "); - sql.append(" CORRIDA_TRAMO CTD, "); - sql.append(" CORRIDA_TRAMO CTO, "); - sql.append(" (SELECT SUM(TR1.CANTKMREAL) EXTENSAO_LINHA "); - sql.append(" FROM CORRIDA_TRAMO CT1, TRAMO TR1 "); - sql.append(" WHERE CT1.CORRIDA_ID = :CORRIDA_ID "); - sql.append(" AND CT1.FECCORRIDA = :FECCORRIDA "); - sql.append(" AND TR1.TRAMO_ID = CT1.TRAMO_ID) EL "); - sql.append(" WHERE CR.CORRIDA_ID = :CORRIDA_ID "); - sql.append(" AND CR.FECCORRIDA = :FECCORRIDA "); + sql.append("SELECT "); + sql.append(" SUM(BO.NUMKMVIAJE/EL.EXTENSAO_LINHA) AS VALOR, "); + sql.append(" EL.CORRIDA_ID AS CORRIDA_ID, "); + sql.append(" EL.FECCORRIDA AS FECCORRIDA "); + sql.append("FROM "); + sql.append(" CORRIDA CR "); + sql.append("INNER JOIN "); + sql.append(" BOLETO BO "); + sql.append("ON "); + sql.append(" BO.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append("AND BO.FECCORRIDA = CR.FECCORRIDA "); + sql.append("INNER JOIN "); + sql.append(" ( "); + sql.append(" SELECT "); + sql.append(" SUM(TR1.CANTKMREAL) EXTENSAO_LINHA, "); + sql.append(" CT1.CORRIDA_ID, "); + sql.append(" CT1.FECCORRIDA "); + sql.append(" FROM "); + sql.append(" CORRIDA_TRAMO CT1 "); + sql.append(" INNER JOIN "); + sql.append(" TRAMO TR1 "); + sql.append(" ON "); + sql.append(" TR1.TRAMO_ID = CT1.TRAMO_ID "); + sql.append(" INNER JOIN "); + sql.append(" CORRIDA CR "); + sql.append(" ON "); + sql.append(" CR.FECCORRIDA = CT1.FECCORRIDA "); + sql.append(" AND CR.CORRIDA_ID = CT1.CORRIDA_ID "); + sql.append(" WHERE CT1.CORRIDA_ID = :CORRIDA_ID "); + sql.append(" AND TO_CHAR(CT1.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); - sql.append(" AND CT.FECCORRIDA = CR.FECCORRIDA "); - sql.append(" AND CT.CORRIDA_ID = CR.CORRIDA_ID "); - sql.append(" AND TR.TRAMO_ID = CT.TRAMO_ID "); - sql.append(" AND BO.CORRIDA_ID = CT.CORRIDA_ID "); - sql.append(" AND BO.FECCORRIDA = CT.FECCORRIDA "); - sql.append(" AND BO.ORIGEN_ID = CTO.ORIGEN_ID "); - sql.append(" AND BO.DESTINO_ID = CTD.DESTINO_ID "); - sql.append(" AND CTD.CORRIDA_ID = CT.CORRIDA_ID "); - sql.append(" AND CTD.FECCORRIDA = CT.FECCORRIDA "); - sql.append(" AND CTO.CORRIDA_ID = CT.CORRIDA_ID "); - sql.append(" AND CTO.FECCORRIDA = CT.FECCORRIDA "); - sql.append(" AND CTO.ACTIVO = 1 "); - sql.append(" AND CTD.ACTIVO = 1 "); - sql.append(" AND CT.NUMSECUENCIA BETWEEN CTO.NUMSECUENCIA AND CTD.NUMSECUENCIA "); - sql.append(" AND BO.ACTIVO = 1 "); - sql.append(" AND BO.INDSTATUSOPERACION = 'F' "); - sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR BO.MOTIVOCANCELACION_ID = 0) "); - sql.append(" GROUP BY CT.TRAMO_ID, TR.CANTKMREAL, EL.EXTENSAO_LINHA "); + sql.append(" GROUP BY "); + sql.append(" CT1.CORRIDA_ID, "); + sql.append(" CT1.FECCORRIDA, CR.ROLOPERATIVO_ID) EL "); + sql.append("ON (EL.CORRIDA_ID = CR.CORRIDA_ID AND EL.FECCORRIDA = CR.FECCORRIDA) "); + sql.append(" WHERE CR.CORRIDA_ID = :CORRIDA_ID "); + sql.append(" AND TO_CHAR(CR.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); + sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); + sql.append("AND BO.ACTIVO = 1 "); + sql.append("AND BO.INDSTATUSOPERACION = 'F' "); + sql.append("AND BO.MOTIVOCANCELACION_ID IS NULL "); + sql.append("OR BO.MOTIVOCANCELACION_ID = 0 "); + sql.append("GROUP BY "); + sql.append(" EL.EXTENSAO_LINHA, "); + sql.append(" EL.CORRIDA_ID, "); + sql.append(" EL.FECCORRIDA "); + sql.append("ORDER BY "); + sql.append(" EL.FECCORRIDA"); return sql.toString(); @@ -407,67 +475,26 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { protected String getSqlIndicadorAbsoluto() { StringBuilder sql = new StringBuilder(); - - sql.append(" SELECT SUM(1) AS VALOR"); - sql.append(" FROM BOLETO BO "); - sql.append(" RIGHT JOIN CORRIDA CR ON "); - sql.append(" (CR.CORRIDA_ID = BO.CORRIDA_ID AND CR.FECCORRIDA = BO.FECCORRIDA) "); - sql.append(" WHERE BO.INDSTATUSOPERACION = 'F' "); - sql.append(" AND BO.ACTIVO = 1 "); - sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR BO.MOTIVOCANCELACION_ID = 0) "); - sql.append(" AND BO.CORRIDA_ID = :CORRIDA_ID "); - sql.append(" AND BO.FECCORRIDA = :FECCORRIDA "); - sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); + sql.append("SELECT "); + sql.append(" COUNT(1) AS VALOR, "); + sql.append(" CR.CORRIDA_ID, "); + sql.append(" CR.FECCORRIDA "); + sql.append("FROM BOLETO BO "); + sql.append("INNER JOIN CORRIDA CR ON CR.CORRIDA_ID = BO.CORRIDA_ID AND CR.FECCORRIDA = BO.FECCORRIDA "); + sql.append("WHERE "); + sql.append(" BO.CORRIDA_ID = :CORRIDA_ID "); + sql.append("AND TO_CHAR(BO.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); + sql.append("AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); + sql.append("AND BO.ACTIVO = 1 "); + sql.append("AND BO.INDSTATUSOPERACION = 'F' "); + sql.append("AND BO.MOTIVOCANCELACION_ID IS NULL OR BO.MOTIVOCANCELACION_ID = 0 "); + sql.append("GROUP BY CR.CORRIDA_ID, CR.FECCORRIDA "); + sql.append("ORDER BY CR.FECCORRIDA"); return sql.toString(); } - protected List getListaValoresIndicadores(Integer corridaId, Integer rolOperativoId, - Integer indicador, Integer assentos, String sql, Date dataInicial) throws SQLException { - // BigDecimal retorno = null; - List lsEquivalente = new ArrayList(); - try { - - Connection conexao = this.getConexao(); - - NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); - - stmt.setInt("CORRIDA_ID", corridaId); - // stmt.setDate("FECCORRIDA", new java.sql.Date(data.getTime())); - stmt.setDate("DATA_MES", new java.sql.Date(dataInicial.getTime())); - - if (IndicadorRelatorio.fromInt(indicador).equals(IndicadorRelatorio.IAP)) { - stmt.setInt("CAPACIDADE", assentos); - stmt.setInt("CEM", CEM); - stmt.setInt("MAX_DECIMAL", MAX_DECIMAL); - stmt.setInt("ROLOPERATIVO_ID", rolOperativoId); - } else { - stmt.setInt("ROLOPERATIVO_ID", rolOperativoId); - } - - ResultSet resultSet = stmt.executeQuery(); - - while (resultSet.next()) { - - RelatorioAcompanhamentoEquivalenteBean equivalenteBean = new RelatorioAcompanhamentoEquivalenteBean(); - equivalenteBean.setValor(resultSet.getBigDecimal("VALOR")); - equivalenteBean.setCorridaId(resultSet.getInt("CORRIDA_ID")); - equivalenteBean.setFeccorrida(resultSet.getDate("FECCORRIDA")); - lsEquivalente.add(equivalenteBean); - // retorno = resultSet.getBigDecimal("VALOR"); - - } - - resultSet.close(); - stmt.close(); - } catch (Exception e) { - e.printStackTrace(); - } - - return lsEquivalente; - } - /* * (non-Javadoc) * @@ -529,11 +556,8 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio { sql.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID "); sql.append(" AND TR.DESTINO_ID = CR.DESTINO_ID "); sql.append(" AND CR.TIPOSERVICIO_ID = NVL(:TIPOSERVICIO_ID, CR.TIPOSERVICIO_ID) "); - - // sql.append(" AND CR.FECCORRIDA BETWEEN TO_DATE('01052015 00:00','DDMMYYYY HH24:MI') AND TO_DATE('05052015 23:59','DDMMYYYY HH24:MI') "); - sql.append(" AND TO_CHAR(CR.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); - sql.append(" ORDER BY INTERESTADUAL, GRUPO_LINHA, SIGLA"); + sql.append(" ORDER BY INTERESTADUAL, GRUPO_LINHA, SIGLA, CR.CORRIDA_ID, TO_CHAR(CR.FECHORSALIDAORIGINAL, 'HH24:MI') "); return sql.toString(); } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioAcompanhamentoEquivalenteBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioAcompanhamentoEquivalenteBean.java index ada1a7920..029d5d030 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioAcompanhamentoEquivalenteBean.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioAcompanhamentoEquivalenteBean.java @@ -2,7 +2,6 @@ package com.rjconsultores.ventaboletos.relatorios.utilitarios; import java.math.BigDecimal; import java.util.Date; -import java.util.List; public class RelatorioAcompanhamentoEquivalenteBean {