diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeARTESP.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeARTESP.java index ec2661090..b9d4c8f8e 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeARTESP.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeARTESP.java @@ -182,7 +182,7 @@ public class RelatorioGratuidadeARTESP extends Relatorio { StringBuilder sql = new StringBuilder(); - sql.append("SELECT distinct OC.DESCORGAO AS ORGAO, "); + sql.append("SELECT distinct OC.DESCORGAO AS ORGAO, "); sql.append("O.CODEMPRESAPORORGAO AS empresa,"); sql.append("B.FECHORVIAJE AS fechorviaje, "); sql.append("ori.cveparada AS codorigem, "); @@ -204,18 +204,15 @@ public class RelatorioGratuidadeARTESP extends Relatorio { sql.append("THEN b.DESCNUMDOC2 ELSE c.NUMIDENTIFICADOS "); sql.append("END AS CPF, "); sql.append("r.PREFIXO AS LINHA, "); - sql.append(" LISTAGG( DISTINCT "); - sql.append("cd.DESCCALLE || ', ' || cd.NUMEXTERIOR || '-' || "); - sql.append("cd.DESCIUDAD || '/' || cd.DESESTADO ,';;;;' )" ); - sql.append(" WITHIN GROUP( ORDER BY cd.CLIENTEDIRECCION_ID ASC )" ); - sql.append(" AS ENDERECO, "); + sql.append(" (select ed.desccalle || ', ' || ed.numexterior || '-' || ed.desciudad || '/' || ed.desestado "); + sql.append(" from cliente_direccion ed where ed.cliente_id = b.cliente_id and ed.activo = 1 and rownum = 1 ) ENDERECO, "); sql.append("COALESCE(c.numtelefono, CAJA.DESCTELEFONO) AS tel,"); sql.append("c.DESCCORREO AS email, "); sql.append("CASE "); sql.append("WHEN B.MOTIVOCANCELACION_ID IN (31, 32, 90, 23,10, 27) "); sql.append("THEN 1 ELSE 0 "); sql.append("END AS DESISTENCIA, "); - sql.append(" (COALESCE(T.PRECIO, 0) + COALESCE(T.IMPORTEPEDAGIO,0)) "); + sql.append(" (COALESCE(T.PRECIO, 0) + COALESCE(T.IMPORTEPEDAGIO,0)) "); sql.append("-(COALESCE(b.PRECIOPAGADO, 0) + COALESCE(b.IMPORTEPEDAGIO,0)) AS vlrGratuidade, "); sql.append(" bpe.chbpe as chaveBPE "); sql.append("FROM BOLETO b "); @@ -223,14 +220,13 @@ public class RelatorioGratuidadeARTESP extends Relatorio { sql.append("JOIN categoria ca ON b.categoria_id = ca.categoria_id "); sql.append("JOIN empresa e ON e.empresa_id = b.EMPRESACORRIDA_ID "); sql.append("JOIN marca m ON m.EMPRESA_ID = e.EMPRESA_ID "); - sql.append("JOIN parada ori ON ori.parada_id = b.origen_id "); - sql.append("JOIN parada des ON des.parada_id = b.destino_id "); + sql.append("JOIN parada ori ON ori.parada_id = b.origen_id "); + sql.append("JOIN parada des ON des.parada_id = b.destino_id "); sql.append("JOIN ruta r ON r.ruta_id = b.ruta_id "); - sql.append("JOIN RUTA_COMBINACION rc ON rc.ruta_id=r.ruta_id and rc.activo=1 "); - sql.append("JOIN TRAMO tr ON tr.tramo_id=rc.tramo_id and tr.activo=1 "); - sql.append("LEFT JOIN cliente c ON c.cliente_id = b.cliente_id "); - sql.append("LEFT JOIN CLIENTE_DIRECCION cd ON cd.cliente_id = c.cliente_id AND cd.ACTIVO = 1 "); - sql.append("LEFT JOIN ORGAO_CONCEDENTE OC ON r.ORGAOCONCEDENTE_ID = OC.ORGAOCONCEDENTE_ID "); + sql.append("LEFT JOIN cliente c ON c.cliente_id = b.cliente_id "); + sql.append("JOIN RUTA_COMBINACION rc ON rc.ruta_id=r.ruta_id and rc.activo=1 "); + sql.append("JOIN TRAMO tr ON tr.tramo_id=rc.tramo_id and tr.activo=1 "); + sql.append("LEFT JOIN ORGAO_CONCEDENTE OC ON r.ORGAOCONCEDENTE_ID = OC.ORGAOCONCEDENTE_ID "); sql.append("JOIN ORGAO_EMP_PARAM O ON e.empresa_id = O.EMPRESA_ID AND OC.ORGAOCONCEDENTE_ID = O.ORGAOCONCEDENTE_ID AND O.ACTIVO = 1 "); sql.append("JOIN TARIFA T ON r.RUTA_ID = T.RUTA_ID AND b.ORIGEN_ID = T.ORIGEN_ID AND b.DESTINO_ID = T.DESTINO_ID AND b.CLASESERVICIO_ID = T.CLASESERVICIO_ID AND m.MARCA_ID = T.MARCA_ID AND oc.ORGAOCONCEDENTE_ID = T.ORGAOCONCEDENTE_ID AND T.TRAMO_ID=tr.TRAMO_ID AND T.ACTIVO=1 "); sql.append("JOIN VIGENCIA_TARIFA vt ON vt.VIGENCIATARIFA_ID = t.VIGENCIATARIFA_ID AND b.FECHORVIAJE BETWEEN vt.FECINICIOVIGENCIA AND vt.FECFINVIGENCIA "); @@ -257,23 +253,14 @@ public class RelatorioGratuidadeARTESP extends Relatorio { if (estados != null) { sql.append(" AND e.ESTADO_ID IN ( " + estados + " )"); } - - sql.append(" group by OC.DESCORGAO, O.CODEMPRESAPORORGAO, B.FECHORVIAJE, ca.desccategoria, "); - sql.append(" ori.cveparada, ori.descparada, des.cveparada, B.NUMASIENTO, des.descparada, "); - sql.append(" c.TIPOIDENTIFICAUNO_ID, c.TIPOIDENTIFICADOS_ID, "); - sql.append(" b.FECCORRIDA, COALESCE(c.numtelefono, CAJA.DESCTELEFONO), c.DESCCORREO, CASE WHEN b.DESCNUMDOC IS NOT NULL THEN b.DESCNUMDOC ELSE c.NUMIDENTIFICAUNO END, "); - sql.append(" b.NUMFOLIOSISTEMA, CASE WHEN b.DESCNUMDOC2 IS NOT NULL THEN b.DESCNUMDOC2 ELSE c.NUMIDENTIFICADOS END, b.NOMBPASAJERO, b.NUMIDENTIFICACION, T.PRECIO, b.PRECIOPAGADO, b.descorgaodoc, r.PREFIXO, B.MOTIVOCANCELACION_ID, "); - sql.append(" T.IMPORTEOUTROS, T.IMPORTEPEDAGIO, T.IMPORTESEGURO, T.IMPORTETAXAEMBARQUE, T.IMPORTETPP, b.descorgaodoc, "); - sql.append(" b.IMPORTECATEGORIA, b.IMPORTEOUTROS, b.IMPORTEPEDAGIO, b.IMPORTESEGURO, b.IMPORTETAXAEMBARQUE, b.IMPORTETPP, bpe.chbpe "); + sql.append(" ORDER BY OC.DESCORGAO, O.CODEMPRESAPORORGAO, b.FECHORVIAJE, descorigem, descdestino "); return sql.toString(); } - private String getSqlNoTabelaPreco(String fecInicioVenda, String fecFinalVenda, String linha, String tipoGratu, String empresa, String codOrgaoConcedente, String estados) { - StringBuilder sql = new StringBuilder(); sql.append("SELECT OC.DESCORGAO AS ORGAO,"); @@ -298,30 +285,29 @@ public class RelatorioGratuidadeARTESP extends Relatorio { sql.append(" ELSE c.NUMIDENTIFICADOS"); sql.append(" END AS CPF,"); sql.append(" r.PREFIXO AS LINHA,"); - sql.append(" LISTAGG( DISTINCT cd.DESCCALLE || ', ' || cd.NUMEXTERIOR || '-' || cd.DESCIUDAD || '/' || cd.DESESTADO, ';;;;') WITHIN GROUP("); - sql.append(" ORDER BY cd.CLIENTEDIRECCION_ID ASC) AS ENDERECO, "); - sql.append(" COALESCE(c.numtelefono, CAJA.DESCTELEFONO) AS tel,"); - sql.append(" c.DESCCORREO AS email,"); - sql.append(" CASE"); - sql.append(" WHEN B.MOTIVOCANCELACION_ID IN (31,32, 90, 23,10, 27 ) THEN 1 ELSE 0 END AS DESISTENCIA, "); + sql.append(" (select ed.desccalle || ', ' || ed.numexterior || '-' || ed.desciudad || '/' || ed.desestado "); + sql.append(" from cliente_direccion ed where ed.cliente_id = b.cliente_id and ed.activo = 1 and rownum = 1 ) ENDERECO, "); + sql.append(" COALESCE(c.numtelefono, CAJA.DESCTELEFONO) AS tel,"); + sql.append(" c.DESCCORREO AS email,"); + sql.append(" CASE"); + sql.append(" WHEN B.MOTIVOCANCELACION_ID IN (31,32, 90, 23,10, 27 ) THEN 1 ELSE 0 END AS DESISTENCIA, "); sql.append(" (COALESCE(NULL, b.preciobase) + COALESCE(NULL, 0)) -(COALESCE(b.PRECIOPAGADO, 0) + COALESCE(b.IMPORTEPEDAGIO, 0)) AS vlrGratuidade,"); sql.append(" bpe.chbpe AS chaveBPE "); - sql.append("FROM BOLETO b "); - sql.append("LEFT JOIN CAJA ON B.BOLETO_ID = CAJA.TRANSACAO_ID ") ; - sql.append("JOIN categoria ca ON b.categoria_id = ca.categoria_id "); - sql.append("JOIN empresa e ON e.empresa_id = b.EMPRESACORRIDA_ID "); - sql.append("JOIN marca m ON m.EMPRESA_ID = e.EMPRESA_ID "); - sql.append("JOIN parada ori ON ori.parada_id = b.origen_id "); - sql.append("JOIN parada des ON des.parada_id = b.destino_id "); - sql.append("JOIN ruta r ON r.ruta_id = b.ruta_id "); + sql.append(" FROM BOLETO b "); + sql.append(" LEFT JOIN CAJA ON B.BOLETO_ID = CAJA.TRANSACAO_ID ") ; + sql.append(" JOIN categoria ca ON b.categoria_id = ca.categoria_id "); + sql.append(" JOIN empresa e ON e.empresa_id = b.EMPRESACORRIDA_ID "); + sql.append(" JOIN marca m ON m.EMPRESA_ID = e.EMPRESA_ID "); + sql.append(" JOIN parada ori ON ori.parada_id = b.origen_id "); + sql.append(" JOIN parada des ON des.parada_id = b.destino_id "); + sql.append(" JOIN ruta r ON r.ruta_id = b.ruta_id "); sql.append("LEFT JOIN cliente c ON c.cliente_id = b.cliente_id "); - sql.append("LEFT JOIN CLIENTE_DIRECCION cd ON cd.cliente_id = c.cliente_id AND cd.ACTIVO = 1 "); - sql.append("LEFT JOIN ORGAO_CONCEDENTE OC ON r.ORGAOCONCEDENTE_ID = OC.ORGAOCONCEDENTE_ID "); - sql.append("JOIN ORGAO_EMP_PARAM O ON e.empresa_id = O.EMPRESA_ID AND OC.ORGAOCONCEDENTE_ID = O.ORGAOCONCEDENTE_ID AND O.ACTIVO = 1 "); - sql.append("LEFT JOIN BPE bpe ON bpe.BOLETO_ID = b.BOLETO_ID "); - sql.append("LEFT JOIN estado e ON e.CODIBGE = bpe.UF AND e.ACTIVO =1 "); - sql.append("WHERE b.fechorviaje BETWEEN to_date(:fecInicioVenda,'dd/mm/yyyy hh24:mi') AND to_date(:fecFinalVenda,'dd/mm/yyyy hh24:mi') "); - sql.append("AND (b.MOTIVOCANCELACION_ID not in (4) or b.MOTIVOCANCELACION_ID is null) "); + sql.append(" LEFT JOIN ORGAO_CONCEDENTE OC ON r.ORGAOCONCEDENTE_ID = OC.ORGAOCONCEDENTE_ID "); + sql.append(" JOIN ORGAO_EMP_PARAM O ON e.empresa_id = O.EMPRESA_ID AND OC.ORGAOCONCEDENTE_ID = O.ORGAOCONCEDENTE_ID AND O.ACTIVO = 1 "); + sql.append(" LEFT JOIN BPE bpe ON bpe.BOLETO_ID = b.BOLETO_ID "); + sql.append(" LEFT JOIN estado e ON e.CODIBGE = bpe.UF AND e.ACTIVO =1 "); + sql.append(" WHERE b.fechorviaje BETWEEN to_date(:fecInicioVenda,'dd/mm/yyyy hh24:mi') AND to_date(:fecFinalVenda,'dd/mm/yyyy hh24:mi') "); + sql.append(" AND (b.MOTIVOCANCELACION_ID not in (4) or b.MOTIVOCANCELACION_ID is null) "); if (tipoGratu != null) { sql.append(" AND b.CATEGORIA_ID in (").append(tipoGratu).append(") "); @@ -342,39 +328,6 @@ public class RelatorioGratuidadeARTESP extends Relatorio { sql.append(" AND e.ESTADO_ID IN ( " + estados + " )"); } - sql.append("GROUP BY OC.DESCORGAO,"); - sql.append(" O.CODEMPRESAPORORGAO,"); - sql.append(" B.FECHORVIAJE,"); - sql.append(" ori.cveparada,"); - sql.append(" ori.descparada,"); - sql.append(" des.cveparada,"); - sql.append(" des.descparada,"); - sql.append(" B.NUMASIENTO,"); - sql.append(" b.NUMFOLIOSISTEMA,"); - sql.append(" b.NOMBPASAJERO,"); - sql.append(" CASE"); - sql.append(" WHEN b.DESCNUMDOC IS NOT NULL THEN b.DESCNUMDOC"); - sql.append(" ELSE c.NUMIDENTIFICAUNO"); - sql.append(" END,"); - sql.append(" c.TIPOIDENTIFICAUNO_ID,"); - sql.append(" b.descorgaodoc,"); - sql.append(" c.TIPOIDENTIFICADOS_ID,"); - sql.append(" CASE"); - sql.append(" WHEN b.DESCNUMDOC2 IS NOT NULL THEN b.DESCNUMDOC2"); - sql.append(" ELSE c.NUMIDENTIFICADOS"); - sql.append(" END,"); - sql.append(" r.PREFIXO,"); - sql.append(" c.DESCCORREO,"); - sql.append(" CASE"); - sql.append(" WHEN B.MOTIVOCANCELACION_ID IN (31,"); - sql.append(" 32,"); - sql.append(" 90,"); - sql.append(" 23,10, 27) THEN 1"); - sql.append(" ELSE 0"); - sql.append(" END,"); - sql.append(" COALESCE(c.numtelefono, CAJA.DESCTELEFONO),"); - sql.append(" (COALESCE(NULL, b.preciobase) + COALESCE(NULL, 0)) -(COALESCE(b.PRECIOPAGADO, 0) + COALESCE(b.IMPORTEPEDAGIO, 0)), "); - sql.append(" bpe.chbpe "); sql.append("ORDER BY OC.DESCORGAO, "); sql.append(" O.CODEMPRESAPORORGAO,"); sql.append(" b.FECHORVIAJE,");