julio 2015-10-13 19:16:34 +00:00
parent 8fffc87930
commit 4a761aea6f
1 changed files with 64 additions and 19 deletions

View File

@ -15,6 +15,8 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.commons.lang.StringUtils;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioAcompanhamentoEquivalenteBean; import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioAcompanhamentoEquivalenteBean;
@ -72,6 +74,8 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
Map<String, Object> parametros = this.relatorio.getParametros(); Map<String, Object> parametros = this.relatorio.getParametros();
String sql = getSql(); String sql = getSql();
System.out.println(sql);
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
if (parametros.get("EMPRESA_ID") != null) if (parametros.get("EMPRESA_ID") != null)
@ -89,6 +93,13 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
this.resultSet = stmt.executeQuery(); this.resultSet = stmt.executeQuery();
} }
private boolean verificaTipoServicoExtra(String tipoServico) {
if (StringUtils.equalsIgnoreCase(tipoServico, "Extra")) {
return true;
}
return false;
}
@Override @Override
public void initDados() throws Exception { public void initDados() throws Exception {
@ -98,9 +109,14 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
while (this.resultSet.next()) { while (this.resultSet.next()) {
Integer indicador = (Integer) this.relatorio.getParametros().get("INDICADOR");
Integer rolOperativoId = this.resultSet.getInt("ROLOPERATIVO_ID"); Integer rolOperativoId = this.resultSet.getInt("ROLOPERATIVO_ID");
Integer corridaId = this.resultSet.getInt("CORRIDA_ID"); Integer corridaId = this.resultSet.getInt("CORRIDA_ID");
Integer assentos = this.resultSet.getInt("ASSENTOS"); Integer assentos = this.resultSet.getInt("ASSENTOS");
Integer rutaId = this.resultSet.getInt("RUTA_ID");
String horario = this.resultSet.getString("HORARIO");
boolean isServicoExtra = verificaTipoServicoExtra(this.resultSet.getString("TIPO_SERVICO"));
Map<String, Object> row = new HashMap<String, Object>(); Map<String, Object> row = new HashMap<String, Object>();
BigDecimal totalMes = BigDecimal.ZERO; BigDecimal totalMes = BigDecimal.ZERO;
@ -110,7 +126,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
cal.setTime(dataInicial); cal.setTime(dataInicial);
cal.set(Calendar.DATE, 1); cal.set(Calendar.DATE, 1);
List<RelatorioAcompanhamentoEquivalenteBean> ls = getValorByIndicador(corridaId, rolOperativoId, (Integer) this.relatorio.getParametros().get("INDICADOR"), assentos, dataInicial); List<RelatorioAcompanhamentoEquivalenteBean> ls = getValorByIndicador(corridaId, rolOperativoId, indicador, assentos, dataInicial, rutaId, horario, isServicoExtra);
// Roda todos os dias do mes // Roda todos os dias do mes
for (int dia = 1; dia <= cal.getActualMaximum(Calendar.DATE); dia++) { for (int dia = 1; dia <= cal.getActualMaximum(Calendar.DATE); dia++) {
@ -153,42 +169,43 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
} }
protected List<RelatorioAcompanhamentoEquivalenteBean> getValorByIndicador(Integer corridaId, protected List<RelatorioAcompanhamentoEquivalenteBean> getValorByIndicador(Integer corridaId,
Integer rolOperativoId, Integer indicador, Integer assentos, Date dataInicial) throws SQLException { Integer rolOperativoId, Integer indicador, Integer assentos, Date dataInicial,
Integer rutaId, String horario, boolean isServicoExtra) throws SQLException {
String sql = null; String sql = null;
switch (IndicadorRelatorio.fromInt(indicador)) { switch (IndicadorRelatorio.fromInt(indicador)) {
case MPE: case MPE:
sql = getSqlIndicadorEquivalentes(); sql = getSqlIndicadorEquivalentes(isServicoExtra);
break; break;
case ABSOLUTO: case ABSOLUTO:
sql = getSqlIndicadorAbsoluto(); sql = getSqlIndicadorAbsoluto(isServicoExtra);
break; break;
case EQ: case EQ:
sql = getSqlIndicadorEq(); sql = getSqlIndicadorEq(isServicoExtra);
break; break;
case IAP: case IAP:
sql = getSqlIndicadorIap(); sql = getSqlIndicadorIap(isServicoExtra);
break; break;
case PAXKM: case PAXKM:
sql = getSqlIndicadorPax(); sql = getSqlIndicadorPax(isServicoExtra);
break; break;
case RECEITA_KM: case RECEITA_KM:
sql = getSqlIndicadorReceitaKm(); sql = getSqlIndicadorReceitaKm(isServicoExtra);
break; break;
case RECEITA_VIAGEM: case RECEITA_VIAGEM:
sql = getSqlIndicadorReceitaViagem(); sql = getSqlIndicadorReceitaViagem(isServicoExtra);
break; break;
} }
return getListaValoresIndicadores(corridaId, rolOperativoId, indicador, assentos, sql, dataInicial); return getListaValoresIndicadores(corridaId, rolOperativoId, indicador, assentos, sql, dataInicial, rutaId, horario);
} }
}); });
} }
protected List<RelatorioAcompanhamentoEquivalenteBean> getListaValoresIndicadores(Integer corridaId, Integer rolOperativoId, protected List<RelatorioAcompanhamentoEquivalenteBean> getListaValoresIndicadores(Integer corridaId, Integer rolOperativoId,
Integer indicador, Integer assentos, String sql, Date dataInicial) throws SQLException { Integer indicador, Integer assentos, String sql, Date dataInicial, Integer rutaId, String horario) throws SQLException {
List<RelatorioAcompanhamentoEquivalenteBean> lsEquivalente = new ArrayList<RelatorioAcompanhamentoEquivalenteBean>(); List<RelatorioAcompanhamentoEquivalenteBean> lsEquivalente = new ArrayList<RelatorioAcompanhamentoEquivalenteBean>();
try { try {
@ -200,6 +217,8 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
stmt.setInt("CORRIDA_ID", corridaId); stmt.setInt("CORRIDA_ID", corridaId);
stmt.setDate("DATA_MES", new java.sql.Date(dataInicial.getTime())); stmt.setDate("DATA_MES", new java.sql.Date(dataInicial.getTime()));
stmt.setInt("ROLOPERATIVO_ID", rolOperativoId); stmt.setInt("ROLOPERATIVO_ID", rolOperativoId);
stmt.setInt("RUTA_ID", rutaId);
stmt.setString("HORARIO", horario);
if (IndicadorRelatorio.fromInt(indicador).equals(IndicadorRelatorio.IAP)) { if (IndicadorRelatorio.fromInt(indicador).equals(IndicadorRelatorio.IAP)) {
stmt.setInt("CAPACIDADE", assentos); stmt.setInt("CAPACIDADE", assentos);
@ -236,7 +255,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
return null; return null;
} }
protected String getSqlIndicadorEq() { protected String getSqlIndicadorEq(boolean isServicoExtra) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT "); sql.append("SELECT ");
@ -258,6 +277,9 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
sql.append(" WHERE "); sql.append(" WHERE ");
sql.append(" CR.CORRIDA_ID = :CORRIDA_ID "); sql.append(" CR.CORRIDA_ID = :CORRIDA_ID ");
sql.append(" AND TO_CHAR(CR.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); sql.append(" AND TO_CHAR(CR.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') ");
sql.append(" AND TO_CHAR(CR.FECHORSALIDAORIGINAL, 'HH24:MI') = TO_CHAR(TO_DATE(:HORARIO, 'HH24:MI'), 'HH24:MI') ");
sql.append(isServicoExtra ? " AND CR.TIPOSERVICIO_ID = 2 " : " AND CR.TIPOSERVICIO_ID <> 2 ");
sql.append(" AND CR.RUTA_ID = :RUTA_ID ");
sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID ");
sql.append(" AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID "); sql.append(" AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID ");
sql.append(" AND TF.MARCA_ID = CR.MARCA_ID "); sql.append(" AND TF.MARCA_ID = CR.MARCA_ID ");
@ -293,7 +315,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
return sql.toString(); return sql.toString();
} }
protected String getSqlIndicadorPax() { protected String getSqlIndicadorPax(boolean isServicoExtra ) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT "); sql.append("SELECT ");
@ -306,6 +328,9 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
sql.append("WHERE "); sql.append("WHERE ");
sql.append(" CR.CORRIDA_ID = :CORRIDA_ID "); sql.append(" CR.CORRIDA_ID = :CORRIDA_ID ");
sql.append("AND TO_CHAR(CR.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); sql.append("AND TO_CHAR(CR.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') ");
sql.append("AND TO_CHAR(CR.FECHORSALIDAORIGINAL, 'HH24:MI') = TO_CHAR(TO_DATE(:HORARIO, 'HH24:MI'), 'HH24:MI') ");
sql.append(isServicoExtra ? "AND CR.TIPOSERVICIO_ID = 2 " : " AND CR.TIPOSERVICIO_ID <> 2 ");
sql.append("AND CR.RUTA_ID = :RUTA_ID ");
sql.append("AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); sql.append("AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID ");
sql.append("AND BO.ACTIVO = 1 "); sql.append("AND BO.ACTIVO = 1 ");
sql.append("AND BO.INDSTATUSOPERACION = 'F' "); sql.append("AND BO.INDSTATUSOPERACION = 'F' ");
@ -318,7 +343,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
} }
protected String getSqlIndicadorIap() { protected String getSqlIndicadorIap(boolean isServicoExtra) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT "); sql.append("SELECT ");
@ -352,6 +377,9 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
sql.append(" AND C.CORRIDA_ID = BO.CORRIDA_ID "); sql.append(" AND C.CORRIDA_ID = BO.CORRIDA_ID ");
sql.append(" AND C.FECCORRIDA = BO.FECCORRIDA "); sql.append(" AND C.FECCORRIDA = BO.FECCORRIDA ");
sql.append(" AND C.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); sql.append(" AND C.ROLOPERATIVO_ID = :ROLOPERATIVO_ID ");
sql.append(" AND TO_CHAR(C.FECHORSALIDAORIGINAL, 'HH24:MI') = TO_CHAR(TO_DATE(:HORARIO, 'HH24:MI'), 'HH24:MI') ");
sql.append(isServicoExtra ? " AND C.TIPOSERVICIO_ID = 2 " : " AND C.TIPOSERVICIO_ID <> 2 ");
sql.append(" AND C.RUTA_ID = :RUTA_ID ");
sql.append(" AND BO.ACTIVO = 1 "); sql.append(" AND BO.ACTIVO = 1 ");
sql.append(" AND C.ACTIVO = 1 "); sql.append(" AND C.ACTIVO = 1 ");
sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR BO.MOTIVOCANCELACION_ID = 0 ) "); sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR BO.MOTIVOCANCELACION_ID = 0 ) ");
@ -364,7 +392,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
} }
protected String getSqlIndicadorReceitaKm() { protected String getSqlIndicadorReceitaKm(boolean isServicoExtra) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT (SUB_REC.RECEITA/SUB_REC.KM) AS VALOR, "); sql.append("SELECT (SUB_REC.RECEITA/SUB_REC.KM) AS VALOR, ");
@ -378,7 +406,6 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
sql.append(" CR.FECCORRIDA "); sql.append(" CR.FECCORRIDA ");
sql.append(" FROM BOLETO BO "); 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 CORRIDA CR ON CR.CORRIDA_ID = BO.CORRIDA_ID AND CR.FECCORRIDA = BO.FECCORRIDA ");
sql.append(" INNER JOIN (SELECT SUM(TR1.CANTKMREAL) KM, CR.CORRIDA_ID, CR.FECCORRIDA "); sql.append(" INNER JOIN (SELECT SUM(TR1.CANTKMREAL) KM, CR.CORRIDA_ID, CR.FECCORRIDA ");
sql.append(" FROM CORRIDA CR "); sql.append(" FROM CORRIDA CR ");
sql.append(" INNER JOIN RUTA_COMBINACION RS ON RS.RUTA_ID = CR.RUTA_ID "); sql.append(" INNER JOIN RUTA_COMBINACION RS ON RS.RUTA_ID = CR.RUTA_ID ");
@ -387,11 +414,17 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
sql.append(" WHERE CR.ACTIVO = 1 AND RS.ACTIVO = 1 AND TR1.ACTIVO = 1 "); sql.append(" WHERE CR.ACTIVO = 1 AND RS.ACTIVO = 1 AND TR1.ACTIVO = 1 ");
sql.append(" AND CR.CORRIDA_ID = :CORRIDA_ID "); sql.append(" AND CR.CORRIDA_ID = :CORRIDA_ID ");
sql.append(" AND TO_CHAR(CR.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); sql.append(" AND TO_CHAR(CR.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') ");
sql.append(" AND TO_CHAR(CR.FECHORSALIDAORIGINAL, 'HH24:MI') = TO_CHAR(TO_DATE(:HORARIO, 'HH24:MI'), 'HH24:MI') ");
sql.append(isServicoExtra ? " AND CR.TIPOSERVICIO_ID = 2 " : " AND CR.TIPOSERVICIO_ID <> 2 ");
sql.append(" AND CR.RUTA_ID = :RUTA_ID ");
sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID ");
sql.append(" GROUP BY CR.CORRIDA_ID, CR.FECCORRIDA "); sql.append(" GROUP BY CR.CORRIDA_ID, CR.FECCORRIDA ");
sql.append(" )SUB_KM ON SUB_KM.CORRIDA_ID = CR.CORRIDA_ID AND SUB_KM.FECCORRIDA = CR.FECCORRIDA "); sql.append(" )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(" WHERE BO.CORRIDA_ID = :CORRIDA_ID ");
sql.append(" AND TO_CHAR(BO.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); sql.append(" AND TO_CHAR(BO.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') ");
sql.append(" AND TO_CHAR(CR.FECHORSALIDAORIGINAL, 'HH24:MI') = TO_CHAR(TO_DATE(:HORARIO, 'HH24:MI'), 'HH24:MI') ");
sql.append(isServicoExtra ? " AND CR.TIPOSERVICIO_ID = 2 " : " AND CR.TIPOSERVICIO_ID <> 2 ");
sql.append(" AND CR.RUTA_ID = :RUTA_ID ");
sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID ");
sql.append(" AND BO.ACTIVO = 1 "); sql.append(" AND BO.ACTIVO = 1 ");
sql.append(" AND BO.INDSTATUSOPERACION = 'F' "); sql.append(" AND BO.INDSTATUSOPERACION = 'F' ");
@ -404,7 +437,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
return sql.toString(); return sql.toString();
} }
protected String getSqlIndicadorReceitaViagem() { protected String getSqlIndicadorReceitaViagem(boolean isServicoExtra) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT "); sql.append("SELECT ");
@ -416,6 +449,9 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
sql.append("WHERE "); sql.append("WHERE ");
sql.append(" BO.CORRIDA_ID = :CORRIDA_ID "); sql.append(" BO.CORRIDA_ID = :CORRIDA_ID ");
sql.append("AND TO_CHAR(BO.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); sql.append("AND TO_CHAR(BO.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') ");
sql.append("AND TO_CHAR(CR.FECHORSALIDAORIGINAL, 'HH24:MI') = TO_CHAR(TO_DATE(:HORARIO, 'HH24:MI'), 'HH24:MI') ");
sql.append(isServicoExtra ? "AND CR.TIPOSERVICIO_ID = 2 " : " AND CR.TIPOSERVICIO_ID <> 2 ");
sql.append("AND CR.RUTA_ID = :RUTA_ID ");
sql.append("AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); sql.append("AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID ");
sql.append("AND BO.ACTIVO = 1 "); sql.append("AND BO.ACTIVO = 1 ");
sql.append("AND BO.INDSTATUSOPERACION = 'F' "); sql.append("AND BO.INDSTATUSOPERACION = 'F' ");
@ -426,7 +462,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
return sql.toString(); return sql.toString();
} }
protected String getSqlIndicadorEquivalentes() { protected String getSqlIndicadorEquivalentes(boolean isServicoExtra) {
/* 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 */ /* 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(); StringBuilder sql = new StringBuilder();
@ -461,6 +497,9 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
sql.append(" WHERE CT1.CORRIDA_ID = :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 TO_CHAR(CT1.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') ");
sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID ");
sql.append(" AND TO_CHAR(CR.FECHORSALIDAORIGINAL, 'HH24:MI') = TO_CHAR(TO_DATE(:HORARIO, 'HH24:MI'), 'HH24:MI') ");
sql.append(isServicoExtra ? "AND CR.TIPOSERVICIO_ID = 2 " : " AND CR.TIPOSERVICIO_ID <> 2 ");
sql.append(" AND CR.RUTA_ID = :RUTA_ID ");
sql.append(" GROUP BY "); sql.append(" GROUP BY ");
sql.append(" CT1.CORRIDA_ID, "); sql.append(" CT1.CORRIDA_ID, ");
sql.append(" CT1.FECCORRIDA, CR.ROLOPERATIVO_ID) EL "); sql.append(" CT1.FECCORRIDA, CR.ROLOPERATIVO_ID) EL ");
@ -468,6 +507,9 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
sql.append(" WHERE CR.CORRIDA_ID = :CORRIDA_ID "); sql.append(" WHERE CR.CORRIDA_ID = :CORRIDA_ID ");
sql.append(" AND TO_CHAR(CR.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); sql.append(" AND TO_CHAR(CR.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') ");
sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); sql.append(" AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID ");
sql.append(" AND TO_CHAR(CR.FECHORSALIDAORIGINAL, 'HH24:MI') = TO_CHAR(TO_DATE(:HORARIO, 'HH24:MI'), 'HH24:MI') ");
sql.append(isServicoExtra ? "AND CR.TIPOSERVICIO_ID = 2 " : " AND CR.TIPOSERVICIO_ID <> 2 ");
sql.append(" AND CR.RUTA_ID = :RUTA_ID ");
sql.append("AND BO.ACTIVO = 1 "); sql.append("AND BO.ACTIVO = 1 ");
sql.append("AND BO.INDSTATUSOPERACION = 'F' "); sql.append("AND BO.INDSTATUSOPERACION = 'F' ");
sql.append("AND BO.MOTIVOCANCELACION_ID IS NULL "); sql.append("AND BO.MOTIVOCANCELACION_ID IS NULL ");
@ -483,7 +525,7 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
} }
protected String getSqlIndicadorAbsoluto() { protected String getSqlIndicadorAbsoluto(boolean isServicoExtra) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT "); sql.append("SELECT ");
@ -495,6 +537,9 @@ public class RelatorioAcompanhamentoEquivalentes extends Relatorio {
sql.append("WHERE "); sql.append("WHERE ");
sql.append(" BO.CORRIDA_ID = :CORRIDA_ID "); sql.append(" BO.CORRIDA_ID = :CORRIDA_ID ");
sql.append("AND TO_CHAR(BO.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') "); sql.append("AND TO_CHAR(BO.FECCORRIDA, 'MMYYYY') = TO_CHAR(:DATA_MES, 'MMYYYY') ");
sql.append("AND TO_CHAR(CR.FECHORSALIDAORIGINAL, 'HH24:MI') = TO_CHAR(TO_DATE(:HORARIO, 'HH24:MI'), 'HH24:MI') ");
sql.append(isServicoExtra ? "AND CR.TIPOSERVICIO_ID = 2 " : " AND CR.TIPOSERVICIO_ID <> 2 ");
sql.append("AND CR.RUTA_ID = :RUTA_ID ");
sql.append("AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID "); sql.append("AND CR.ROLOPERATIVO_ID = :ROLOPERATIVO_ID ");
sql.append("AND BO.ACTIVO = 1 "); sql.append("AND BO.ACTIVO = 1 ");
sql.append("AND BO.INDSTATUSOPERACION = 'F' "); sql.append("AND BO.INDSTATUSOPERACION = 'F' ");