From c81023a4ed819492a3084b3d377da11c8bcddf5c Mon Sep 17 00:00:00 2001 From: julio Date: Tue, 17 Nov 2015 16:27:30 +0000 Subject: [PATCH] fixes bug #6842 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@50193 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../RelatorioCancelamentoVendaCartao.java | 95 ++++++++++--------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoVendaCartao.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoVendaCartao.java index 6352f5076..78f9570d5 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoVendaCartao.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoVendaCartao.java @@ -14,8 +14,7 @@ import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; public class RelatorioCancelamentoVendaCartao extends Relatorio { - public RelatorioCancelamentoVendaCartao(Map parametros, Connection conexao) throws Exception - { + public RelatorioCancelamentoVendaCartao(Map parametros, Connection conexao) throws Exception { super(parametros, conexao); this.setCustomDataSource(new ArrayDataSource(this) { @@ -23,15 +22,15 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio { public void initDados() throws Exception { Connection conexao = this.relatorio.getConexao(); Map parametros = this.relatorio.getParametros(); - final Integer CARTAO_CREDITO = 2; + final Integer CARTAO_CREDITO = 2; String sql = getSql(); - + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); stmt.setTimestamp("data_inicial", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); stmt.setTimestamp("data_final", new Timestamp(DateUtil.fimFecha((Date) parametros.get("DATA_FINAL")).getTime())); stmt.setInt("formaPago1", CARTAO_CREDITO); - + ResultSet rset = stmt.executeQuery(); while (rset.next()) { @@ -46,7 +45,7 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio { dataResult.put("motivo", rset.getString("descmotivo")); dataResult.put("numerositef", rset.getString("numsitef")); dataResult.put("nsu", rset.getString("nsu")); - dataResult.put("numfoliosistema", rset.getString("numfoliosistema") != null ? rset.getString("numfoliosistema") : ""); + dataResult.put("numfoliosistema", rset.getString("numfoliosistema") != null ? rset.getString("numfoliosistema") : ""); this.dados.add(dataResult); } @@ -58,7 +57,7 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio { @Override protected void processaParametros() throws Exception { } - + private String getSql() { StringBuilder sql = new StringBuilder(); sql.append(" WITH boletos_originais AS "); @@ -66,110 +65,112 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio { sql.append(" ctj.numautorizacion as numautorizacion_bo, ctj.nsu as nsu_bo "); sql.append(" FROM boleto b, caja_det_pago cdt, caja c, caja_tarjeta ctj, ptovta_empresa ptovta "); sql.append(" WHERE b.boleto_id IN "); - sql.append(" (SELECT b.boletooriginal_id FROM OCD o "); + sql.append(" ( SELECT b.boletooriginal_id FROM OCD o "); sql.append(" INNER JOIN boleto b ON o.BOLETO_ID = b.BOLETO_ID "); sql.append(" INNER JOIN caja c ON c.numoperacion = b.numoperacion "); sql.append(" AND b.numfoliosistema = c.numfoliosistema "); - sql.append(" AND c.fechorventa >= :data_inicial and c.fechorventa <= :data_final "); - if(parametros.get("EMPRESA_ID") != null){ + sql.append(" AND o.fecinc between :data_inicial and :data_final "); + if (parametros.get("EMPRESA_ID") != null) { sql.append(" inner join marca ma on ma.marca_id = c.marca_id"); sql.append(" inner join empresa e on e.empresa_id = ma.empresa_id and ma.empresa_id = " + parametros.get("EMPRESA_ID")); } if (parametros.get("NUMPUNTOVENTA") != null) { - sql.append(" INNER JOIN punto_venta p "); + sql.append(" INNER JOIN punto_venta p "); sql.append(" ON p.puntoventa_id = o.puntoventa_id "); sql.append(" and p.puntoventa_id IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")"); } sql.append(")"); - + sql.append(" AND c.numoperacion = b.numoperacion "); sql.append(" AND b.numfoliosistema = c.numfoliosistema "); sql.append(" AND cdt.caja_id = c.caja_id "); sql.append(" AND cdt.cajadetpago_id = ctj.cajadetpago_id "); sql.append(" AND cdt.formapago_id IN (2) "); sql.append(" AND b.puntoventa_id = ptovta.puntoventa_id),"); - //sql.append(" AND c.fechorventa >= :data_inicial and c.fechorventa <= :data_final),"); sql.append(" boletos_novos AS( "); - sql.append(" SELECT c.caja_id as caja_id_bn, b.boleto_id as boleto_id_bn, b.boletooriginal_id as boleto_id_original_bn, "); + sql.append(" SELECT c.caja_id as caja_id_bn, b.boleto_id as boleto_id_bn, b.boletooriginal_id as boleto_id_original_bn, "); sql.append(" b.puntoventa_id as puntoventa_id_bn, p.nombpuntoventa as nombpuntoventa_bn, c.fechorventa as fechorventa_bn, "); - sql.append(" (coalesce(c.preciopagado,0) + coalesce(c.importeoutros,0)+ coalesce(c.importepedagio,0)+ "); + sql.append(" (coalesce(c.preciopagado,0) + coalesce(c.importeoutros,0)+ coalesce(c.importepedagio,0)+ "); sql.append(" coalesce(c.importeseguro,0) + coalesce(c.importetaxaembarque,0)) as valor_venda_bn, "); - sql.append(" TO_CHAR(coalesce(o.VALOR_TARJETA,0),'FM9999999.90') as valor_cancelar_bn, "); - sql.append(" c.numfoliosistema as numfoliosistema_bn, o.fecmodif as datadevolucao_bn "); - sql.append(" FROM OCD o "); + sql.append(" TO_CHAR(coalesce(o.VALOR_TARJETA,0),'FM9999999.90') as valor_cancelar_bn, "); + sql.append(" c.numfoliosistema as numfoliosistema_bn, o.fecinc as datadevolucao_bn "); + sql.append(" FROM OCD o "); sql.append(" INNER JOIN boleto b ON o.BOLETO_ID = b.BOLETO_ID "); - sql.append(" INNER JOIN caja c ON c.numoperacion = b.numoperacion "); + sql.append(" INNER JOIN caja c ON c.numoperacion = b.numoperacion "); sql.append(" AND b.numfoliosistema = c.numfoliosistema "); - sql.append(" INNER JOIN punto_venta p "); + sql.append(" INNER JOIN punto_venta p "); sql.append(" ON p.puntoventa_id = o.puntoventa_id "); - sql.append(" AND o.VALOR_TARJETA <> 0 "); - sql.append(" AND c.fechorventa >= :data_inicial and c.fechorventa <= :data_final"); - if(parametros.get("EMPRESA_ID") != null){ + sql.append(" AND o.VALOR_TARJETA <> 0 "); + sql.append(" AND o.fecinc between :data_inicial and :data_final "); + if (parametros.get("EMPRESA_ID") != null) { sql.append(" inner join marca ma on ma.marca_id = c.marca_id"); sql.append(" inner join empresa e on e.empresa_id = ma.empresa_id and ma.empresa_id = " + parametros.get("EMPRESA_ID")); } if (parametros.get("NUMPUNTOVENTA") != null) { sql.append(" and p.puntoventa_id IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")"); } - + sql.append(")"); - + sql.append(" select * from (select distinct c.caja_id, p.nombpuntoventa, ctj.numtarjeta, c.fechorventa, ptovta.numsitef,"); sql.append(" (coalesce(c.preciopagado,0) + coalesce(c.importeoutros,0)+ coalesce(c.importepedagio,0)+ coalesce(c.importeseguro,0) + coalesce(c.importetaxaembarque,0)) as valor_venda,"); - sql.append(" TO_CHAR(coalesce(cf.importe,0) - (coalesce(cf.importe,0)*(ocd.PENALIZACION/100)),'FM9999999.90') as valor_cancelar, m.descmotivo, ctj.numautorizacion, ctj.nsu, c.numfoliosistema, c.fechorventa as datadevolucao "); - sql.append(" from caja c inner join punto_venta p on c.puntoventa_id = p.puntoventa_id "); + sql.append(" TO_CHAR(coalesce(cf.importe,0) - (coalesce(cf.importe,0)*(ocd.PENALIZACION/100)),'FM9999999.90') as valor_cancelar, m.descmotivo, ctj.numautorizacion, ctj.nsu, c.numfoliosistema, o.fecinc as datadevolucao "); + sql.append(" from caja c "); + sql.append(" inner join boleto b ON c.numoperacion = b.numoperacion AND b.numfoliosistema = c.numfoliosistema "); + sql.append(" inner join ocd o ON o.BOLETO_ID = b.BOLETO_ID "); + sql.append(" inner join punto_venta p on c.puntoventa_id = p.puntoventa_id "); sql.append(" inner join caja_formapago cf on c.caja_id = cf.caja_id "); sql.append(" inner join forma_pago f on cf.formapago_id = f.formapago_id "); sql.append(" inner join ptovta_empresa ptovta on c.puntoventa_id = ptovta.puntoventa_id"); sql.append(" inner join motivo_cancelacion m "); - sql.append(" on c.motivocancelacion_id = m.motivocancelacion_id and m.DESCMOTIVO like 'DEVOLUCAO' "); + sql.append(" on c.motivocancelacion_id = m.motivocancelacion_id and m.DESCMOTIVO like 'DEVOLUCAO' "); sql.append(" and f.formapago_id in (:formaPago1) "); sql.append(" inner join caja_det_pago cdt on cdt.caja_id = c.caja_id "); sql.append(" inner join caja_tarjeta ctj on cdt.cajadetpago_id = ctj.cajadetpago_id "); - sql.append(" and c.fechorventa >= :data_inicial and c.fechorventa <= :data_final "); + sql.append(" AND o.fecinc between :data_inicial and :data_final "); if (parametros.get("NUMPUNTOVENTA") != null) { sql.append(" and p.puntoventa_id IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")"); } sql.append(" inner join ocd_param ocd on ocd.empresa_id = p.empresa_id "); sql.append(" and p.empresa_id = ptovta.empresa_id "); sql.append(" inner join marca ma on ma.marca_id = c.marca_id"); - if(parametros.get("EMPRESA_ID") != null){ + if (parametros.get("EMPRESA_ID") != null) { sql.append(" inner join empresa e on e.empresa_id = ma.empresa_id and ma.empresa_id = " + parametros.get("EMPRESA_ID")); - } + } sql.append(")"); - + sql.append(" union "); - + sql.append(" select * from (select distinct c.caja_id, p.nombpuntoventa, ctj.numtarjeta, c.fechorventa, ptovta.numsitef,"); sql.append(" (coalesce(c.preciopagado,0) + coalesce(c.importeoutros,0)+ coalesce(c.importepedagio,0)+ coalesce(c.importeseguro,0) + coalesce(c.importetaxaembarque,0)) as valor_venda,"); sql.append(" TO_CHAR(coalesce(o.VALOR_TARJETA,0),'FM9999999.90') as valor_cancelar,"); - sql.append(" 'OCD' as descmotivo, ctj.numautorizacion, ctj.nsu, c.numfoliosistema, o.fecmodif as datadevolucao"); + sql.append(" 'OCD' as descmotivo, ctj.numautorizacion, ctj.nsu, c.numfoliosistema, o.fecinc as datadevolucao "); sql.append(" from OCD o"); sql.append(" inner join boleto b on o.BOLETO_ID = b.BOLETO_ID"); - sql.append(" inner join caja c on c.numoperacion = b.numoperacion and b.numfoliosistema = c.numfoliosistema"); - sql.append(" inner join caja_det_pago cdt ON cdt.caja_id = c.caja_id and cdt.formapago_id in (:formaPago1)"); - sql.append(" inner join caja_tarjeta ctj on cdt.cajadetpago_id = ctj.cajadetpago_id"); - sql.append(" inner join punto_venta p on p.puntoventa_id = o.puntoventa_id"); - sql.append(" inner join ptovta_empresa ptovta on b.puntoventa_id = ptovta.puntoventa_id"); + sql.append(" inner join caja c on c.numoperacion = b.numoperacion and b.numfoliosistema = c.numfoliosistema"); + sql.append(" inner join caja_det_pago cdt ON cdt.caja_id = c.caja_id and cdt.formapago_id in (:formaPago1)"); + sql.append(" inner join caja_tarjeta ctj on cdt.cajadetpago_id = ctj.cajadetpago_id"); + sql.append(" inner join punto_venta p on p.puntoventa_id = o.puntoventa_id"); + sql.append(" inner join ptovta_empresa ptovta on b.puntoventa_id = ptovta.puntoventa_id"); sql.append(" inner join marca m on m.marca_id = b.marca_id "); sql.append(" and m.EMPRESA_ID = ptovta.EMPRESA_ID "); - if(parametros.get("EMPRESA_ID") != null){ + if (parametros.get("EMPRESA_ID") != null) { sql.append(" inner join empresa e on e.empresa_id = m.empresa_id and m.empresa_id = " + parametros.get("EMPRESA_ID")); - } - sql.append(" and c.fechorventa >= :data_inicial and c.fechorventa <= :data_final "); + } + sql.append(" AND o.fecinc between :data_inicial and :data_final "); if (parametros.get("NUMPUNTOVENTA") != null) { sql.append(" and p.puntoventa_id IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")"); } - sql.append(" order by c.fechorventa )"); - + sql.append(" order by c.fechorventa, o.fecinc )"); + sql.append(" union "); - + sql.append(" select bn.caja_id_bn, bn.nombpuntoventa_bn, bo.numtarjeta_bo, bn.fechorventa_bn, "); - sql.append(" bo.numsitef_bo, bn.valor_venda_bn, bn.valor_cancelar_bn, 'OCD' as descmotivo, bo.numautorizacion_bo, bo.nsu_bo, "); + sql.append(" bo.numsitef_bo, bn.valor_venda_bn, bn.valor_cancelar_bn, 'OCD' as descmotivo, bo.numautorizacion_bo, bo.nsu_bo, "); sql.append(" numfoliosistema_bn, datadevolucao_bn "); sql.append(" FROM boletos_originais bo "); sql.append(" inner join boletos_novos bn on bo.boleto_id_bo = bn.boleto_id_original_bn "); - + return sql.toString(); }