diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoVendaCartao.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoVendaCartao.java index d4f321498..0827187d4 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoVendaCartao.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCancelamentoVendaCartao.java @@ -7,7 +7,6 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; -import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.service.ConstanteService; @@ -35,6 +34,7 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio { 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); + stmt.setInt("empresaId", Integer.valueOf(parametros.get("EMPRESA_ID")+"")); ResultSet rset = stmt.executeQuery(); @@ -63,9 +63,114 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio { @Override protected void processaParametros() throws Exception { } - + private String getSql() { StringBuilder sql = new StringBuilder(); + + /* Boletos apenas com venda e cancelamento direto com corrida */ + sql.append("SELECT DISTINCT C.CAJA_ID, B.BOLETO_ID, P.NOMBPUNTOVENTA, CTJ.NUMTARJETA, C.FECHORVENTA, PTOVTA.NUMSITEF, ") + .append("'OCD' AS DESCMOTIVO, CTJ.NUMAUTORIZACION, CTJ.NSU, C.NUMFOLIOSISTEMA, O.FECINC AS DATADEVOLUCAO, C.NUMOPERACION, ") + .append("(COALESCE(C.PRECIOPAGADO,0) + COALESCE(C.IMPORTEOUTROS,0)+ COALESCE(C.IMPORTEPEDAGIO,0)+ COALESCE(C.IMPORTESEGURO,0) + COALESCE(C.IMPORTETAXAEMBARQUE,0)) AS VALOR_VENDA, ") + .append("TO_CHAR(COALESCE(O.VALOR_TARJETA,0),'FM9999999.90') AS VALOR_CANCELAR, ") + .append("(SELECT SUM(COALESCE(B1.PRECIOPAGADO,0) + COALESCE(B1.IMPORTEOUTROS,0) + COALESCE(B1.IMPORTEPEDAGIO,0) + COALESCE(B1.IMPORTESEGURO,0) + COALESCE(B1.IMPORTETAXAEMBARQUE,0)) ") + .append(" FROM BOLETO B1 ") + .append(" WHERE B1.NUMOPERACION = B.NUMOPERACION ") + .append(" AND B1.BOLETOORIGINAL_ID IS NULL ") + .append(") AS VALOR_CESTA ") + .append("FROM OCD O ") + .append("INNER JOIN BOLETO B ON O.BOLETO_ID = B.BOLETO_ID ") + .append(" AND B.BOLETOORIGINAL_ID IS NULL ") + .append(" AND B.CORRIDA_ID IS NOT NULL ") + .append(" AND B.FECCORRIDA IS NOT NULL ") + .append("INNER JOIN CAJA C ON C.NUMOPERACION = B.NUMOPERACION ") + .append(" AND B.NUMASIENTO = C.NUMASIENTO ") + .append("INNER JOIN CAJA_DET_PAGO CDT ON CDT.CAJA_ID = C.CAJA_ID AND CDT.FORMAPAGO_ID = :formaPago1 ") + .append("INNER JOIN CAJA_TARJETA CTJ ON CDT.CAJADETPAGO_ID = CTJ.CAJADETPAGO_ID ") + .append("INNER JOIN PUNTO_VENTA P ON P.PUNTOVENTA_ID = B.PUNTOVENTA_ID ") + .append("INNER JOIN PTOVTA_EMPRESA PTOVTA ON B.PUNTOVENTA_ID = PTOVTA.PUNTOVENTA_ID ") + .append("INNER JOIN MARCA M ON M.MARCA_ID = B.MARCA_ID AND M.EMPRESA_ID = PTOVTA.EMPRESA_ID ") + .append("WHERE O.FECINC BETWEEN :data_inicial AND :data_final ") + .append("AND B.MARCA_ID = :empresaId "); + + if(parametros.get("NUMPUNTOVENTA") != null) { + sql.append("AND P.PUNTOVENTA_ID IN (") + .append(parametros.get("NUMPUNTOVENTA")) + .append(") "); + } + + sql.append("UNION ALL "); + + /* Boletos com entrega/transferencia/troca antes do cancelamento com corrida */ + sql.append("SELECT DISTINCT C.CAJA_ID, B.BOLETO_ID, P.NOMBPUNTOVENTA, CTJ.NUMTARJETA, C.FECHORVENTA, PTOVTA.NUMSITEF, ") + .append("'OCD' AS DESCMOTIVO, CTJ.NUMAUTORIZACION, CTJ.NSU, C.NUMFOLIOSISTEMA, O.FECINC AS DATADEVOLUCAO, C.NUMOPERACION, ") + .append("(COALESCE(C.PRECIOPAGADO,0) + COALESCE(C.IMPORTEOUTROS,0)+ COALESCE(C.IMPORTEPEDAGIO,0)+ COALESCE(C.IMPORTESEGURO,0) + COALESCE(C.IMPORTETAXAEMBARQUE,0)) AS VALOR_VENDA, ") + .append("TO_CHAR(COALESCE(O.VALOR_TARJETA,0),'FM9999999.90') AS VALOR_CANCELAR, ") + .append("(SELECT SUM(COALESCE(B1.PRECIOPAGADO,0) + COALESCE(B1.IMPORTEOUTROS,0) + COALESCE(B1.IMPORTEPEDAGIO,0) + COALESCE(B1.IMPORTESEGURO,0) + COALESCE(B1.IMPORTETAXAEMBARQUE,0)) ") + .append(" FROM BOLETO B1 ") + .append(" WHERE B1.NUMOPERACION = BR.NUMOPERACION ") + .append(" AND B1.BOLETOORIGINAL_ID IS NULL ") + .append(") AS VALOR_CESTA ") + .append("FROM OCD O ") + .append("INNER JOIN BOLETO B ON O.BOLETO_ID = B.BOLETO_ID ") + .append("INNER JOIN BOLETO BR ON BR.BOLETO_ID = B.BOLETOORIGINAL_ID ") + .append(" AND BR.CORRIDA_ID IS NOT NULL ") + .append(" AND BR.FECCORRIDA IS NOT NULL ") + .append("INNER JOIN CAJA C ON C.NUMOPERACION = BR.NUMOPERACION ") + .append(" AND BR.NUMASIENTO = C.NUMASIENTO ") + .append("INNER JOIN CAJA_DET_PAGO CDT ON CDT.CAJA_ID = C.CAJA_ID AND CDT.FORMAPAGO_ID = :formaPago1 ") + .append("INNER JOIN CAJA_TARJETA CTJ ON CDT.CAJADETPAGO_ID = CTJ.CAJADETPAGO_ID ") + .append("INNER JOIN PUNTO_VENTA P ON P.PUNTOVENTA_ID = BR.PUNTOVENTA_ID ") + .append("INNER JOIN PTOVTA_EMPRESA PTOVTA ON BR.PUNTOVENTA_ID = PTOVTA.PUNTOVENTA_ID ") + .append("INNER JOIN MARCA M ON M.MARCA_ID = BR.MARCA_ID AND M.EMPRESA_ID = PTOVTA.EMPRESA_ID ") + .append("WHERE O.FECINC BETWEEN :data_inicial AND :data_final ") + .append("AND BR.MARCA_ID = :empresaId "); + + if(parametros.get("NUMPUNTOVENTA") != null) { + sql.append("AND P.PUNTOVENTA_ID IN (") + .append(parametros.get("NUMPUNTOVENTA")) + .append(") "); + } + + sql.append("UNION ALL "); + + /* Boletos apenas com venda e cancelamento direto sem corrida */ + sql.append("SELECT DISTINCT C.CAJA_ID, B.BOLETO_ID, P.NOMBPUNTOVENTA, CTJ.NUMTARJETA, C.FECHORVENTA, PTOVTA.NUMSITEF, ") + .append("'OCD' AS DESCMOTIVO, CTJ.NUMAUTORIZACION, CTJ.NSU, C.NUMFOLIOSISTEMA, O.FECINC AS DATADEVOLUCAO, C.NUMOPERACION, ") + .append("(COALESCE(C.PRECIOPAGADO,0) + COALESCE(C.IMPORTEOUTROS,0)+ COALESCE(C.IMPORTEPEDAGIO,0)+ COALESCE(C.IMPORTESEGURO,0) + COALESCE(C.IMPORTETAXAEMBARQUE,0)) AS VALOR_VENDA, ") + .append("TO_CHAR(COALESCE(O.VALOR_TARJETA,0),'FM9999999.90') AS VALOR_CANCELAR, ") + .append("(SELECT SUM(COALESCE(B1.PRECIOPAGADO,0) + COALESCE(B1.IMPORTEOUTROS,0) + COALESCE(B1.IMPORTEPEDAGIO,0) + COALESCE(B1.IMPORTESEGURO,0) + COALESCE(B1.IMPORTETAXAEMBARQUE,0)) ") + .append(" FROM BOLETO B1 ") + .append(" WHERE B1.NUMOPERACION = B.NUMOPERACION ") + .append(" AND B1.BOLETOORIGINAL_ID IS NULL ") + .append(") AS VALOR_CESTA ") + .append("FROM OCD O ") + .append("INNER JOIN BOLETO B ON O.BOLETO_ID = B.BOLETO_ID ") + .append(" AND B.BOLETOORIGINAL_ID IS NULL ") + .append(" AND B.CORRIDA_ID IS NULL ") + .append(" AND B.FECCORRIDA IS NULL ") + .append("INNER JOIN CAJA C ON C.NUMOPERACION = B.NUMOPERACION ") + .append(" AND B.NUMFOLIOSISTEMA = C.NUMFOLIOSISTEMA ") + .append("INNER JOIN CAJA_DET_PAGO CDT ON CDT.CAJA_ID = C.CAJA_ID AND CDT.FORMAPAGO_ID = :formaPago1 ") + .append("INNER JOIN CAJA_TARJETA CTJ ON CDT.CAJADETPAGO_ID = CTJ.CAJADETPAGO_ID ") + .append("INNER JOIN PUNTO_VENTA P ON P.PUNTOVENTA_ID = B.PUNTOVENTA_ID ") + .append("INNER JOIN PTOVTA_EMPRESA PTOVTA ON B.PUNTOVENTA_ID = PTOVTA.PUNTOVENTA_ID ") + .append("INNER JOIN MARCA M ON M.MARCA_ID = B.MARCA_ID AND M.EMPRESA_ID = PTOVTA.EMPRESA_ID ") + .append("WHERE O.FECINC BETWEEN :data_inicial AND :data_final ") + .append("AND B.MARCA_ID = :empresaId "); + + if(parametros.get("NUMPUNTOVENTA") != null) { + sql.append("AND P.PUNTOVENTA_ID IN (") + .append(parametros.get("NUMPUNTOVENTA")) + .append(") "); + } + + sql.append("ORDER BY 3, 5 "); + + return sql.toString(); + } + + /*private String getSql() { + StringBuilder sql = new StringBuilder(); //Busca os boletos originais dos boletos que foram geradas OCDS //Esses boletos sofreram transferência. //O intuito dessa query é recuperar os dados originais de cartões de crédito @@ -176,7 +281,7 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio { 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 c.numfoliosistema = b.numfoliosistema "); + //sql.append(" and c.numfoliosistema = b.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 = b.puntoventa_id"); @@ -253,6 +358,6 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio { return sql.toString(); - } + }*/ } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoVendaCartao.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoVendaCartao.jasper index 5e9ac737a..8a70f9dc1 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoVendaCartao.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoVendaCartao.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoVendaCartao.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoVendaCartao.jrxml index 9c79fc384..88535a3df 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoVendaCartao.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCancelamentoVendaCartao.jrxml @@ -1,6 +1,6 @@ - + @@ -32,7 +32,7 @@ - + @@ -40,7 +40,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -64,7 +64,7 @@ - + @@ -72,14 +72,14 @@ - + - + @@ -87,7 +87,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -103,16 +103,16 @@ - + - - - + + + @@ -127,125 +127,125 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -253,90 +253,90 @@ - - + + - + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - - + + - + @@ -349,7 +349,7 @@ - + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCancelamentoVendaCartaoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCancelamentoVendaCartaoController.java index 877eeabc9..2f9f6476c 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCancelamentoVendaCartaoController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCancelamentoVendaCartaoController.java @@ -121,23 +121,21 @@ public class RelatorioCancelamentoVendaCartaoController extends MyGenericForward } filtro.append("Agência: "); - String puntoVentaIds = ""; String puntoVentas = ""; List lsPuntoVentaSelecionados = new ArrayList(Arrays.asList(puntoVentaSelList.getData())); if (lsPuntoVentaSelecionados.isEmpty()) { puntoVentas = "Todas"; } else { + StringBuilder puntoVentaIds = new StringBuilder(); for (int i = 0; i < lsPuntoVentaSelecionados.size(); i++) { PuntoVenta puntoVenta = lsPuntoVentaSelecionados.get(i); puntoVentas = puntoVentas + puntoVenta.getNombpuntoventa() + ","; - - puntoVentaIds = puntoVentaIds + puntoVenta.getPuntoventaId() + ","; + if(puntoVentaIds.length() > 0) { + puntoVentaIds.append(","); + } + puntoVentaIds.append(puntoVenta.getPuntoventaId()); } - - // removendo ultima virgula - puntoVentaIds = puntoVentaIds.substring(0, puntoVentaIds.length() - 1); - puntoVentas = puntoVentas.substring(0, puntoVentas.length() - 1); - parametros.put("NUMPUNTOVENTA", puntoVentaIds); + parametros.put("NUMPUNTOVENTA", puntoVentaIds.toString()); } filtro.append(puntoVentas).append(";"); parametros.put("FILTROS", filtro.toString());