fixes bug 6555 correções diversas(Nome do estabelecimento do Ponto de Venda, Data da compra de acordo com o boleto antigo no caso do mesmo ter sofrido transferência, Coluna com valor total da compra incluindo o valor do seguro opcional(tabela eventos extra).

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@51517 d1611594-4594-4d17-8e1d-87c2c4800839
master
igor.rodrigo 2015-12-23 17:21:24 +00:00
parent 996283e7c4
commit 6d37c76826
1 changed files with 75 additions and 24 deletions

View File

@ -65,7 +65,7 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio {
//Esses boletos sofreram transferência.
//O intuito dessa query é recuperar os dados originais de cartões de crédito
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(" (SELECT distinct b.boleto_id as boleto_id_bo, ctj.numtarjeta as numtarjeta_bo, ptovta.numsitef as numsitef_bo, c.caja_id, c.fechorventa AS fechorventa_bo, ");
sql.append(" CASE WHEN ctj.numautorizacion IS NULL THEN '-' ELSE ctj.numautorizacion END AS numautorizacion_bo, ");
sql.append(" ctj.nsu as nsu_bo, c.numoperacion AS numoperacion ");
sql.append(" FROM boleto b, caja_det_pago cdt, caja c, caja_tarjeta ctj, ptovta_empresa ptovta ");
@ -76,22 +76,56 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio {
sql.append(" AND b.numfoliosistema = c.numfoliosistema ");
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"));
sql.append(" INNER JOIN marca ma on ma.marca_id = b.marca_id");
sql.append(" 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(" AND o.puntoventa_id IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")");
}
sql.append(" AND b.boletooriginal_id IS NOT NULL ");
sql.append(")");
sql.append(" AND c.numoperacion = b.numoperacion ");
//sql.append(" AND b.numfoliosistema = c.numfoliosistema ");
sql.append(" AND c.numoperacion = b.numoperacion ");
//Para venda pela internet aparecer é preciso descomentar a linha abaixo
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 b.puntoventa_id = ptovta.puntoventa_id ");
if (parametros.get("EMPRESA_ID") != null) {
//Para venda pela internet aparecer é preciso descomentar a linha abaixo
sql.append(" AND ptovta.empresa_id = " + parametros.get("EMPRESA_ID"));
}
sql.append("), ");
//Busca os boletos que foram vendidos pela internet(boleto originais)
sql.append(" boletos_o_venda_internet AS( ");
sql.append(" SELECT DISTINCT b.boleto_id AS boleto_id_bo_vi, ctj.numtarjeta AS numtarjeta_bo_vi, ");
sql.append(" ptovta.numsitef AS numsitef_bo_vi, c.caja_id, c.fechorventa AS fechorventa_bo_vi, ");
sql.append(" CASE WHEN ctj.numautorizacion IS NULL THEN '-' ELSE ctj.numautorizacion END AS numautorizacion_bo_vi, ");
sql.append(" ctj.nsu AS nsu_bo_vi, c.numoperacion AS numoperacion FROM boleto b, caja_det_pago cdt, caja c, ");
sql.append(" caja_tarjeta ctj, ptovta_empresa ptovta WHERE b.boleto_id IN(SELECT b.boletooriginal_id ");
sql.append(" FROM OCD o INNER JOIN boleto b ON o.BOLETO_ID = b.BOLETO_ID INNER JOIN caja c ON c.numoperacion = b.numoperacion ");
sql.append(" AND b.numfoliosistema = c.numfoliosistema ");
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 = b.marca_id");
sql.append(" AND ma.empresa_id = " + parametros.get("EMPRESA_ID"));
}
if (parametros.get("NUMPUNTOVENTA") != null) {
sql.append(" AND o.puntoventa_id IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")");
}
sql.append(" AND b.boletooriginal_id IS NOT NULL ");
sql.append(")");
sql.append(" AND c.numoperacion = b.numoperacion ");
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 b.feccorrida = c.feccorrida ");
sql.append(" AND b.corrida_id = c.corrida_id ");
sql.append(" AND b.numasiento = c.numasiento ");
sql.append(" AND b.puntoventa_id = 301 ),"); //É o código do puntoventa de compras pela internet
//Busca os boletos novos após a transferência e geração de OCD
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, ");
@ -105,12 +139,12 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio {
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(" ON p.puntoventa_id = b.puntoventa_id ");
//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"));
sql.append(" INNER JOIN marca ma on ma.marca_id = b.marca_id");
sql.append(" AND ma.empresa_id = " + parametros.get("EMPRESA_ID"));
}
if (parametros.get("NUMPUNTOVENTA") != null) {
sql.append(" and p.puntoventa_id IN (" + parametros.get("NUMPUNTOVENTA").toString() + ")");
@ -118,7 +152,7 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio {
sql.append("),");
//Busca todas as OCD's exceto os boletos que foram transferidos antes da geração da OCD
sql.append(" ocds AS(select distinct c.caja_id, p.nombpuntoventa, ctj.numtarjeta, c.fechorventa, ptovta.numsitef,");
sql.append(" ocds AS(select distinct c.caja_id, b.boleto_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.fecinc as datadevolucao, c.numoperacion ");
@ -127,7 +161,7 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio {
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 punto_venta p on p.puntoventa_id = b.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 ");
@ -143,16 +177,24 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio {
sql.append(" ocds_total_compra AS ");
//Busca com base no numoperacion da consulta "ocds" os valores totais da compra(Cesta de compras)
sql.append(" (SELECT c.numoperacion AS numoperacion_cc,");
sql.append(" SUM((COALESCE(c.preciopagado,0) + COALESCE(c.importeoutros,0)+ COALESCE(c.importepedagio,0)+ COALESCE(c.importeseguro,0) + COALESCE(c.importetaxaembarque,0)))AS valor_cesta ");
sql.append(" FROM CAJA c WHERE c.numoperacion IN (SELECT c.numoperacion FROM ocds)");
sql.append(" SUM((COALESCE(c.preciopagado,0) + COALESCE(c.importeoutros,0)+ COALESCE(c.importepedagio,0)+ COALESCE(c.importeseguro,0) + COALESCE(c.importetaxaembarque,0) + COALESCE(e.impingreso,0)))AS valor_cesta ");
sql.append(" FROM CAJA c INNER JOIN ocds o on c.caja_id = o.caja_id ");
sql.append(" INNER JOIN evento_extra e on e.boleto_id = o.boleto_id ");
sql.append(" GROUP BY c.numoperacion),");
sql.append(" total_compra_bo_originais AS");
//Busca com base no numoperacion da consulta "boletos_originais" os valores totais da compra(Cesta de compras)
sql.append(" (SELECT c.numoperacion AS numoperacion_cc, ");
sql.append(" SUM((COALESCE(c.preciopagado,0) + COALESCE(c.importeoutros,0)+ COALESCE(c.importepedagio,0)+ COALESCE(c.importeseguro,0) + COALESCE(c.importetaxaembarque,0)))AS valor_cesta ");
sql.append(" SUM((COALESCE(c.preciopagado,0) + COALESCE(c.importeoutros,0)+ COALESCE(c.importepedagio,0)+ COALESCE(c.importeseguro,0) + COALESCE(c.importetaxaembarque,0) + COALESCE(e.impingreso,0)))AS valor_cesta ");
sql.append(" FROM CAJA c");
sql.append(" WHERE c.numoperacion IN (SELECT c.numoperacion FROM boletos_originais) ");
sql.append(" GROUP BY c.numoperacion)");
sql.append(" INNER JOIN boletos_originais bo on c.caja_id = bo.caja_id ");
sql.append(" LEFT JOIN evento_extra e on e.boleto_id = bo.boleto_id_bo ");
sql.append(" GROUP BY c.numoperacion), ");
//Busca com base no numoperacion da consulta "boletos_o_venda_internet" os valores totais da compra(Cesta de compras)
sql.append(" total_compra_bo_internet AS ");
sql.append(" (SELECT c.numoperacion AS numoperacion_cc, SUM((COALESCE(c.preciopagado,0) + COALESCE(c.importeoutros,0)+ COALESCE(c.importepedagio,0)+ ");
sql.append(" COALESCE(c.importeseguro,0) + COALESCE(c.importetaxaembarque,0) + COALESCE(e.impingreso,0)))AS valor_cesta ");
sql.append(" FROM CAJA c INNER JOIN boletos_o_venda_internet bo ON c.caja_id = bo.caja_id LEFT JOIN evento_extra e");
sql.append(" ON e.boleto_id = bo.boleto_id_bo_vi GROUP BY c.numoperacion)");
//Realiza o join entre as Views 'ocds' e ocds_total_compra afim de obter o total da cesta de compras
sql.append(" SELECT caja_id, nombpuntoventa, numtarjeta, fechorventa, numsitef, valor_venda, valor_cancelar, ");
@ -161,12 +203,11 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio {
sql.append(" INNER JOIN ocds_total_compra ocdst ");
sql.append(" ON ocds.numoperacion = ocdst.numoperacion_cc ");
sql.append(" UNION ");
sql.append(" UNION ");
//Realiza o join entre as Views 'boletos_originais' e total_compra_bo_originais afim de obter o total da cesta de compras
//Realiza também o join com as Views boletos_novos com o intuito de exibir os boletos transferidos os quais foram
//geradas OCD´s
sql.append(" SELECT bn.caja_id_bn, bn.nombpuntoventa_bn, bo.numtarjeta_bo, bn.fechorventa_bn, ");
sql.append(" SELECT bn.caja_id_bn, bn.nombpuntoventa_bn, bo.numtarjeta_bo, bo.fechorventa_bo, ");
sql.append(" bo.numsitef_bo, bn.valor_venda_bn, bn.valor_cancelar_bn, 'OCD' AS descmotivo, ");
sql.append(" bo.numautorizacion_bo, bo.nsu_bo, numfoliosistema_bn, datadevolucao_bn, total_c_bo_originais.valor_cesta");
sql.append(" FROM boletos_originais bo ");
@ -174,9 +215,19 @@ public class RelatorioCancelamentoVendaCartao extends Relatorio {
sql.append(" ON total_c_bo_originais.numoperacion_cc = bo.numoperacion ");
sql.append(" INNER JOIN boletos_novos bn ");
sql.append(" ON bo.boleto_id_bo = bn.boleto_id_original_bn ");
sql.append(" UNION ");
//Realiza o join entre as Views 'boletos_o_venda_internet' e total_compra_bo_internet afim de obter o total da cesta de compras
//Realiza também o join com as Views boletos_novos com o intuito de exibir os boletos novos os quais foram
//geradas OCD´s
sql.append(" SELECT bn.caja_id_bn, bn.nombpuntoventa_bn, bo.numtarjeta_bo_vi, bo.fechorventa_bo_vi, bo.numsitef_bo_vi, ");
sql.append(" bn.valor_venda_bn, bn.valor_cancelar_bn, 'OCD' AS descmotivo, bo.numautorizacion_bo_vi, bo.nsu_bo_vi, ");
sql.append(" numfoliosistema_bn, datadevolucao_bn, total_c_bo_internet.valor_cesta FROM boletos_o_venda_internet bo ");
sql.append(" INNER JOIN total_compra_bo_internet total_c_bo_internet ON total_c_bo_internet.numoperacion_cc = bo.numoperacion ");
sql.append(" INNER JOIN boletos_novos bn ON bo.boleto_id_bo_vi = bn.boleto_id_original_bn ");
return sql.toString();
}