From 62386d72354d4840e6025c4489b99e10d25c9ee7 Mon Sep 17 00:00:00 2001 From: julio Date: Thu, 20 Jul 2017 17:50:10 +0000 Subject: [PATCH] fixes bug #9305 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@71666 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/hibernate/FiscalHibernateDAO.java | 220 +++++++++++++----- 1 file changed, 165 insertions(+), 55 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index f3dfdedbe..e7da5e19d 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -576,69 +576,175 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO } private String sqlFiscaisECF(boolean isEstadoTodos, boolean isBoletoHist) { - + StringBuilder sql = new StringBuilder(); - sql.append("SELECT r4.numserie20 as numImpressora, "); - sql.append(" r4.coo as coo, "); - sql.append(" r4.imptotalliquido as valorTotal, "); - sql.append(" r4.datamov as dataEmissao, "); - sql.append(" r4.cpfcnpjcliente as cnpjCliente, "); - sql.append(" b.boleto_id as boletoId, "); - sql.append(" m.empresa_id as empresaId, "); - sql.append(" co.codibge as origenId, "); - sql.append(" eo.cveestado as origenUf, "); - sql.append(" cd.codibge as destinoId, "); - sql.append(" ed.cveestado as destinoUf, "); - sql.append(" fi.numcnpj as cnpjImpressora, "); - sql.append(" fi.numserie as numpdv, "); - sql.append(" r5.totparcial as repTributado, "); - sql.append(" r5.imptotalliquido as valorItem, "); - sql.append(" r5.tipopassagem as tipoPassagem, "); - sql.append(" r5.numitem as numItem, "); - sql.append(" r5.codproduto as codProduto, "); - sql.append(" fi.modelo as modeloImpressora, "); - sql.append(" r4.usuario_id as numCaixa, "); - sql.append(" b.preciopagado as importetarifa, "); - sql.append(" b.importetaxaembarque as importetaxaembarque, "); - sql.append(" b.importepedagio as importepedagio, "); - sql.append(" b.importeseguro as importeseguro, "); - sql.append(" cs.descclase as claseServicio, "); - sql.append(" translate(fi.numcnpj, ' / - . ', ' ') as cnpjEcf, "); - sql.append(" ei.icms as impostoEstado, "); - sql.append(" 'N' as status, "); - sql.append(" r4.indcancelamento as indcancelamento "); + sql.append("SELECT numImpressora, "); + sql.append(" coo, "); + sql.append(" valorTotal, "); + sql.append(" dataEmissao, "); + sql.append(" cnpjCliente, "); + sql.append(" boletoId, "); + sql.append(" empresaId, "); + sql.append(" origenId, "); + sql.append(" origenUf, "); + sql.append(" destinoId, "); + sql.append(" destinoUf, "); + sql.append(" cnpjImpressora, "); + sql.append(" numpdv, "); + sql.append(" repTributado, "); + sql.append(" valorItem, "); + sql.append(" tipoPassagem, "); + sql.append(" numItem, "); + sql.append(" tipoPassagem, "); + sql.append(" numItem, "); + sql.append(" codProduto, "); + sql.append(" modeloImpressora, "); + sql.append(" numCaixa, "); + sql.append(" importetarifa, "); + sql.append(" importetaxaembarque, "); + sql.append(" importepedagio, "); + sql.append(" importeseguro, "); + sql.append(" claseServicio, "); + sql.append(" cnpjEcf, "); + sql.append(" impostoEstado, "); + sql.append(" status, "); + sql.append(" indcancelamento "); + sql.append(" "); + sql.append("FROM (SELECT r4.numserie20 AS numImpressora, "); + sql.append(" r4.coo AS coo, "); + sql.append(" r4.imptotalliquido AS valorTotal, "); + sql.append(" r4.datamov AS dataEmissao, "); + sql.append(" r4.cpfcnpjcliente AS cnpjCliente, "); + sql.append(" b.boleto_id AS boletoId, "); + sql.append(" m.empresa_id AS empresaId, "); + sql.append(" co.codibge AS origenId, "); + sql.append(" eo.cveestado AS origenUf, "); + sql.append(" cd.codibge AS destinoId, "); + sql.append(" ed.cveestado AS destinoUf, "); + sql.append(" fi.numcnpj AS cnpjImpressora, "); + sql.append(" fi.numserie AS numpdv, "); + sql.append(" r5.totparcial AS repTributado, "); + sql.append(" r5.imptotalliquido AS valorItem, "); + sql.append(" r5.tipopassagem AS tipoPassagem, "); + sql.append(" r5.numitem AS numItem, "); + sql.append(" r5.codproduto AS codProduto, "); + sql.append(" fi.modelo AS modeloImpressora, "); + sql.append(" r4.usuario_id AS numCaixa, "); + sql.append(" b.preciopagado AS importetarifa, "); + sql.append(" b.importetaxaembarque AS importetaxaembarque, "); + sql.append(" b.importepedagio AS importepedagio, "); + sql.append(" b.importeseguro AS importeseguro, "); + sql.append(" cs.descclase AS claseServicio, "); + sql.append(" translate(fi.numcnpj, ' / - . ', ' ') AS cnpjEcf, "); + sql.append(" ei.icms AS impostoEstado, "); + sql.append(" 'N' AS status, "); + sql.append(" r4.indcancelamento AS indcancelamento "); sql.append(" FROM fiscal_r4 r4 "); - sql.append(" LEFT JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 AND r4.coo = r5.coo "); - sql.append(" AND r4.datamov = r5.datamov AND r4.contador = r5.contador "); - sql.append(" LEFT JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 "); + sql.append(" LEFT JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 "); + sql.append(" AND r4.coo = r5.coo "); + sql.append(" AND r4.datamov = r5.datamov "); + sql.append(" AND r4.contador = r5.contador "); + sql.append(" LEFT JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 "); if (isBoletoHist) sql.append(" INNER JOIN boleto_hist b ON b.boleto_id = r4.boleto_id "); else sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_id "); - - sql.append(" INNER JOIN marca m ON m.marca_id = b.marca_id "); - sql.append(" INNER JOIN clase_servicio cs ON cs.claseservicio_id = b.claseservicio_id "); - sql.append(" LEFT JOIN alias_servico ase ON ase.origen_id = b.origen_id "); - sql.append(" and ase.destino_id = b.destino_id and ase.ruta_id = b.ruta_id and ase.activo = 1 and ase.corrida_id is null "); - sql.append(" INNER JOIN parada o ON coalesce(ase.aliasorigen_id, b.origen_id) = o.parada_id "); - sql.append(" INNER JOIN ciudad co ON o.ciudad_id = co.ciudad_id "); - sql.append(" INNER JOIN estado eo ON eo.estado_id = co.estado_id "); - sql.append(" LEFT JOIN empresa_imposto ei ON ei.estado_id = eo.estado_id AND b.marca_id = ei.empresa_id "); - sql.append(" INNER JOIN parada d ON coalesce(ase.aliasdestino_id, b.destino_id) = d.parada_id "); - sql.append(" INNER JOIN ciudad cd ON d.ciudad_id = cd.ciudad_id "); - sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id "); - sql.append(" WHERE r4.datamov BETWEEN ? AND ? "); - sql.append(" AND m.empresa_id = ? "); + + // sql.append(" INNER JOIN boleto_hist b ON b.boleto_id = r4.boleto_id and fi.numserie = b.serieimpfiscal "); + sql.append(" INNER JOIN marca m ON m.marca_id = b.marca_id "); + sql.append(" INNER JOIN clase_servicio cs ON cs.claseservicio_id = b.claseservicio_id "); + sql.append(" LEFT JOIN alias_servico ase ON ase.origen_id = b.origen_id "); + sql.append(" AND ase.destino_id = b.destino_id "); + sql.append(" AND ase.ruta_id = b.ruta_id "); + sql.append(" AND ase.activo = 1 "); + sql.append(" AND ase.corrida_id IS NULL "); + sql.append(" INNER JOIN parada o ON coalesce(ase.aliasorigen_id, b.origen_id) = o.parada_id "); + sql.append(" INNER JOIN ciudad co ON o.ciudad_id = co.ciudad_id "); + sql.append(" INNER JOIN estado eo ON eo.estado_id = co.estado_id "); + sql.append(" LEFT JOIN empresa_imposto ei ON ei.estado_id = eo.estado_id "); + sql.append(" AND b.marca_id = ei.empresa_id "); + sql.append(" INNER JOIN parada d ON coalesce(ase.aliasdestino_id, b.destino_id) = d.parada_id "); + sql.append(" INNER JOIN ciudad cd ON d.ciudad_id = cd.ciudad_id "); + sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id "); + sql.append(" WHERE r4.datamov BETWEEN ? AND ? "); + sql.append(" AND m.empresa_id = ? "); sql.append(isEstadoTodos ? "" : " AND eo.estado_id = ? "); - sql.append(" AND (r4.indcancelamento = 'N' OR (r4.indcancelamento = 'S' AND "); - sql.append(" (SELECT r3.numserie20 FROM fiscal_r3 r3 "); - sql.append(" WHERE r3.numserie20 = r4.numserie20 AND r3.datamov = r4.datamov "); - sql.append(" AND r3.totparcial = 'Can-T') IS NULL) ) "); - sql.append(" ORDER BY r4.datamov, "); - sql.append(" r4.numserie20, "); - sql.append(" r4.coo, "); - sql.append(" r5.numitem "); + sql.append(" AND (r4.indcancelamento = 'N') "); + sql.append(" "); + sql.append(" union all "); + sql.append(" "); + sql.append(" SELECT r4.numserie20 AS numImpressora, "); + sql.append(" r4.coo AS coo, "); + sql.append(" r4.imptotalliquido AS valorTotal, "); + sql.append(" r4.datamov AS dataEmissao, "); + sql.append(" r4.cpfcnpjcliente AS cnpjCliente, "); + sql.append(" b.boleto_id AS boletoId, "); + sql.append(" m.empresa_id AS empresaId, "); + sql.append(" co.codibge AS origenId, "); + sql.append(" eo.cveestado AS origenUf, "); + sql.append(" cd.codibge AS destinoId, "); + sql.append(" ed.cveestado AS destinoUf, "); + sql.append(" fi.numcnpj AS cnpjImpressora, "); + sql.append(" fi.numserie AS numpdv, "); + sql.append(" r5.totparcial AS repTributado, "); + sql.append(" r5.imptotalliquido AS valorItem, "); + sql.append(" r5.tipopassagem AS tipoPassagem, "); + sql.append(" r5.numitem AS numItem, "); + sql.append(" r5.codproduto AS codProduto, "); + sql.append(" fi.modelo AS modeloImpressora, "); + sql.append(" r4.usuario_id AS numCaixa, "); + sql.append(" b.preciopagado AS importetarifa, "); + sql.append(" b.importetaxaembarque AS importetaxaembarque, "); + sql.append(" b.importepedagio AS importepedagio, "); + sql.append(" b.importeseguro AS importeseguro, "); + sql.append(" cs.descclase AS claseServicio, "); + sql.append(" translate(fi.numcnpj, ' / - . ', ' ') AS cnpjEcf, "); + sql.append(" ei.icms AS impostoEstado, "); + sql.append(" 'N' AS status, "); + sql.append(" r4.indcancelamento AS indcancelamento "); + sql.append(" FROM fiscal_r4 r4 "); + sql.append(" LEFT JOIN fiscal_r5 r5 ON r4.numserie20 = r5.numserie20 "); + sql.append(" AND r4.coo = r5.coo "); + sql.append(" AND r4.datamov = r5.datamov "); + sql.append(" AND r4.contador = r5.contador "); + sql.append(" LEFT JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 "); + + if (isBoletoHist) + sql.append(" INNER JOIN boleto_hist b ON b.boleto_id = r4.boleto_id "); + else + sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_id "); + + // sql.append(" INNER JOIN boleto_hist b ON b.boleto_id = r4.boleto_id "); + sql.append(" INNER JOIN marca m ON m.marca_id = b.marca_id "); + sql.append(" INNER JOIN clase_servicio cs ON cs.claseservicio_id = b.claseservicio_id "); + sql.append(" LEFT JOIN alias_servico ase ON ase.origen_id = b.origen_id "); + sql.append(" AND ase.destino_id = b.destino_id "); + sql.append(" AND ase.ruta_id = b.ruta_id "); + sql.append(" AND ase.activo = 1 "); + sql.append(" AND ase.corrida_id IS NULL "); + sql.append(" INNER JOIN parada o ON coalesce(ase.aliasorigen_id, b.origen_id) = o.parada_id "); + sql.append(" INNER JOIN ciudad co ON o.ciudad_id = co.ciudad_id "); + sql.append(" INNER JOIN estado eo ON eo.estado_id = co.estado_id "); + sql.append(" LEFT JOIN empresa_imposto ei ON ei.estado_id = eo.estado_id "); + sql.append(" AND b.marca_id = ei.empresa_id "); + sql.append(" INNER JOIN parada d ON coalesce(ase.aliasdestino_id, b.destino_id) = d.parada_id "); + sql.append(" INNER JOIN ciudad cd ON d.ciudad_id = cd.ciudad_id "); + sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id "); + sql.append(" WHERE r4.datamov BETWEEN ? AND ? "); + sql.append(" AND m.empresa_id = ? "); + sql.append(isEstadoTodos ? "" : " AND eo.estado_id = ? "); + sql.append(" and (r4.indcancelamento = 'S' "); + sql.append(" AND exists (SELECT r3.numserie20 "); + sql.append(" FROM fiscal_r3 r3 "); + sql.append(" WHERE r3.numserie20 = r4.numserie20 "); + sql.append(" AND r3.datamov = r4.datamov "); + sql.append(" AND r3.totparcial = 'Can-T'))) QY "); + sql.append("ORDER BY QY.dataEmissao, "); + sql.append(" QY.numImpressora, "); + sql.append(" QY.coo, "); + sql.append(" QY.numItem;"); + return sql.toString(); } @@ -883,6 +989,10 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO if (!isEstadoTodos(estadoId)) stmt.setInt(4, estadoId); + stmt.setTimestamp(4, new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime())); + stmt.setTimestamp(5, new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime())); + stmt.setInt(6, empresaId); + List list = new ArrayList(); ImportacionFiscalVO fiscal = null; String codProduto = null;