diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoAutomaticoECF.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoAutomaticoECF.java index 27e5b132e..8591ed8df 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoAutomaticoECF.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoAutomaticoECF.java @@ -31,68 +31,10 @@ public class RelatorioCancelamentoAutomaticoECF extends Relatorio { Connection conexao = this.relatorio.getConexao(); Map parametros = this.relatorio.getParametros(); - - StringBuilder sql = new StringBuilder(); - sql.append(" SELECT c.CORRIDA_ID AS Servico , "); - sql.append(" c.RUTA_ID AS Linhas, "); - sql.append(" c.PUNTOVENTA_ID AS agencia , "); - sql.append(" pOrigem.DESCPARADA AS origem, "); - sql.append(" pDestino.DESCPARADA AS destino, "); - sql.append(" c.NUMASIENTO AS poltronas, "); - sql.append(" c.NUMFOLIOSISTEMA AS passagem, "); - sql.append(" cs.DESCCLASE AS classe, "); - sql.append(" c.USUARIO_ID AS bilheteiro, "); - sql.append(" c.FECHORVENTA AS dataVenda, "); - sql.append(" c.PRECIOPAGADO AS tarifa, "); - sql.append(" c.IMPORTETAXAEMBARQUE AS taxa, "); - sql.append(" c.IMPORTEPEDAGIO AS pedagio, "); - sql.append(" c.IMPORTESEGURO AS seguro, "); - sql.append(" c.FECHORVIAJE AS dataEmbarque, "); - sql.append(" c.NUMFOLIOPREIMPRESO AS preImpresso, "); - sql.append(" fr4.NUMSERIE20 AS impressora, "); - sql.append(" e.NOMBEMPRESA AS empresa, "); - sql.append(" fp.DESCPAGO AS formaPagamento, "); - sql.append(" cfp.importe AS dividendo, "); - sql.append(" (coalesce(c.preciopagado,0)+coalesce(c.importetaxaembarque,0)+coalesce(c.importeseguro,0)+coalesce(c.importepedagio,0)+coalesce(c.importeoutros,0)) AS divisor , "); - sql.append(" ct.NSU AS nsu, "); - sql.append(" ct.NUMAUTORIZACION AS autorizacao "); - sql.append(" FROM caja c "); - sql.append(" INNER JOIN FISCAL_R4 fr4 "); - sql.append(" ON c.CAJA_ID = fr4.CAJA_ID "); - sql.append(" INNER JOIN parada pOrigem "); - sql.append(" ON pOrigem.PARADA_ID = c.ORIGEN_ID "); - sql.append(" INNER JOIN parada pDestino "); - sql.append(" ON pDestino.PARADA_ID = c.DESTINO_ID "); - sql.append(" INNER JOIN CLASE_SERVICIO cs "); - sql.append(" ON cs.CLASESERVICIO_ID = c.CLASESERVICIO_ID "); - sql.append(" INNER JOIN EMPRESA e "); - sql.append(" ON e.EMPRESA_ID = c.EMPRESACORRIDA_ID "); - sql.append(" INNER JOIN CAJA_FORMAPAGO cfp "); - sql.append(" ON cfp.CAJA_ID = c.CAJA_ID "); - sql.append(" INNER JOIN FORMA_PAGO fp "); - sql.append(" ON fp.FORMAPAGO_ID = cfp.FORMAPAGO_ID "); - sql.append(" LEFT JOIN CAJA_DET_PAGO cdp "); - sql.append(" ON cdp.CAJAFORMAPAGO_ID = cfp.CAJAFORMAPAGO_ID "); - sql.append(" LEFT JOIN CAJA_TARJETA ct "); - sql.append(" ON ct.CAJADETPAGO_ID = cdp.CAJADETPAGO_ID "); - sql.append(" WHERE fr4.INDCANCELAMENTO = 'S' "); - sql.append(" OR c.MOTIVOCANCELACION_ID = :CANCELAMENTOECF "); - //sql.append(" and to_date(fr4.DATAMOV,'yyyyMMdd') between to_date(:DATA_INICIAL,'dd/MM/yyyy') and to_date(:DATA_FINAL,'dd/MM/yyyy')"); - sql.append(" and to_date(fr4.DATAMOV,'yyyyMMdd') >= :DATA_INICIAL "); - sql.append(" and to_date(fr4.DATAMOV,'yyyyMMdd') <= :DATA_FINAL "); + NamedParameterStatement stmt = new NamedParameterStatement(conexao, getSql(parametros) ); - if(parametros.get("EMPRESA_ID") != null){ - sql.append(" and c.EMPRESAPUNTOVENTA_ID = :EMPRESA_ID"); - } - - if (parametros.get("NUMPUNTOVENTA") != null) { - sql.append(" and c.puntoventa_id IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")"); - } - - sql.append(" order by fr4.CAJA_ID, cfp.CAJAFORMAPAGO_ID "); - - NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql.toString()); + NamedParameterStatement stmtComplemento = new NamedParameterStatement(conexao, montaSqlComplementar() ); stmt.setInt("CANCELAMENTOECF", Integer.valueOf(parametros.get("CANCELAMENTOECF").toString())); @@ -112,48 +54,172 @@ public class RelatorioCancelamentoAutomaticoECF extends Relatorio { while (rset.next()) { Map dataResult = new HashMap(); - - dataResult.put("servico", rset.getString("servico")); - dataResult.put("linhas", rset.getString("linhas")); + + dataResult.put("empresa", rset.getString("empresa")); dataResult.put("agencia", rset.getString("agencia")); + dataResult.put("bilheteiro", rset.getString("bilheteiro")); + dataResult.put("bilheteiroNome", rset.getString("bilheteiroNome")); + dataResult.put("dataHoraMD", (Date)rset.getObject("dataHoraMD")); + dataResult.put("dataServico", (Date)rset.getObject("dataServico")); + dataResult.put("servico", rset.getString("servico")); + dataResult.put("codLinha", rset.getString("codLinha")); + dataResult.put("linha", rset.getString("linha")); + dataResult.put("horaServico", (Date)rset.getObject("horaServico")); + dataResult.put("codOrigem", rset.getString("codOrigem")); dataResult.put("origem", rset.getString("origem")); + dataResult.put("codDestino", rset.getString("codDestino")); dataResult.put("destino", rset.getString("destino")); dataResult.put("poltronas", rset.getString("poltronas")); - dataResult.put("passagem", rset.getString("passagem")); - dataResult.put("classe", rset.getString("classe")); - dataResult.put("bilheteiro", rset.getString("bilheteiro")); - dataResult.put("dataVenda", (Date)rset.getObject("dataVenda")); - dataResult.put("tarifa", rset.getBigDecimal("tarifa")); - dataResult.put("taxa", rset.getBigDecimal("taxa")); + dataResult.put("ECF", rset.getString("ECF")); + dataResult.put("bilhete", rset.getString("bilhete")); + dataResult.put("CCF", rset.getString("CCF")); + dataResult.put("tipoVenda", rset.getString("tipoVenda")); + dataResult.put("siglaTipoPassagem", rset.getString("siglaTipoPassagem")); + dataResult.put("tipoPassagem", rset.getString("tipoPassagem")); + dataResult.put("valorPassagem", rset.getBigDecimal("valorPassagem")); + dataResult.put("percentual", rset.getBigDecimal("percentual")); + dataResult.put("valorTotal", rset.getBigDecimal("valorTotal")); + dataResult.put("tarifa", rset.getBigDecimal("tarifa")); dataResult.put("pedagio", rset.getBigDecimal("pedagio")); dataResult.put("seguro", rset.getBigDecimal("seguro")); - dataResult.put("dataEmbarque", (Date)rset.getObject("dataEmbarque")); - dataResult.put("preImpresso", rset.getString("preImpresso")); - dataResult.put("impressora", rset.getString("impressora")); - dataResult.put("empresa", rset.getString("empresa")); - dataResult.put("formaPagamento", rset.getString("formaPagamento")); + dataResult.put("UTR", rset.getBigDecimal("UTR")); + dataResult.put("TPP", rset.getString("TPP")); - Double dividendo = rset.getDouble("dividendo"); - Double divisor = rset.getDouble("divisor")==0.0 ?1:rset.getDouble("divisor"); - Double porcentagem = dividendo*100 / divisor; + stmtComplemento.setString("cajaId", rset.getString("cajaId") ); + ResultSet rsetComplemento = stmtComplemento.executeQuery(); - dataResult.put("porcentagem", porcentagem.toString()); - dataResult.put("nsu", rset.getString("nsu")); - dataResult.put("autorizacao", rset.getString("autorizacao")); + for (int i = 1; i < 4; i++) { + if( rsetComplemento.next() ) { + dataResult.put("formaPagamento"+i, rsetComplemento.getString("formaPagamento")); + dataResult.put("nsu"+i, rsetComplemento.getString("nsu")); + }else { + dataResult.put("formaPagamento"+i, null); + dataResult.put("nsu"+i, null); + } + } + this.dados.add(dataResult); } this.resultSet = rset; } + }); } + + private String getSql(Map parametros) { + StringBuilder sql = new StringBuilder(3200); + + sql.append(" SELECT "); + sql.append(" e.NOMBEMPRESA AS empresa, "); + sql.append(" pv.NOMBPUNTOVENTA AS agencia , "); + sql.append(" c.USUARIO_ID AS bilheteiro, "); + sql.append(" UR.NOMBUSUARIO bilheteiroNome, "); + sql.append(" c.FECHORVENTA_H as dataHoraMD, "); + sql.append(" c.FECCORRIDA as dataServico, "); + sql.append(" c.CORRIDA_ID AS servico, "); + sql.append(" c.RUTA_ID AS codLinha, "); + sql.append(" rr.DESCRUTA as linha, "); + sql.append(" cor.FECHORSALIDA as horaServico, "); + sql.append(" pOrigem.CVEPARADA AS codOrigem, "); + sql.append(" pOrigem.DESCPARADA AS origem, "); + sql.append(" pDestino.CVEPARADA AS codDestino, "); + sql.append(" pDestino.DESCPARADA AS destino, "); + sql.append(" c.NUMASIENTO AS poltronas, "); + sql.append(" r2.NUMSERIE20 AS ECF, "); + sql.append(" c.NUMFOLIOSISTEMA AS bilhete, "); + sql.append(" c.CCF AS CCF, "); + sql.append(" tv.DESCTIPOVENTA AS tipoVenda, "); + sql.append(" car.CVECATEGORIA AS siglaTipoPassagem, "); + sql.append(" car.DESCCATEGORIA AS tipoPassagem, "); + sql.append(" c.PRECIOBASE AS valorPassagem, "); + sql.append(" CASE "); + sql.append(" WHEN c.PRECIOBASE > 0 "); + sql.append(" THEN TRUNC(((100 - (c.PRECIOPAGADO * 100) / c.PRECIOBASE)),2) "); + sql.append(" ELSE 0 "); + sql.append(" END AS percentual, "); + sql.append(" sum(cfp.importe) AS valorTotal, "); + sql.append(" c.PRECIOPAGADO AS tarifa, "); + sql.append(" c.IMPORTEPEDAGIO AS pedagio, "); + sql.append(" c.IMPORTESEGURO AS seguro, "); + sql.append(" c.IMPORTETAXAEMBARQUE AS UTR, "); + sql.append(" c.IMPORTETPP AS TPP, "); + sql.append(" c.CAJA_ID AS cajaId "); + sql.append(" FROM caja c "); + sql.append(" INNER JOIN FISCAL_R4 fr4 "); + sql.append(" ON c.CAJA_ID = fr4.CAJA_ID "); + sql.append(" LEFT JOIN FISCAL_R2 r2 "); + sql.append(" ON (fr4.NUMSERIE20 = r2.NUMSERIE20 "); + sql.append(" AND fr4.DATAMOV = r2.DATAMOV) "); + sql.append(" INNER JOIN PARADA pOrigem "); + sql.append(" ON pOrigem.PARADA_ID = c.ORIGEN_ID "); + sql.append(" INNER JOIN PARADA pDestino "); + sql.append(" ON pDestino.PARADA_ID = c.DESTINO_ID "); + sql.append(" INNER JOIN CORRIDA cor "); + sql.append(" ON cor.CORRIDA_ID = c.CORRIDA_ID "); + sql.append(" and cor.FECCORRIDA = c.FECCORRIDA "); + sql.append(" INNER JOIN PUNTO_VENTA pv "); + sql.append(" on c.PUNTOVENTA_ID = pv.PUNTOVENTA_ID "); + sql.append(" INNER JOIN RUTA rr "); + sql.append(" ON c.RUTA_ID = rr.RUTA_ID "); + sql.append(" INNER JOIN CLASE_SERVICIO cs "); + sql.append(" ON cs.CLASESERVICIO_ID = c.CLASESERVICIO_ID "); + sql.append(" INNER JOIN EMPRESA e "); + sql.append(" ON e.EMPRESA_ID = c.EMPRESACORRIDA_ID "); + sql.append(" INNER JOIN USUARIO UR "); + sql.append(" ON c.USUARIO_ID = UR.USUARIO_ID "); + sql.append(" INNER JOIN CATEGORIA car "); + sql.append(" ON c.CATEGORIA_ID = car.CATEGORIA_ID "); + sql.append(" INNER JOIN TIPO_VENTA tv "); + sql.append(" on c.TIPOVENTA_ID = tv.TIPOVENTA_ID "); + sql.append(" INNER JOIN CAJA_FORMAPAGO cfp "); + sql.append(" ON cfp.CAJA_ID = c.CAJA_ID "); + sql.append(" LEFT JOIN TIPO_IDENTIFICACION tir "); + sql.append(" ON (tir.TIPOIDENTIFICACION_ID = c.TIPOIDENTIFICACION_ID) "); + sql.append(" WHERE ( fr4.INDCANCELAMENTO = 'S' "); + sql.append(" OR c.MOTIVOCANCELACION_ID = :CANCELAMENTOECF ) "); + sql.append(" and to_date(fr4.DATAMOV,'yyyyMMdd') >= :DATA_INICIAL"); + sql.append(" and to_date(fr4.DATAMOV,'yyyyMMdd') <= :DATA_FINAL "); + + if(parametros.get("EMPRESA_ID") != null){ + sql.append(" and c.EMPRESAPUNTOVENTA_ID = :EMPRESA_ID"); + } + + if (parametros.get("NUMPUNTOVENTA") != null) { + sql.append(" and c.puntoventa_id IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")"); + } + + sql.append(" group by e.NOMBEMPRESA, pv.NOMBPUNTOVENTA, c.USUARIO_ID, UR.NOMBUSUARIO, c.FECHORVENTA_H, "); + sql.append(" c.FECCORRIDA, c.CORRIDA_ID, c.RUTA_ID, rr.DESCRUTA, cor.FECHORSALIDA, "); + sql.append(" pOrigem.CVEPARADA, pOrigem.DESCPARADA, pDestino.CVEPARADA, pDestino.DESCPARADA, c.NUMASIENTO, "); + sql.append(" r2.NUMSERIE20, c.NUMFOLIOSISTEMA, c.CCF, tv.DESCTIPOVENTA, car.CVECATEGORIA, "); + sql.append(" car.DESCCATEGORIA, c.PRECIOBASE, c.PRECIOPAGADO, c.IMPORTEPEDAGIO, "); + sql.append(" c.IMPORTESEGURO, c.IMPORTETAXAEMBARQUE, c.IMPORTETPP, c.CAJA_ID "); + sql.append(" ORDER BY empresa, agencia, bilheteiroNome "); + + return sql.toString(); + } + + private String montaSqlComplementar() { + StringBuilder sql = new StringBuilder(400); + + sql.append(" SELECT "); + sql.append(" ct.NSU, fp.DESCPAGO AS formaPagamento "); + sql.append(" FROM CAJA_FORMAPAGO cfp "); + sql.append(" INNER JOIN FORMA_PAGO fp "); + sql.append(" ON fp.FORMAPAGO_ID = cfp.FORMAPAGO_ID "); + sql.append(" LEFT JOIN CAJA_DET_PAGO cdp "); + sql.append(" ON cdp.CAJAFORMAPAGO_ID = cfp.CAJAFORMAPAGO_ID "); + sql.append(" LEFT JOIN CAJA_TARJETA ct "); + sql.append(" ON ct.CAJADETPAGO_ID = cdp.CAJADETPAGO_ID "); + sql.append(" where cfp.CAJA_ID = :cajaId "); + sql.append(" and cfp.ACTIVO = 1 "); + sql.append(" order by cfp.CAJAFORMAPAGO_ID "); + + return sql.toString(); + } - /* - * (non-Javadoc) - * - * @see com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio#processaParametros() - */ @Override protected void processaParametros() throws Exception { diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoAutomaticoECF.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoAutomaticoECF.jasper index b9d54ae78..08b883657 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoAutomaticoECF.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoAutomaticoECF.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoAutomaticoECF.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoAutomaticoECF.jrxml index d252b143f..8e4a35d68 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoAutomaticoECF.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoAutomaticoECF.jrxml @@ -1,8 +1,8 @@ - - - - + + + + @@ -15,35 +15,49 @@ - - + + + + + + + + + + + - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + - + - + @@ -51,14 +65,14 @@ - + - + @@ -66,7 +80,7 @@ - + @@ -74,7 +88,7 @@ - + @@ -82,7 +96,7 @@ - + @@ -90,10 +104,10 @@ - + - + @@ -102,331 +116,504 @@ - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + + + + + + + + - - - - - - - - + - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - + - + - + - + - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - + + - + - - - + + + - - + + - - + + - - + + - - + + - + - - + + - + - - - + + + - + - - - - - - - - - + + - - - - - - - - - + + - - + + - - + + - + - - + + - + - - + + + + + + + + + + + + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - - - - - - - - - - - - - - - + - + - + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCancelamentoAutomaticoECFController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCancelamentoAutomaticoECFController.java index 16cefbd47..7f262dc76 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCancelamentoAutomaticoECFController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCancelamentoAutomaticoECFController.java @@ -205,19 +205,7 @@ public class RelatorioCancelamentoAutomaticoECFController extends MyGenericForwa filtro.append(empresa.getNombempresa() + ";"); } else { filtro.append(" Todas;"); - } - - filtro.append(" Canal Vendas: "); -// Comboitem itemTipoPuntoVenda = cmbTipoPuntoVenta.getSelectedItem(); -// if (itemTipoPuntoVenda != null) { -// TipoPuntoVenta tpv = (TipoPuntoVenta) itemTipoPuntoVenda.getValue(); -// parametros.put("TIPOPUNTOVENTA_ID", tpv.getTipoptovtaId()); -// parametros.put("TIPOPUNTOVENTA", tpv.getDesctipo()); -// filtro.append(tpv.getDesctipo() + ";"); -// } else { -// filtro.append(" Todos;"); -// } - + } parametros.put("FILTROS", filtro.toString()); relatorio = new RelatorioCancelamentoAutomaticoECF(parametros, dataSourceRead.getConnection());