Erro - Relatório Acompanhamento Equivalentes (fixes bug #6273)
Tempo: 06 horas git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@43962 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
b9bb2879c2
commit
b88d61b67d
|
@ -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<RelatorioAcompanhamentoEquivalenteBean> getListaValoresIndicadores(Integer corridaId, Integer rolOperativoId,
|
||||
Integer indicador, Integer assentos, String sql, Date dataInicial) throws SQLException {
|
||||
|
||||
List<RelatorioAcompanhamentoEquivalenteBean> lsEquivalente = new ArrayList<RelatorioAcompanhamentoEquivalenteBean>();
|
||||
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<RelatorioAcompanhamentoEquivalenteBean> 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("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");
|
||||
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 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 OR");
|
||||
sql.append(" BO.MOTIVOCANCELACION_ID = 0)),");
|
||||
sql.append(" 0) VALOR");
|
||||
sql.append(" FROM DUAL");
|
||||
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("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 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("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("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(" RIGHT JOIN CORRIDA CR ON ");
|
||||
sql.append(" (CR.CORRIDA_ID = BO.CORRIDA_ID AND CR.FECCORRIDA = BO.FECCORRIDA) ");
|
||||
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 BO.FECCORRIDA = :FECCORRIDA ");
|
||||
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 ");
|
||||
sql.append(" BO.MOTIVOCANCELACION_ID = 0)) RC ");
|
||||
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("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(" 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("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 ");
|
||||
sql.append(" BO.MOTIVOCANCELACION_ID = 0) ");
|
||||
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("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 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(" AND TO_CHAR(CT1.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') ");
|
||||
sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID ");
|
||||
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 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("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("SELECT ");
|
||||
sql.append(" COUNT(1) AS VALOR, ");
|
||||
sql.append(" CR.CORRIDA_ID, ");
|
||||
sql.append(" CR.FECCORRIDA ");
|
||||
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("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<RelatorioAcompanhamentoEquivalenteBean> getListaValoresIndicadores(Integer corridaId, Integer rolOperativoId,
|
||||
Integer indicador, Integer assentos, String sql, Date dataInicial) throws SQLException {
|
||||
// BigDecimal retorno = null;
|
||||
List<RelatorioAcompanhamentoEquivalenteBean> lsEquivalente = new ArrayList<RelatorioAcompanhamentoEquivalenteBean>();
|
||||
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();
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
||||
|
|
Loading…
Reference in New Issue