From 954dda12cb9530222daed60e521242d8cc7e4838 Mon Sep 17 00:00:00 2001 From: bruno Date: Mon, 1 Jul 2013 22:08:52 +0000 Subject: [PATCH] =?UTF-8?q?-=20Novos=20filtros=20-=20Corre=C3=A7=C3=B5es?= =?UTF-8?q?=20casos=200004074=20e=200004226?= 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@28429 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../RelatorioAproveitamento_pt_BR.properties | 4 + .../parametros/RendimentoParamsImpl.java | 374 ++++++++++-------- .../templates/RelatorioAproveitamento.jasper | Bin 47983 -> 53561 bytes .../templates/RelatorioAproveitamento.jrxml | 148 +++++-- .../RelatorioAproveitamentoController.java | 1 - 5 files changed, 331 insertions(+), 196 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioAproveitamento_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioAproveitamento_pt_BR.properties index 813be549a..0041bdf63 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioAproveitamento_pt_BR.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioAproveitamento_pt_BR.properties @@ -14,3 +14,7 @@ sumario.ocupacao=Ocupa sumario.ocupacaoComArrecadacao=Ocupação com Arrecadação: sumario.ocupacaoSemArrecadacao=Ocupação sem Arrecadação sumario.totalNominal=Total Nominal: + +legenda.ocupacaoArrecadacao=Ocupação Passageiro +legenda.ocupacaoOperacional=Ocupação Operacional +legenda.poltronaExclusiva=Poltrona Exclusiva diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/parametros/RendimentoParamsImpl.java b/src/java/com/rjconsultores/ventaboletos/relatorios/parametros/RendimentoParamsImpl.java index ce9b3f682..d951c4695 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/parametros/RendimentoParamsImpl.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/parametros/RendimentoParamsImpl.java @@ -56,171 +56,215 @@ public class RendimentoParamsImpl implements IParametros { StringBuilder sql = new StringBuilder(); - sql.append("SELECT round(NVL(TAB.TOTAL_ARRECADADO,0),2) TOTAL_ARRECADADO, "); - sql.append(" round(NVL(TAB.TOTAL_ARRECADADO / TAB.KM_NOMINAL,0),2) ARRECADADO_KM, "); - sql.append(" round(NVL(TAB.TOTAL_NOMINAL,0),2) TOTAL_NOMINAL, "); - sql.append(" round(TAB.TOTAL_NOMINAL / TAB.KM_NOMINAL,2) NOMINAL_KM,"); - sql.append(" (TAB.TOTAL_OCUPADOS/TAB.TOTAL_ACENTOS) OCUPACAO, "); - sql.append(" ((TAB.TOTAL_OCUPADOS-TAB.TOTAL_OCUPADOS_GRATUIDADE)/TAB.TOTAL_ACENTOS) OCUPACAO_ARRECADACAO, "); - sql.append(" (TAB.TOTAL_OCUPADOS_GRATUIDADE/TAB.TOTAL_ACENTOS) OCUPACAO_S_ARRECADACAO "); - sql.append(" "); - sql.append(" FROM ( "); - sql.append("SELECT (SELECT SUM(BO.PRECIOBASE) "); - sql.append(" FROM BOLETO BO "); - sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID "); - sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA "); - sql.append(" AND BO.ACTIVO = 1 "); - sql.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL OR "); - sql.append(" BO.MOTIVOCANCELACION_ID = 0)) TOTAL_ARRECADADO, "); - sql.append(" "); - sql.append(" (SELECT SUM(TR.CANTKMREAL) "); - sql.append(" FROM CORRIDA_TRAMO CT, "); - sql.append(" TRAMO TR, "); - sql.append(" ROL_OPERATIVO RO, "); - sql.append(" DIAGRAMA_AUTOBUS DA "); - sql.append(" WHERE CT.CORRIDA_ID = CR.CORRIDA_ID "); - sql.append(" AND CT.FECCORRIDA = CR.FECCORRIDA "); - sql.append(" AND RO.ROLOPERATIVO_ID = CR.ROLOPERATIVO_ID "); - sql.append(" AND DA.DIAGRAMAAUTOBUS_ID = RO.DIAGRAMAAUTOBUS_ID "); - sql.append(" AND TR.TRAMO_ID = CT.TRAMO_ID "); - sql.append(" AND CT.ACTIVO = 1) KM_NOMINAL, "); - sql.append(" "); - sql.append(" (SELECT SUM((SELECT TR.CANTKMREAL "); - sql.append(" FROM BOLETO BO, CORRIDA_TRAMO CTD, CORRIDA_TRAMO CTO "); - sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID "); - sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA "); - sql.append(" AND BO.NUMASIENTO = DD.ASIENTO "); - sql.append(" AND BO.ORIGEN_ID = CTO.ORIGEN_ID "); - sql.append(" AND BO.DESTINO_ID = CTD.DESTINO_ID "); - sql.append(" AND CTD.CORRIDA_ID = CR.CORRIDA_ID "); - sql.append(" AND CTD.FECCORRIDA = CR.FECCORRIDA "); - sql.append(" AND CTO.CORRIDA_ID = CR.CORRIDA_ID "); - sql.append(" AND CTO.FECCORRIDA = CR.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.MOTIVOCANCELACION_ID IS NULL OR "); - sql.append(" BO.MOTIVOCANCELACION_ID = 0))) "); - sql.append(" FROM CORRIDA_TRAMO CT, "); - sql.append(" TRAMO TR, "); - sql.append(" ROL_OPERATIVO RO, "); - sql.append(" DET_DIAGRAMA_AUTOBUS DD "); - sql.append(" WHERE "); - sql.append(" CR.FECCORRIDA = CT.FECCORRIDA "); - sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID "); - sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID "); - sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); - sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); - sql.append(" AND DD.VENDIBLE = 1 "); - sql.append(" AND CT.ACTIVO = 1) KM_OCUPADA, "); - - sql.append(" (SELECT SUM(TF.PRECIO) "); - sql.append(" FROM TRAMO TR, "); - sql.append(" ROL_OPERATIVO RO, "); - sql.append(" DET_DIAGRAMA_AUTOBUS DD, "); - sql.append(" TARIFA TF, "); - sql.append(" VIGENCIA_TARIFA VT "); - sql.append(" WHERE RO.ROLOPERATIVO_ID = CR.ROLOPERATIVO_ID "); - sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); - sql.append(" AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID "); - sql.append(" AND DD.VENDIBLE = 1 "); - sql.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID "); - sql.append(" AND TR.DESTINO_ID = CR.DESTINO_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 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) TOTAL_NOMINAL,"); - - sql.append(" "); - sql.append(" (SELECT COUNT(1) "); - sql.append(" FROM CORRIDA_TRAMO CT, "); - sql.append(" TRAMO TR, "); - sql.append(" ROL_OPERATIVO RO, "); - sql.append(" DET_DIAGRAMA_AUTOBUS DD "); - sql.append(" WHERE "); - sql.append(" "); - sql.append(" CR.FECCORRIDA = CT.FECCORRIDA "); - sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID "); - sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID "); - sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); - sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); - sql.append(" AND DD.VENDIBLE = 1 "); - sql.append(" AND CT.ACTIVO = 1) TOTAL_ACENTOS, "); - sql.append(" "); - sql.append(" (SELECT COUNT( "); - sql.append(" (SELECT 1 "); - sql.append(" FROM BOLETO BO, CORRIDA_TRAMO CTD, CORRIDA_TRAMO CTO "); - sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID "); - sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA "); - sql.append(" AND BO.NUMASIENTO = DD.ASIENTO "); - sql.append(" AND BO.ORIGEN_ID = CTO.ORIGEN_ID "); - sql.append(" AND BO.DESTINO_ID = CTD.DESTINO_ID "); - sql.append(" AND CTD.CORRIDA_ID = CR.CORRIDA_ID "); - sql.append(" AND CTD.FECCORRIDA = CR.FECCORRIDA "); - sql.append(" AND CTO.CORRIDA_ID = CR.CORRIDA_ID "); - sql.append(" AND CTO.FECCORRIDA = CR.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.MOTIVOCANCELACION_ID IS NULL OR "); - sql.append(" BO.MOTIVOCANCELACION_ID = 0))) "); - sql.append(" FROM "); - sql.append(" CORRIDA_TRAMO CT, "); - sql.append(" TRAMO TR, "); - sql.append(" ROL_OPERATIVO RO, "); - sql.append(" DET_DIAGRAMA_AUTOBUS DD "); - sql.append(" WHERE "); - sql.append(" CR.FECCORRIDA = CT.FECCORRIDA "); - sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID "); - sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID "); - sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); - sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); - sql.append(" AND DD.VENDIBLE = 1 "); - sql.append(" AND CT.ACTIVO = 1) TOTAL_OCUPADOS, "); - sql.append(" (SELECT COUNT( "); - sql.append(" (SELECT 1 "); - sql.append(" FROM BOLETO BO, CORRIDA_TRAMO CTD, CORRIDA_TRAMO CTO "); - sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID "); - sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA "); - sql.append(" AND BO.NUMASIENTO = DD.ASIENTO "); - sql.append(" AND BO.ORIGEN_ID = CTO.ORIGEN_ID "); - sql.append(" AND BO.DESTINO_ID = CTD.DESTINO_ID "); - sql.append(" AND CTD.CORRIDA_ID = CR.CORRIDA_ID "); - sql.append(" AND CTD.FECCORRIDA = CR.FECCORRIDA "); - sql.append(" AND CTO.CORRIDA_ID = CR.CORRIDA_ID "); - sql.append(" AND CTO.FECCORRIDA = CR.FECCORRIDA "); - sql.append(" AND BO.PRECIOBASE = 0 "); - 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.MOTIVOCANCELACION_ID IS NULL OR "); - sql.append(" BO.MOTIVOCANCELACION_ID = 0))) "); - sql.append(" FROM "); - sql.append(" CORRIDA_TRAMO CT, "); - sql.append(" TRAMO TR, "); - sql.append(" ROL_OPERATIVO RO, "); - sql.append(" DET_DIAGRAMA_AUTOBUS DD "); - sql.append(" WHERE "); - sql.append(" CR.FECCORRIDA = CT.FECCORRIDA "); - sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID "); - sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID "); - sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); - sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); - sql.append(" AND DD.VENDIBLE = 1 "); - sql.append(" AND CT.ACTIVO = 1) TOTAL_OCUPADOS_GRATUIDADE "); - sql.append(" FROM CORRIDA CR "); - sql.append(" WHERE CR.CORRIDA_ID = ? "); - sql.append(" AND CR.FECCORRIDA = ? "); - sql.append(" ) TAB"); + sql.append(" SELECT round(NVL(TAB.TOTAL_ARRECADADO, 0), 2) TOTAL_ARRECADADO, "); + sql.append(" round(NVL(TAB.TOTAL_ARRECADADO / TAB.KM_NOMINAL, 0), 2) ARRECADADO_KM, "); + sql.append(" round(NVL(TAB.TOTAL_NOMINAL, 0), 2) TOTAL_NOMINAL, "); + sql.append(" round(TAB.TOTAL_NOMINAL / TAB.KM_NOMINAL, 2) NOMINAL_KM, "); + sql.append(" "); + sql.append(" ((TAB.TOTAL_OCUPADOS + TAB.TOTAL_OCUPADOS_OPERACAO) / "); + sql.append(" TAB.TOTAL_ACENTOS) OCUPACAO, "); + sql.append(" ((TAB.TOTAL_OCUPADOS - TAB.TOTAL_OCUPADOS_GRATUIDADE) / "); + sql.append(" TAB.TOTAL_ACENTOS) OCUPACAO_ARRECADACAO, "); + sql.append(" ((TAB.TOTAL_OCUPADOS_GRATUIDADE + TAB.TOTAL_OCUPADOS_OPERACAO) / "); + sql.append(" TAB.TOTAL_ACENTOS) OCUPACAO_S_ARRECADACAO "); + sql.append(" "); + sql.append(" FROM (SELECT (SELECT SUM(BO.PRECIOPAGADO) "); + sql.append(" FROM BOLETO BO "); + sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND BO.FECCORRIDA = CR.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)) TOTAL_ARRECADADO, "); + sql.append(" "); + sql.append(" (SELECT SUM(TR.CANTKMREAL) "); + sql.append(" FROM CORRIDA_TRAMO CT, "); + sql.append(" TRAMO TR, "); + sql.append(" ROL_OPERATIVO RO, "); + sql.append(" DIAGRAMA_AUTOBUS DA "); + sql.append(" WHERE CT.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND CT.FECCORRIDA = CR.FECCORRIDA "); + sql.append(" AND RO.ROLOPERATIVO_ID = CR.ROLOPERATIVO_ID "); + sql.append(" AND DA.DIAGRAMAAUTOBUS_ID = RO.DIAGRAMAAUTOBUS_ID "); + sql.append(" AND TR.TRAMO_ID = CT.TRAMO_ID "); + sql.append(" AND TR.ACTIVO = 1 "); + sql.append(" AND CT.ACTIVO = 1) KM_NOMINAL, "); + sql.append(" "); + sql.append(" (SELECT SUM((SELECT TR.CANTKMREAL "); + sql.append(" FROM BOLETO BO, "); + sql.append(" CORRIDA_TRAMO CTD, "); + sql.append(" CORRIDA_TRAMO CTO "); + sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA "); + sql.append(" AND BO.NUMASIENTO = DD.ASIENTO "); + sql.append(" AND BO.ORIGEN_ID = CTO.ORIGEN_ID "); + sql.append(" AND BO.DESTINO_ID = CTD.DESTINO_ID "); + sql.append(" AND CTD.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND CTD.FECCORRIDA = CR.FECCORRIDA "); + sql.append(" AND CTO.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND CTO.FECCORRIDA = CR.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(" FROM CORRIDA_TRAMO CT, "); + sql.append(" TRAMO TR, "); + sql.append(" ROL_OPERATIVO RO, "); + sql.append(" DET_DIAGRAMA_AUTOBUS DD "); + sql.append(" WHERE CR.FECCORRIDA = CT.FECCORRIDA "); + sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID "); + sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID "); + sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); + sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); + sql.append(" AND DD.VENDIBLE = 1 "); + sql.append(" AND CT.ACTIVO = 1) KM_OCUPADA, "); + sql.append(" "); + sql.append(" (SELECT SUM(TF.PRECIO) "); + sql.append(" FROM TRAMO TR, "); + sql.append(" ROL_OPERATIVO RO, "); + sql.append(" DET_DIAGRAMA_AUTOBUS DD, "); + sql.append(" TARIFA TF, "); + sql.append(" VIGENCIA_TARIFA VT "); + sql.append(" WHERE RO.ROLOPERATIVO_ID = CR.ROLOPERATIVO_ID "); + sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); + sql.append(" AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID "); + sql.append(" AND DD.VENDIBLE = 1 "); + sql.append(" AND DD.ACTIVO = 1 "); + sql.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID "); + sql.append(" AND TR.DESTINO_ID = CR.DESTINO_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 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) TOTAL_NOMINAL, "); + sql.append(" "); + sql.append(" (SELECT COUNT(1) "); + sql.append(" FROM CORRIDA_TRAMO CT, "); + sql.append(" TRAMO TR, "); + sql.append(" ROL_OPERATIVO RO, "); + sql.append(" DET_DIAGRAMA_AUTOBUS DD "); + sql.append(" WHERE "); + sql.append(" "); + sql.append(" CR.FECCORRIDA = CT.FECCORRIDA "); + sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID "); + sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID "); + sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); + sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); + sql.append(" AND DD.VENDIBLE = 1 "); + sql.append(" AND DD.ACTIVO = 1 "); + sql.append(" AND CT.ACTIVO = 1) TOTAL_ACENTOS, "); + sql.append(" "); + sql.append(" (SELECT COUNT((SELECT 1 "); + sql.append(" FROM BOLETO BO, "); + sql.append(" CORRIDA_TRAMO CTD, "); + sql.append(" CORRIDA_TRAMO CTO "); + sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA "); + sql.append(" AND BO.NUMASIENTO = DD.ASIENTO "); + sql.append(" AND BO.ORIGEN_ID = CTO.ORIGEN_ID "); + sql.append(" AND BO.DESTINO_ID = CTD.DESTINO_ID "); + sql.append(" AND CTD.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND CTD.FECCORRIDA = CR.FECCORRIDA "); + sql.append(" AND CTO.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND CTO.FECCORRIDA = CR.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(" FROM CORRIDA_TRAMO CT, "); + sql.append(" TRAMO TR, "); + sql.append(" ROL_OPERATIVO RO, "); + sql.append(" DET_DIAGRAMA_AUTOBUS DD "); + sql.append(" WHERE CR.FECCORRIDA = CT.FECCORRIDA "); + sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID "); + sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID "); + sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); + sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); + sql.append(" AND DD.VENDIBLE = 1 "); + sql.append(" AND DD.ACTIVO = 1 "); + sql.append(" AND CT.ACTIVO = 1) TOTAL_OCUPADOS, "); + sql.append(" (SELECT COUNT((SELECT 1 "); + sql.append(" FROM BOLETO BO, "); + sql.append(" CORRIDA_TRAMO CTD, "); + sql.append(" CORRIDA_TRAMO CTO "); + sql.append(" WHERE BO.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND BO.FECCORRIDA = CR.FECCORRIDA "); + sql.append(" AND BO.NUMASIENTO = DD.ASIENTO "); + sql.append(" AND BO.ORIGEN_ID = CTO.ORIGEN_ID "); + sql.append(" AND BO.DESTINO_ID = CTD.DESTINO_ID "); + sql.append(" AND CTD.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND CTD.FECCORRIDA = CR.FECCORRIDA "); + sql.append(" AND CTO.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND CTO.FECCORRIDA = CR.FECCORRIDA "); + sql.append(" AND BO.PRECIOBASE = 0 "); + 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(" FROM CORRIDA_TRAMO CT, "); + sql.append(" TRAMO TR, "); + sql.append(" ROL_OPERATIVO RO, "); + sql.append(" DET_DIAGRAMA_AUTOBUS DD "); + sql.append(" WHERE CR.FECCORRIDA = CT.FECCORRIDA "); + sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID "); + sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID "); + sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); + sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); + sql.append(" AND DD.VENDIBLE = 1 "); + sql.append(" AND DD.ACTIVO = 1 "); + sql.append(" AND CT.ACTIVO = 1) TOTAL_OCUPADOS_GRATUIDADE, "); + sql.append(" "); + sql.append(" (SELECT COUNT((SELECT 1 "); + sql.append(" FROM ASIENTO_EXCLUSIVO AE, "); + sql.append(" CORRIDA_TRAMO CTD, "); + sql.append(" CORRIDA_TRAMO CTO "); + sql.append(" WHERE AE.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND AE.FECCORRIDA = CR.FECCORRIDA "); + sql.append(" AND AE.NUMASIENTO = DD.ASIENTO "); + sql.append(" AND AE.PARADA_ID = CTO.ORIGEN_ID "); + sql.append(" AND NVL(AE.DESTINO_ID, CR.DESTINO_ID) = "); + sql.append(" CTD.DESTINO_ID "); + sql.append(" AND CTD.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND CTD.FECCORRIDA = CR.FECCORRIDA "); + sql.append(" AND CTO.CORRIDA_ID = CR.CORRIDA_ID "); + sql.append(" AND CTO.FECCORRIDA = CR.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 AE.ACTIVO = 1)) "); + sql.append(" FROM CORRIDA_TRAMO CT, "); + sql.append(" TRAMO TR, "); + sql.append(" ROL_OPERATIVO RO, "); + sql.append(" DET_DIAGRAMA_AUTOBUS DD "); + sql.append(" WHERE CR.FECCORRIDA = CT.FECCORRIDA "); + sql.append(" AND CR.CORRIDA_ID = CT.CORRIDA_ID "); + sql.append(" AND CT.TRAMO_ID = TR.TRAMO_ID "); + sql.append(" AND CR.ROLOPERATIVO_ID = RO.ROLOPERATIVO_ID "); + sql.append(" AND RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID "); + sql.append(" AND DD.VENDIBLE = 1 "); + sql.append(" AND DD.ACTIVO = 1 "); + sql.append(" AND CT.ACTIVO = 1) TOTAL_OCUPADOS_OPERACAO "); + sql.append(" FROM CORRIDA CR "); + sql.append(" WHERE CR.CORRIDA_ID = ?"); + sql.append(" AND CR.FECCORRIDA = ? ) TAB "); + return sql.toString(); } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamento.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamento.jasper index 249bc80f08975fef3278bb3e0d539976a9292c1a..cbf5b524bd55f7bb5e07005cdd751b6cf99ba494 100644 GIT binary patch literal 53561 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 BU-AF| diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamento.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamento.jrxml index 9e08805d1..d887d48f0 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamento.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamento.jrxml @@ -1,8 +1,8 @@ - - + + - +