diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoVendaCartao.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoVendaCartao.java index dcbb7549e..6352f5076 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoVendaCartao.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoVendaCartao.java @@ -60,7 +60,60 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio { } private String getSql() { - StringBuilder sql = new StringBuilder(); + StringBuilder sql = new StringBuilder(); + sql.append(" WITH boletos_originais AS "); + sql.append(" (SELECT distinct b.boleto_id as boleto_id_bo, ctj.numtarjeta as numtarjeta_bo, ptovta.numsitef as numsitef_bo, "); + 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(" 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(" 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(" 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(" 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.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(" 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(" 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(" 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 "); @@ -108,7 +161,15 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio { sql.append(" and p.puntoventa_id IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")"); } sql.append(" order by c.fechorventa )"); - + + 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(" 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(); }