diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java index 6c3a0c443..7df139a61 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java @@ -282,19 +282,19 @@ public class RelatorioOrigemDestino extends Relatorio { sql.append(" RESULTADO_2.fechorsalida, "); sql.append(" RESULTADO_2.origem, "); sql.append(" RESULTADO_2.destino, "); - sql.append(" RESULTADO_2.km_tramo, "); + sql.append(" COALESCE(RESULTADO_2.km_tramo,0) AS km_tramo, "); sql.append(" RESULTADO_2.ruta_id, "); sql.append(" RESULTADO_2.descruta, "); sql.append(" RESULTADO_2.indsentidoida, "); sql.append(" RESULTADO_2.absolutos, "); - sql.append(" RESULTADO_2.receita, "); - sql.append(" RESULTADO_2.preciobase, "); + sql.append(" COALESCE(RESULTADO_2.receita,0) AS receita, "); + sql.append(" COALESCE(RESULTADO_2.preciobase,0) AS preciobase, "); sql.append(" RESULTADO_2.viagens, "); sql.append(" RESULTADO_2.km_corrida, "); sql.append(" RESULTADO_2.disponibilidade, "); sql.append(" RESULTADO_2.absoluto_total_corrida,"); - sql.append(" RESULTADO_2.importetaxaembarque, "); - sql.append(" RESULTADO_2.importepedagio "); + sql.append(" COALESCE(RESULTADO_2.importetaxaembarque,0) AS IMPORTETAXAEMBARQUE, "); + sql.append(" COALESCE(RESULTADO_2.importepedagio,0) AS IMPORTEPEDAGIO "); sql.append(" FROM (SELECT RESULTADO.*, "); sql.append(" (SELECT Count(*) "); sql.append(" FROM corrida CO "); @@ -330,19 +330,32 @@ public class RelatorioOrigemDestino extends Relatorio { sql.append(" CO.origen_id ORIGEN_ID, "); sql.append(" CO.destino_id DESTINO_ID, "); sql.append(" DES.cveparada DESTINO, "); - sql.append(" CA.numkmviaje KM_TRAMO, "); + sql.append(" T.CANTKMREAL KM_TRAMO, "); sql.append(" RU.ruta_id, "); sql.append(" RU.descruta, "); sql.append(" RU.indsentidoida, "); - sql.append(" Count(*) ABSOLUTOS, "); + sql.append(" Count(CA.BOLETO_ID) ABSOLUTOS, "); sql.append(" Sum(CA.preciopagado) RECEITA, "); sql.append(" CA.preciobase, "); sql.append(" SUM(CA.IMPORTETAXAEMBARQUE) as importetaxaembarque, "); sql.append(" SUM(CA.IMPORTEPEDAGIO) as importepedagio "); - sql.append(" FROM boleto CA "); - sql.append(" INNER JOIN parada ORI ON ORI.parada_id = CA.origen_id "); - sql.append(" INNER JOIN parada DES ON DES.parada_id = CA.destino_id "); - sql.append(" INNER JOIN corrida CO ON ( CO.corrida_id = CA.corrida_id AND CO.feccorrida = CA.feccorrida ) "); + sql.append(" FROM corrida CO "); + sql.append(" INNER JOIN parada ORI ON ORI.parada_id = CO.origen_id "); + sql.append(" INNER JOIN parada DES ON DES.parada_id = CO.destino_id "); + sql.append(" INNER JOIN RUTA_COMBINACION RC ON RC.RUTA_ID = CO.RUTA_ID "); + sql.append(" INNER JOIN TRAMO T ON RC.TRAMO_ID = T.TRAMO_ID "); + sql.append(" AND T.ORIGEN_ID = ORI.PARADA_ID "); + sql.append(" AND T.DESTINO_ID = DES.PARADA_ID "); + sql.append(" AND T.ACTIVO = 1 "); + sql.append(" AND RC.ACTIVO = 1 "); + sql.append(" LEFT JOIN boleto CA ON (CO.corrida_id = CA.corrida_id "); + sql.append(" AND CO.feccorrida = CA.feccorrida "); + sql.append(" AND CA.activo = 1 "); + sql.append(" AND CA.motivocancelacion_id IS NULL "); + sql.append(" AND CA.CATEGORIA_ID <> ").append(CONSTANTE_GRATUIDADE_CRIANCA); + sql.append(" AND CA.preciobase IS NOT NULL "); + sql.append((bilhetesGratuitos ? " AND CA.PRECIOBASE >= 0 " : " AND CA.PRECIOBASE > 0 ")); + sql.append(" ) "); sql.append(" INNER JOIN empresa EM ON EM.empresa_id = CO.empresacorrida_id "); sql.append(" INNER JOIN ruta RU ON RU.ruta_id = CO.ruta_id "); sql.append(" INNER JOIN tarifa TF ON (TF.CLASESERVICIO_ID = CO.CLASESERVICIO_ID "); @@ -351,15 +364,11 @@ public class RelatorioOrigemDestino extends Relatorio { sql.append(" AND TF.MARCA_ID = CO.MARCA_ID "); sql.append(" AND TF.RUTA_ID = CO.RUTA_ID)"); sql.append("INNER JOIN VIGENCIA_TARIFA VT ON (TF.VIGENCIATARIFA_ID=VT.VIGENCIATARIFA_ID)"); - sql.append(" WHERE CA.activo = 1 AND RU.activo = 1 AND EM.activo = 1 AND ORI.activo = 1 AND DES.activo = 1 "); + sql.append(" WHERE RU.activo = 1 AND EM.activo = 1 AND ORI.activo = 1 AND DES.activo = 1 "); sql.append(" AND CO.activo = 1 "); - sql.append((!corridasIds.equals("Todas") ? " AND CA.CORRIDA_ID IN (" + corridasIds + ") " : " ")); + sql.append((!corridasIds.equals("Todas") ? " AND CO.CORRIDA_ID IN (" + corridasIds + ") " : " ")); sql.append((" AND CO.EMPRESACORRIDA_ID IN (") + empresaIds + ") "); - sql.append(" AND CA.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') "); - sql.append(" AND CA.motivocancelacion_id IS NULL "); - sql.append(" AND CA.CATEGORIA_ID <> ").append(CONSTANTE_GRATUIDADE_CRIANCA); - sql.append(" AND CA.preciobase IS NOT NULL "); - sql.append((bilhetesGratuitos ? " AND CA.PRECIOBASE >= 0 " : " AND CA.PRECIOBASE > 0 ")); + sql.append(" AND CO.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') "); sql.append(" AND CO.FECCORRIDA BETWEEN vt.FECINICIOVIGENCIA and vt.FECFINVIGENCIA"); sql.append(" GROUP BY RU.ruta_id, "); sql.append(" EM.nombempresa, "); @@ -367,7 +376,7 @@ public class RelatorioOrigemDestino extends Relatorio { sql.append(" DES.cveparada, "); sql.append(" CO.origen_id, "); sql.append(" CO.destino_id, "); - sql.append(" CA.numkmviaje, "); + sql.append(" T.CANTKMREAL, "); sql.append(" CO.corrida_id, "); sql.append(" RU.descruta, "); sql.append(" RU.indsentidoida, "); @@ -412,7 +421,7 @@ public class RelatorioOrigemDestino extends Relatorio { sql.append(" RESULTADO_2.IMPORTEPEDAGIO "); sql.append(" ORDER BY RESULTADO_2.corrida_id) T1 "); sql.append(" INNER JOIN (SELECT RESULTADO_2.corrida_id CORRIDA_2, "); - sql.append(" Sum(RESULTADO_2.equivalente) EQUIVALENTE_TOTAL_CORRIDA "); + sql.append(" COALESCE(Sum(RESULTADO_2.equivalente),0) AS EQUIVALENTE_TOTAL_CORRIDA "); sql.append(" FROM (SELECT RESULTADO.*, "); sql.append(" ( RESULTADO.km_tramo / Sum(TR.cantkmreal) ) * ( "); sql.append(" SELECT Count(*) "); @@ -440,20 +449,23 @@ public class RelatorioOrigemDestino extends Relatorio { sql.append(" CA.preciobase, "); sql.append(" CO.origen_id, "); sql.append(" CO.destino_id "); - sql.append(" FROM boleto CA "); - sql.append(" INNER JOIN parada ORI ON ORI.parada_id = CA.origen_id "); - sql.append(" INNER JOIN parada DES ON DES.parada_id = CA.destino_id "); - sql.append(" INNER JOIN corrida CO ON ( CO.corrida_id = CA.corrida_id AND CO.feccorrida = CA.feccorrida ) "); + sql.append(" FROM corrida CO "); + sql.append(" INNER JOIN parada ORI ON ORI.parada_id = CO.origen_id "); + sql.append(" INNER JOIN parada DES ON DES.parada_id = CO.destino_id "); + sql.append(" LEFT JOIN boleto CA ON (CO.corrida_id = CA.corrida_id "); + sql.append(" AND CO.feccorrida = CA.feccorrida "); + sql.append(" AND CA.activo = 1 "); + sql.append(" AND CA.motivocancelacion_id IS NULL "); + sql.append(" AND CA.CATEGORIA_ID <> ").append(CONSTANTE_GRATUIDADE_CRIANCA); + sql.append(" AND CA.preciobase IS NOT NULL "); + sql.append((bilhetesGratuitos ? " AND CA.PRECIOBASE >= 0 " : " AND CA.PRECIOBASE > 0 ")); + sql.append(" ) "); sql.append(" INNER JOIN empresa EM ON EM.empresa_id = CO.empresacorrida_id "); sql.append(" INNER JOIN ruta RU ON RU.ruta_id = CO.ruta_id "); - sql.append(" WHERE CA.activo = 1 AND RU.activo = 1 AND EM.activo = 1 AND ORI.activo = 1 AND DES.activo = 1 "); + sql.append(" WHERE RU.activo = 1 AND EM.activo = 1 AND ORI.activo = 1 AND DES.activo = 1 "); sql.append(" AND CO.activo = 1 "); sql.append((" AND CO.EMPRESACORRIDA_ID IN (") + empresaIds + ") "); - sql.append(" AND CA.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') "); - sql.append(" AND CA.motivocancelacion_id IS NULL "); - sql.append(" AND CA.CATEGORIA_ID <> ").append(CONSTANTE_GRATUIDADE_CRIANCA); - sql.append(" AND CA.preciobase IS NOT NULL "); - sql.append((bilhetesGratuitos ? " AND CA.PRECIOBASE >= 0 " : " AND CA.PRECIOBASE > 0 ")); + sql.append(" AND CO.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') "); sql.append(" GROUP BY RU.ruta_id, "); sql.append(" EM.nombempresa, "); sql.append(" ORI.cveparada, "); diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jasper index 58e3cab99..3a969c4f6 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jrxml index 9c8452faa..29757977b 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jrxml @@ -55,7 +55,7 @@ - + 0 ? new BigDecimal($F{ABSOLUTO_TOTAL_CORRIDA}.toString()) : new BigDecimal(1)), 2,2)]]> @@ -67,7 +67,7 @@ - + 0 ? $F{EQUIVALENTE_TOTAL_CORRIDA} : new BigDecimal(1)), 4, 2)]]> @@ -79,10 +79,10 @@ - + 0 ? new BigDecimal($F{ABSOLUTO_TOTAL_CORRIDA}.toString()) : new BigDecimal(1)), 4,2 )]]> - + 0 ? new BigDecimal($F{ABSOLUTOS}.toString()) : new BigDecimal(1)), 2,2)]]>