diff --git a/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java b/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java index cd2ccd4d4..30e0a70fe 100644 --- a/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java @@ -1,5 +1,6 @@ package com.rjconsultores.ventaboletos.dao; +import java.sql.Connection; import java.sql.SQLException; import java.util.Date; import java.util.List; @@ -14,12 +15,12 @@ public interface FiscalDAO { public int gerarRegistroP2_F2(List lsEsquemaCorrida, Date dataDe, Date dataAte); - public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isCancelados) throws SQLException; + public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isCancelados, Connection connection) throws SQLException; - public List buscaDatosFiscaisReducaoZ(Date inicio, Date fim, Integer empresaId) throws SQLException; + public List buscaDatosFiscaisReducaoZ(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException; - public List buscaDatosFiscaisECFManual(Date inicio, Date fim, Integer empresaId) throws SQLException; + public List buscaDatosFiscaisECFManual(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException; - public List buscaDatosNaoFiscais(Date inicio, Date fim, Integer empresaId) throws SQLException; + public List buscaDatosNaoFiscais(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException; } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index 9db7c84b9..8f48323a4 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -9,13 +9,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; -import javax.sql.DataSource; - import org.apache.log4j.Logger; -import org.hibernate.Query; -import org.hibernate.SessionFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.FiscalDAO; @@ -30,296 +24,279 @@ import com.rjconsultores.ventaboletos.vo.impressaofiscal.ItemFiscalVO; import com.rjconsultores.ventaboletos.vo.impressaofiscal.SituacaoTributaria; @Repository("fiscalDAO") -public class FiscalHibernateDAO extends GenericHibernateDAO implements FiscalDAO { +public class FiscalHibernateDAO implements FiscalDAO { private static Logger log = Logger.getLogger(FiscalHibernateDAO.class); public static final String DATE_FORMAT_FISCAL = "yyyyMMdd"; - @Autowired - private DataSource dataSourceRead; - - @Autowired - public FiscalHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { - setSessionFactory(factory); + public FiscalHibernateDAO() { + } @Override - public List buscaDatosFiscaisECFManual(Date inicio, Date fim, Integer empresaId) throws SQLException { + public List buscaDatosFiscaisECFManual(Date inicio, Date fim, Integer empresaId,Connection connection) throws SQLException { PreparedStatement stmt = null; ResultSet rset = null; - try { - - StringBuilder sql = new StringBuilder(); - sql.append("select r4.numserie20 as numImpressora, "); - sql.append(" coalesce(r4.coo, b.numfoliopreimpreso) as coo, "); - sql.append(" b.boleto_id as boletoId, "); - sql.append(" b.marca_id as empresaId, "); - sql.append(" e.nombempresa as empresa, "); - sql.append(" to_char(b.fechorventa, 'yyyyMMdd') as dataEmissao, "); - sql.append(" b.preciopagado as valorTotal, "); - 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(" r5.totparcial as repTributado, "); - sql.append(" b.preciopagado as valorItem, "); - sql.append(" r5.tipopassagem as tipoPassagem, "); - sql.append(" r5.numitem as numItem, "); - sql.append(" r5.codproduto as codProduto, "); - sql.append(" b.numseriepreimpresa as serie, "); - sql.append(" eio.icms as icms, "); - sql.append(" eio.porctributo as porctributo, "); - sql.append(" eo.estado_id as estadoIdOrigen, "); - sql.append(" ed.estado_id as estadoIdDestino, "); - sql.append(" subserie as subSerie, "); - sql.append(" docfiscal as aidf, "); - sql.append(" fi.numserie as numpdv,"); - sql.append(" fi.modelo as modeloImpressora,"); - sql.append(" r4.usuario_id as numCaixa,"); - sql.append(" case b.importetaxaembarque when 0 then null else b.importetaxaembarque "); - sql.append(" end as importetaxaembarque, "); - sql.append(" case b.importepedagio when 0 then null else b.importepedagio "); - sql.append(" end as importepedagio, "); - sql.append(" case b.importeoutros when 0 then null else b.importeoutros "); - sql.append(" end as importeoutros, "); - sql.append(" case b.importeseguro when 0 then null else b.importeseguro "); - sql.append(" end as importeseguro, "); - sql.append(" case when b.indstatusboleto = 'V' or b.motivocancelacion_id is null THEN 'N' ELSE 'C' END status, "); - sql.append(" cs.descclase as claseServicio "); - sql.append("from boleto b "); - sql.append(" left join fiscal_r4 r4 on b.boleto_id = r4.boleto_id "); - sql.append(" left outer join fiscal_r5 r5 on r4.numserie20 = r5.numserie20 "); - sql.append(" and r4.coo = r5.coo "); - sql.append(" left outer join fiscal_impressora fi on fi.numserie20 = r4.numserie20 "); - sql.append(" inner join empresa e on e.empresa_id = b.marca_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(" left join parada o on coalesce(ase.aliasorigen_id, b.origen_id) = o.parada_id "); - sql.append(" left join ciudad co on o.ciudad_id = co.ciudad_id "); - sql.append(" left join estado eo on co.estado_id = eo.estado_id "); - sql.append(" left join empresa_imposto eio on eo.estado_id = eio.estado_id "); - sql.append(" and eio.activo = 1 "); - sql.append(" and b.marca_id = eio.empresa_id "); - sql.append(" left join parada d on coalesce(ase.aliasdestino_id, b.destino_id) = d.parada_id "); - sql.append(" left join ciudad cd on d.ciudad_id = cd.ciudad_id "); - sql.append(" left join estado ed on cd.estado_id = ed.estado_id "); - sql.append(" left join aidf a on a.serie = b.numseriepreimpresa "); - sql.append(" and eo.estado_id = a.estado_id "); - sql.append(" and a.empresa_id = e.empresa_id "); - sql.append(" inner join clase_servicio cs ON cs.claseservicio_id = b.claseservicio_id "); - sql.append("WHERE b.fechorventa BETWEEN ? AND ? "); - sql.append(" AND b.marca_id = ? "); - sql.append(" AND b.tipoventa_id = 3 "); - sql.append(" AND (b.preciopagado > 0 OR b.importetaxaembarque > 0 OR b.importepedagio > 0) "); - sql.append("GROUP BY r4.numserie20, "); - sql.append(" COALESCE(r4.coo, b.numfoliopreimpreso), "); - sql.append(" b.boleto_id, "); - sql.append(" b.marca_id, "); - sql.append(" e.nombempresa, "); - sql.append(" TO_CHAR(b.fechorventa, 'yyyyMMdd'), "); - sql.append(" b.preciopagado, "); - sql.append(" co.codibge, "); - sql.append(" cd.codibge, "); - sql.append(" r5.totparcial, "); - sql.append(" b.preciopagado, "); - sql.append(" r5.tipopassagem, "); - sql.append(" r5.numitem, "); - sql.append(" r5.codproduto, "); - sql.append(" b.numseriepreimpresa, "); - sql.append(" eio.icms, "); - sql.append(" eio.porctributo, "); - sql.append(" eo.estado_id, "); - sql.append(" ed.estado_id, "); - sql.append(" subserie, "); - sql.append(" docfiscal, "); - sql.append(" b.importetaxaembarque, "); - sql.append(" b.importepedagio, "); - sql.append(" b.importeoutros, "); - sql.append(" b.importeseguro, "); - sql.append(" fi.numserie, "); - sql.append(" fi.modelo, "); - sql.append(" r4.usuario_id, "); - sql.append(" eo.cveestado, "); - sql.append(" ed.cveestado, "); - sql.append(" b.motivocancelacion_id, "); - sql.append(" b.indstatusboleto, "); - sql.append(" cs.descclase "); - sql.append("ORDER BY dataEmissao, coo, modeloImpressora "); - - List listManuais = new ArrayList(); - - stmt = getConexao().prepareStatement(sql.toString()); - stmt.setFetchSize(100); - stmt.setTimestamp(1, new java.sql.Timestamp(inicio.getTime())); - stmt.setTimestamp(2, new java.sql.Timestamp(fim.getTime())); - - if (empresaId != null) { - stmt.setInt(3, empresaId); - } - - rset = stmt.executeQuery(); - while (rset.next()) { - - ImportacionManualFiscalVO item = new ImportacionManualFiscalVO(); - - item.setNumImpressora(rset.getString("numImpressora")); - item.setCoo(rset.getString("coo")); - item.setBoletoId(rset.getLong("boletoId")); - item.setEmpresaId(rset.getInt("empresaId")); - item.setDataEmissao(rset.getString("dataEmissao")); - item.setValorTotal(rset.getBigDecimal("valorTotal")); - item.setNumItem(rset.getString("numItem")); - item.setCodProduto(rset.getString("codProduto")); - item.setNumpdv(rset.getString("numpdv")); - item.setRepTributado(rset.getString("repTributado")); - item.setTipoPassagem(rset.getString("tipoPassagem")); - item.setValorItem(rset.getBigDecimal("valorItem")); - item.setOrigenId(rset.getInt("origenId")); - item.setOrigenUf(rset.getString("origenUf")); - item.setDestinoId(rset.getInt("destinoId")); - item.setDestinoUf(rset.getString("destinoUf")); - item.setModeloImpressora(rset.getString("modeloImpressora")); - item.setNumCaixa(rset.getString("numCaixa")); - item.setStatus(rset.getString("status")); - item.setSerie(rset.getString("serie")); - item.setIcms(rset.getBigDecimal("icms")); - item.setPorctributo(rset.getBigDecimal("porctributo")); - item.setEstadoIdOrigen(rset.getInt("estadoIdOrigen")); - item.setEstadoIdDestino(rset.getInt("estadoIdDestino")); - item.setImportetaxaembarque(rset.getBigDecimal("importetaxaembarque")); - item.setImportepedagio(rset.getBigDecimal("importepedagio")); - item.setImporteoutros(rset.getBigDecimal("importeoutros")); - item.setImporteseguro(rset.getBigDecimal("importeseguro")); - item.setSubSerie(rset.getString("subSerie")); - item.setAidf(rset.getString("aidf")); - item.setClaseServicio(rset.getString("claseServicio")); - - listManuais.add(item); - } - - return listManuais; - - } catch (Exception e) { - log.info(e.getMessage(), e); - throw new SQLException(e); - } finally { - fecharconexao(); + StringBuilder sql = new StringBuilder(); + sql.append("select r4.numserie20 as numImpressora, "); + sql.append(" coalesce(r4.coo, b.numfoliopreimpreso) as coo, "); + sql.append(" b.boleto_id as boletoId, "); + sql.append(" b.marca_id as empresaId, "); + sql.append(" e.nombempresa as empresa, "); + sql.append(" to_char(b.fechorventa, 'yyyyMMdd') as dataEmissao, "); + sql.append(" b.preciopagado as valorTotal, "); + 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(" r5.totparcial as repTributado, "); + sql.append(" b.preciopagado as valorItem, "); + sql.append(" r5.tipopassagem as tipoPassagem, "); + sql.append(" r5.numitem as numItem, "); + sql.append(" r5.codproduto as codProduto, "); + sql.append(" b.numseriepreimpresa as serie, "); + sql.append(" eio.icms as icms, "); + sql.append(" eio.porctributo as porctributo, "); + sql.append(" eo.estado_id as estadoIdOrigen, "); + sql.append(" ed.estado_id as estadoIdDestino, "); + sql.append(" subserie as subSerie, "); + sql.append(" docfiscal as aidf, "); + sql.append(" fi.numserie as numpdv,"); + sql.append(" fi.modelo as modeloImpressora,"); + sql.append(" r4.usuario_id as numCaixa,"); + sql.append(" case b.importetaxaembarque when 0 then null else b.importetaxaembarque "); + sql.append(" end as importetaxaembarque, "); + sql.append(" case b.importepedagio when 0 then null else b.importepedagio "); + sql.append(" end as importepedagio, "); + sql.append(" case b.importeoutros when 0 then null else b.importeoutros "); + sql.append(" end as importeoutros, "); + sql.append(" case b.importeseguro when 0 then null else b.importeseguro "); + sql.append(" end as importeseguro, "); + sql.append(" case when b.indstatusboleto = 'V' or b.motivocancelacion_id is null THEN 'N' ELSE 'C' END status, "); + sql.append(" cs.descclase as claseServicio "); + sql.append("from boleto b "); + sql.append(" left join fiscal_r4 r4 on b.boleto_id = r4.boleto_id "); + sql.append(" left outer join fiscal_r5 r5 on r4.numserie20 = r5.numserie20 "); + sql.append(" and r4.coo = r5.coo "); + sql.append(" left outer join fiscal_impressora fi on fi.numserie20 = r4.numserie20 "); + sql.append(" inner join empresa e on e.empresa_id = b.marca_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(" left join parada o on coalesce(ase.aliasorigen_id, b.origen_id) = o.parada_id "); + sql.append(" left join ciudad co on o.ciudad_id = co.ciudad_id "); + sql.append(" left join estado eo on co.estado_id = eo.estado_id "); + sql.append(" left join empresa_imposto eio on eo.estado_id = eio.estado_id "); + sql.append(" and eio.activo = 1 "); + sql.append(" and b.marca_id = eio.empresa_id "); + sql.append(" left join parada d on coalesce(ase.aliasdestino_id, b.destino_id) = d.parada_id "); + sql.append(" left join ciudad cd on d.ciudad_id = cd.ciudad_id "); + sql.append(" left join estado ed on cd.estado_id = ed.estado_id "); + sql.append(" left join aidf a on a.serie = b.numseriepreimpresa "); + sql.append(" and eo.estado_id = a.estado_id "); + sql.append(" and a.empresa_id = e.empresa_id "); + sql.append(" inner join clase_servicio cs ON cs.claseservicio_id = b.claseservicio_id "); + sql.append("WHERE b.fechorventa BETWEEN ? AND ? "); + sql.append(" AND b.marca_id = ? "); + sql.append(" AND b.tipoventa_id = 3 "); + sql.append(" AND (b.preciopagado > 0 OR b.importetaxaembarque > 0 OR b.importepedagio > 0) "); + sql.append("GROUP BY r4.numserie20, "); + sql.append(" COALESCE(r4.coo, b.numfoliopreimpreso), "); + sql.append(" b.boleto_id, "); + sql.append(" b.marca_id, "); + sql.append(" e.nombempresa, "); + sql.append(" TO_CHAR(b.fechorventa, 'yyyyMMdd'), "); + sql.append(" b.preciopagado, "); + sql.append(" co.codibge, "); + sql.append(" cd.codibge, "); + sql.append(" r5.totparcial, "); + sql.append(" b.preciopagado, "); + sql.append(" r5.tipopassagem, "); + sql.append(" r5.numitem, "); + sql.append(" r5.codproduto, "); + sql.append(" b.numseriepreimpresa, "); + sql.append(" eio.icms, "); + sql.append(" eio.porctributo, "); + sql.append(" eo.estado_id, "); + sql.append(" ed.estado_id, "); + sql.append(" subserie, "); + sql.append(" docfiscal, "); + sql.append(" b.importetaxaembarque, "); + sql.append(" b.importepedagio, "); + sql.append(" b.importeoutros, "); + sql.append(" b.importeseguro, "); + sql.append(" fi.numserie, "); + sql.append(" fi.modelo, "); + sql.append(" r4.usuario_id, "); + sql.append(" eo.cveestado, "); + sql.append(" ed.cveestado, "); + sql.append(" b.motivocancelacion_id, "); + sql.append(" b.indstatusboleto, "); + sql.append(" cs.descclase "); + sql.append("ORDER BY dataEmissao, coo, modeloImpressora "); + + List listManuais = new ArrayList(); + + stmt = connection.prepareStatement(sql.toString()); + stmt.setFetchSize(100); + stmt.setTimestamp(1, new java.sql.Timestamp(inicio.getTime())); + stmt.setTimestamp(2, new java.sql.Timestamp(fim.getTime())); + + if (empresaId != null) { + stmt.setInt(3, empresaId); } + + rset = stmt.executeQuery(); + while (rset.next()) { + + ImportacionManualFiscalVO item = new ImportacionManualFiscalVO(); + + item.setNumImpressora(rset.getString("numImpressora")); + item.setCoo(rset.getString("coo")); + item.setBoletoId(rset.getLong("boletoId")); + item.setEmpresaId(rset.getInt("empresaId")); + item.setDataEmissao(rset.getString("dataEmissao")); + item.setValorTotal(rset.getBigDecimal("valorTotal")); + item.setNumItem(rset.getString("numItem")); + item.setCodProduto(rset.getString("codProduto")); + item.setNumpdv(rset.getString("numpdv")); + item.setRepTributado(rset.getString("repTributado")); + item.setTipoPassagem(rset.getString("tipoPassagem")); + item.setValorItem(rset.getBigDecimal("valorItem")); + item.setOrigenId(rset.getInt("origenId")); + item.setOrigenUf(rset.getString("origenUf")); + item.setDestinoId(rset.getInt("destinoId")); + item.setDestinoUf(rset.getString("destinoUf")); + item.setModeloImpressora(rset.getString("modeloImpressora")); + item.setNumCaixa(rset.getString("numCaixa")); + item.setStatus(rset.getString("status")); + item.setSerie(rset.getString("serie")); + item.setIcms(rset.getBigDecimal("icms")); + item.setPorctributo(rset.getBigDecimal("porctributo")); + item.setEstadoIdOrigen(rset.getInt("estadoIdOrigen")); + item.setEstadoIdDestino(rset.getInt("estadoIdDestino")); + item.setImportetaxaembarque(rset.getBigDecimal("importetaxaembarque")); + item.setImportepedagio(rset.getBigDecimal("importepedagio")); + item.setImporteoutros(rset.getBigDecimal("importeoutros")); + item.setImporteseguro(rset.getBigDecimal("importeseguro")); + item.setSubSerie(rset.getString("subSerie")); + item.setAidf(rset.getString("aidf")); + item.setClaseServicio(rset.getString("claseServicio")); + + listManuais.add(item); + } + + return listManuais; + + } @Override - public List buscaDatosFiscaisReducaoZ(Date inicio, Date fim, Integer empresaId) throws SQLException { + public List buscaDatosFiscaisReducaoZ(Date inicio, Date fim, Integer empresaId,Connection connection) throws SQLException { PreparedStatement stmt = null; ResultSet rset = null; - try { + + StringBuilder sql = new StringBuilder(); + sql.append("SELECT r2.datamov AS datamov, "); + sql.append(" r2.numreducoes AS numreducoes, "); + sql.append(" r2.crz AS crz, "); + sql.append(" r2.numserie20 AS numserie20, "); + sql.append(" r2.coo AS coo, "); + sql.append(" r2.cooinicial AS cooinicial, "); + sql.append(" r2.coofinal AS coofinal, "); + sql.append(" r2.vendabrutadiaria AS vendabrutadiaria, "); + sql.append(" r2.datareducao AS datareducao, "); + sql.append(" r2.horareducao AS horareducao, "); + sql.append(" r3.totparcial AS aliquota, "); + sql.append(" r3.valoracumulado AS imposto, "); + sql.append(" ifi.numserie AS numpdv, "); + sql.append(" e.cnpj AS cnpj, "); + sql.append(" r2.totgeral AS gtFinal, "); + sql.append(" anterior.totgeral AS gtInicial "); + sql.append("FROM fiscal_r2 r2 "); + sql.append(" inner join fiscal_impressora ifi "); + sql.append(" ON ifi.numserie20 = r2.numserie20 "); + sql.append(" inner join fiscal_r3 r3 "); + sql.append(" ON r3.crz = r2.crz "); + sql.append(" AND r2.numserie20 = r3.numserie20 "); + sql.append(" AND r3.datamov = r2.datamov "); + sql.append(" AND r3.fiscalimpressora_id = ifi.fiscalimpressora_id "); + sql.append(" inner join fiscal_t2 t2 "); + sql.append(" ON ifi.fiscalimpressora_id = t2.fiscalimpressora_id "); + sql.append(" inner join empresa e ON TRANSLATE(t2.cnpj, ' / - . ', ' ') "); + sql.append(" in (TRANSLATE(e.cnpj, ' / - . ', ' '), "); + sql.append(" (select TRANSLATE(cnpj, ' / - . ', ' ') from inscricao_estadual where empresa_id = ? )),"); + sql.append(" (SELECT numserie20, crz, totgeral "); + sql.append(" FROM fiscal_r2) anterior "); + sql.append("WHERE r2.datamov BETWEEN ? AND ? "); + sql.append(" AND r2.activo = 1 "); + sql.append(" AND e.empresa_id = ? "); + sql.append(" AND r3.totparcial not in ("); + sql.append("'" + SituacaoTributaria.CANCELADO.getValue() + "'").append(", "); + sql.append("'" + SituacaoTributaria.DESCRITIVO.getValue() + "'").append(", "); + sql.append("'" + SituacaoTributaria.OPCIONAL.getValue() + "'").append(")"); + sql.append(" AND anterior.numserie20 = r2.numserie20 "); + sql.append(" AND anterior.crz = r2.crz - 1 "); + sql.append("GROUP BY r2.datamov, "); + sql.append(" r2.numreducoes, "); + sql.append(" r2.crz, "); + sql.append(" r2.numserie20, "); + sql.append(" r2.coo, "); + sql.append(" r2.cooinicial, "); + sql.append(" r2.coofinal, "); + sql.append(" r2.vendabrutadiaria, "); + sql.append(" r2.datareducao, "); + sql.append(" r2.horareducao, "); + sql.append(" r3.totparcial, "); + sql.append(" r3.valoracumulado, "); + sql.append(" ifi.numserie, "); + sql.append(" e.cnpj, "); + sql.append(" r2.totgeral, "); + sql.append(" anterior.totgeral "); + sql.append("ORDER BY r2.datamov, "); + sql.append(" numserie20, "); + sql.append(" crz, "); + sql.append(" r2.numreducoes, "); + sql.append(" r3.totparcial"); - StringBuilder sql = new StringBuilder(); - sql.append("SELECT r2.datamov AS datamov, "); - sql.append(" r2.numreducoes AS numreducoes, "); - sql.append(" r2.crz AS crz, "); - sql.append(" r2.numserie20 AS numserie20, "); - sql.append(" r2.coo AS coo, "); - sql.append(" r2.cooinicial AS cooinicial, "); - sql.append(" r2.coofinal AS coofinal, "); - sql.append(" r2.vendabrutadiaria AS vendabrutadiaria, "); - sql.append(" r2.datareducao AS datareducao, "); - sql.append(" r2.horareducao AS horareducao, "); - sql.append(" r3.totparcial AS aliquota, "); - sql.append(" r3.valoracumulado AS imposto, "); - sql.append(" ifi.numserie AS numpdv, "); - sql.append(" e.cnpj AS cnpj, "); - sql.append(" r2.totgeral AS gtFinal, "); - sql.append(" anterior.totgeral AS gtInicial "); - sql.append("FROM fiscal_r2 r2 "); - sql.append(" inner join fiscal_impressora ifi "); - sql.append(" ON ifi.numserie20 = r2.numserie20 "); - sql.append(" inner join fiscal_r3 r3 "); - sql.append(" ON r3.crz = r2.crz "); - sql.append(" AND r2.numserie20 = r3.numserie20 "); - sql.append(" AND r3.datamov = r2.datamov "); - sql.append(" AND r3.fiscalimpressora_id = ifi.fiscalimpressora_id "); - sql.append(" inner join fiscal_t2 t2 "); - sql.append(" ON ifi.fiscalimpressora_id = t2.fiscalimpressora_id "); - sql.append(" inner join empresa e ON TRANSLATE(t2.cnpj, ' / - . ', ' ') "); - sql.append(" in (TRANSLATE(e.cnpj, ' / - . ', ' '), "); - sql.append(" (select TRANSLATE(cnpj, ' / - . ', ' ') from inscricao_estadual where empresa_id = ? )),"); - sql.append(" (SELECT numserie20, crz, totgeral "); - sql.append(" FROM fiscal_r2) anterior "); - sql.append("WHERE r2.datamov BETWEEN ? AND ? "); - sql.append(" AND r2.activo = 1 "); - sql.append(" AND e.empresa_id = ? "); - sql.append(" AND r3.totparcial not in ("); - sql.append("'" + SituacaoTributaria.CANCELADO.getValue() + "'").append(", "); - sql.append("'" + SituacaoTributaria.DESCRITIVO.getValue() + "'").append(", "); - sql.append("'" + SituacaoTributaria.OPCIONAL.getValue() + "'").append(")"); - sql.append(" AND anterior.numserie20 = r2.numserie20 "); - sql.append(" AND anterior.crz = r2.crz - 1 "); - sql.append("GROUP BY r2.datamov, "); - sql.append(" r2.numreducoes, "); - sql.append(" r2.crz, "); - sql.append(" r2.numserie20, "); - sql.append(" r2.coo, "); - sql.append(" r2.cooinicial, "); - sql.append(" r2.coofinal, "); - sql.append(" r2.vendabrutadiaria, "); - sql.append(" r2.datareducao, "); - sql.append(" r2.horareducao, "); - sql.append(" r3.totparcial, "); - sql.append(" r3.valoracumulado, "); - sql.append(" ifi.numserie, "); - sql.append(" e.cnpj, "); - sql.append(" r2.totgeral, "); - sql.append(" anterior.totgeral "); - sql.append("ORDER BY r2.datamov, "); - sql.append(" numserie20, "); - sql.append(" crz, "); - sql.append(" r2.numreducoes, "); - sql.append(" r3.totparcial"); - - List listRedZ = new ArrayList(); - - stmt = getConexao().prepareStatement(sql.toString()); - stmt.setFetchSize(100); - stmt.setInt(1, empresaId); - stmt.setString(2, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); - stmt.setString(3, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); - stmt.setInt(4, empresaId); - - rset = stmt.executeQuery(); - while (rset.next()) { - - ImportacionFiscalReducaoZVO item = new ImportacionFiscalReducaoZVO(); - item.setDatamov(rset.getString("datamov")); - item.setNumreducoes(rset.getString("numreducoes")); - item.setCrz(rset.getString("crz")); - item.setNumserie20(rset.getString("numserie20")); - item.setCoo(rset.getString("coo")); - item.setCooinicial(rset.getString("cooinicial")); - item.setCoofinal(rset.getString("coofinal")); - item.setVendabrutadiaria(rset.getBigDecimal("vendabrutadiaria")); - item.setDatareducao(rset.getString("datareducao")); - item.setHorareducao(rset.getString("horareducao")); - item.setAliquota(rset.getString("aliquota")); - item.setImposto(rset.getBigDecimal("imposto")); - item.setNumpdv(rset.getString("numpdv")); - item.setCnpj(rset.getString("cnpj")); - item.setGtFinal(rset.getBigDecimal("gtFinal")); - item.setGtInicial(rset.getBigDecimal("gtInicial")); - - listRedZ.add(item); - } - - return listRedZ; - - } catch (Exception e) { - log.info(e.getMessage(), e); - throw new SQLException(e); - } finally { - fecharconexao(); + List listRedZ = new ArrayList(); + + stmt = connection.prepareStatement(sql.toString()); + stmt.setFetchSize(100); + stmt.setInt(1, empresaId); + stmt.setString(2, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); + stmt.setString(3, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); + stmt.setInt(4, empresaId); + + rset = stmt.executeQuery(); + while (rset.next()) { + + ImportacionFiscalReducaoZVO item = new ImportacionFiscalReducaoZVO(); + item.setDatamov(rset.getString("datamov")); + item.setNumreducoes(rset.getString("numreducoes")); + item.setCrz(rset.getString("crz")); + item.setNumserie20(rset.getString("numserie20")); + item.setCoo(rset.getString("coo")); + item.setCooinicial(rset.getString("cooinicial")); + item.setCoofinal(rset.getString("coofinal")); + item.setVendabrutadiaria(rset.getBigDecimal("vendabrutadiaria")); + item.setDatareducao(rset.getString("datareducao")); + item.setHorareducao(rset.getString("horareducao")); + item.setAliquota(rset.getString("aliquota")); + item.setImposto(rset.getBigDecimal("imposto")); + item.setNumpdv(rset.getString("numpdv")); + item.setCnpj(rset.getString("cnpj")); + item.setGtFinal(rset.getBigDecimal("gtFinal")); + item.setGtInicial(rset.getBigDecimal("gtInicial")); + + listRedZ.add(item); } + + return listRedZ; + + } public String sqlFiscaisECFCancelados() { @@ -488,94 +465,87 @@ public class FiscalHibernateDAO extends GenericHibernateDAO impl } @Override - public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isCancelados) throws SQLException { + public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isCancelados,Connection connection) throws SQLException { PreparedStatement stmt = null; ResultSet rset = null; - try { + - String sql = isCancelados ? sqlFiscaisECFCancelados() : sqlFiscaisECF(); - stmt = getConexao().prepareStatement(sql); - stmt.setFetchSize(100); - stmt.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); - stmt.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); - - if (empresaId != null) { - stmt.setInt(3, empresaId); + String sql = isCancelados ? sqlFiscaisECFCancelados() : sqlFiscaisECF(); + stmt = connection.prepareStatement(sql); + stmt.setFetchSize(100); + stmt.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); + stmt.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); + + if (empresaId != null) { + stmt.setInt(3, empresaId); + } + + List list = new ArrayList(); + ImportacionFiscalVO fiscal = null; + String codProduto = null; + + rset = stmt.executeQuery(); + while (rset.next()) { + + ItemFiscalVO item = new ItemFiscalVO(); + item.setNumImpressora(rset.getString("numImpressora")); + item.setCoo(rset.getString("coo")); + item.setBoletoId(rset.getLong("boletoId")); + item.setEmpresaId(rset.getInt("empresaId")); + item.setDataEmissao(rset.getString("dataEmissao")); + item.setCnpjCliente(rset.getString("cnpjCliente")); + item.setCnpjImpressora(rset.getString("cnpjImpressora")); + item.setOrigenId(rset.getInt("origenId")); + item.setOrigenUf(rset.getString("origenUf")); + item.setDestinoId(rset.getInt("destinoId")); + item.setDestinoUf(rset.getString("destinoUf")); + item.setNumpdv(rset.getString("numpdv")); + item.setNumItem(rset.getString("numItem")); + item.setCodProduto(rset.getString("codProduto")); + item.setRepTributado(rset.getString("repTributado")); + item.setTipoPassagem(rset.getString("tipoPassagem")); + item.setModeloImpressora(rset.getString("modeloImpressora")); + item.setNumCaixa(rset.getString("numCaixa")); + item.setStatus(rset.getString("status")); + item.setClaseServicio(rset.getString("claseServicio")); + + if (isCancelados) { + item.setMotivocancelacion(rset.getInt("motivocancelacion")); + item.setValorMulta(rset.getBigDecimal("valorMulta")); } - - List list = new ArrayList(); - ImportacionFiscalVO fiscal = null; - String codProduto = null; - - rset = stmt.executeQuery(); - while (rset.next()) { - - ItemFiscalVO item = new ItemFiscalVO(); - item.setNumImpressora(rset.getString("numImpressora")); - item.setCoo(rset.getString("coo")); - item.setBoletoId(rset.getLong("boletoId")); - item.setEmpresaId(rset.getInt("empresaId")); - item.setDataEmissao(rset.getString("dataEmissao")); - item.setCnpjCliente(rset.getString("cnpjCliente")); - item.setCnpjImpressora(rset.getString("cnpjImpressora")); - item.setOrigenId(rset.getInt("origenId")); - item.setOrigenUf(rset.getString("origenUf")); - item.setDestinoId(rset.getInt("destinoId")); - item.setDestinoUf(rset.getString("destinoUf")); - item.setNumpdv(rset.getString("numpdv")); - item.setNumItem(rset.getString("numItem")); - item.setCodProduto(rset.getString("codProduto")); - item.setRepTributado(rset.getString("repTributado")); - item.setTipoPassagem(rset.getString("tipoPassagem")); - item.setModeloImpressora(rset.getString("modeloImpressora")); - item.setNumCaixa(rset.getString("numCaixa")); - item.setStatus(rset.getString("status")); - item.setClaseServicio(rset.getString("claseServicio")); - - if (isCancelados) { - item.setMotivocancelacion(rset.getInt("motivocancelacion")); - item.setValorMulta(rset.getBigDecimal("valorMulta")); - } - - // TODO: Estes atributos foram criados, por motivo de divergencia no valorTotal com o valor unitario na tabela FISCAL_R5 - item.setValorTarifa(rset.getBigDecimal("importetarifa")); - item.setValorPedagio(rset.getBigDecimal("importepedagio")); - item.setValorEmbarque(rset.getBigDecimal("importetaxaembarque")); - item.setValorSeguro(rset.getBigDecimal("importeseguro")); - - ImportacionFiscalVO novoFiscal = item; - - codProduto = item.getCodProduto(); - codProduto = codProduto.toString().replace("-", "").replace("TA", "").replace("TX", "").replace("PE", "").replace("SE", ""); - - if (fiscal == null) { - fiscal = item; - } else if (!novoFiscal.equals(fiscal)) { - List itensFiscais = validaItensFiscais(fiscal, codProduto); - fiscal.setItensFiscais(itensFiscais); - list.add(fiscal); - fiscal = item; - } - - fiscal.getItensFiscais().add(item); - - } - - if (fiscal != null) { + + // TODO: Estes atributos foram criados, por motivo de divergencia no valorTotal com o valor unitario na tabela FISCAL_R5 + item.setValorTarifa(rset.getBigDecimal("importetarifa")); + item.setValorPedagio(rset.getBigDecimal("importepedagio")); + item.setValorEmbarque(rset.getBigDecimal("importetaxaembarque")); + item.setValorSeguro(rset.getBigDecimal("importeseguro")); + + ImportacionFiscalVO novoFiscal = item; + + codProduto = item.getCodProduto(); + codProduto = codProduto.toString().replace("-", "").replace("TA", "").replace("TX", "").replace("PE", "").replace("SE", ""); + + if (fiscal == null) { + fiscal = item; + } else if (!novoFiscal.equals(fiscal)) { List itensFiscais = validaItensFiscais(fiscal, codProduto); fiscal.setItensFiscais(itensFiscais); list.add(fiscal); + fiscal = item; } - - return list; - - } catch (Exception e) { - log.info(e.getMessage(), e); - throw new SQLException(e); - } finally { - fecharconexao(); + + fiscal.getItensFiscais().add(item); + } + + if (fiscal != null) { + List itensFiscais = validaItensFiscais(fiscal, codProduto); + fiscal.setItensFiscais(itensFiscais); + list.add(fiscal); + } + + return list; } private boolean validaValorExiste(BigDecimal valor) { @@ -711,12 +681,17 @@ public class FiscalHibernateDAO extends GenericHibernateDAO impl sb.append(" and c.corrida_id in (:corridaId) "); sb.append(" and ROWNUM < 2 "); - Query query = getSession().createSQLQuery(sb.toString()); - query.setParameterList("corridaId", idsCorrida); - query.setDate("datIni", new java.sql.Date(dataDe.getTime())); - query.setDate("datFim", new java.sql.Date(dataAte.getTime())); + //FIXME - Implementar a inserção na base de dados. Atenção para checar se tem q ficar em transação ou não +// Query query = getSession().createSQLQuery(sb.toString()); +// query.setParameterList("corridaId", idsCorrida); +// query.setDate("datIni", new java.sql.Date(dataDe.getTime())); +// query.setDate("datFim", new java.sql.Date(dataAte.getTime())); - return query.executeUpdate(); +// return query.executeUpdate(); + + + + return 0; } private Integer[] getIdsCorrida(List lsEsquemaCorrida) { @@ -756,13 +731,15 @@ public class FiscalHibernateDAO extends GenericHibernateDAO impl sb.append(" and ROWNUM < 2 "); Integer[] idsCorrida = getIdsCorrida(lsEsquemaCorrida); - - Query query = getSession().createSQLQuery(sb.toString()); - query.setParameterList("corridaId", idsCorrida); - query.setDate("datIni", new java.sql.Date(dataDe.getTime())); - query.setDate("datFim", new java.sql.Date(dataAte.getTime())); - - return query.executeUpdate(); + //FIXME - Implementar a inserção na base de dados. Atenção para checar se tem q ficar em transação ou não +// Query query = getSession().createSQLQuery(sb.toString()); +// query.setParameterList("corridaId", idsCorrida); +// query.setDate("datIni", new java.sql.Date(dataDe.getTime())); +// query.setDate("datFim", new java.sql.Date(dataAte.getTime())); +// +// return query.executeUpdate(); + + return 0; } @Override @@ -773,63 +750,43 @@ public class FiscalHibernateDAO extends GenericHibernateDAO impl } @Override - public List buscaDatosNaoFiscais(Date inicio, Date fim, Integer empresaId) throws SQLException { + public List buscaDatosNaoFiscais(Date inicio, Date fim, Integer empresaId,Connection connection) throws SQLException { PreparedStatement stmt = null; ResultSet rset = null; - try { - - StringBuilder sQuery = new StringBuilder(); - sQuery.append("SELECT TEE.TIPOEVENTOEXTRA_ID AS TIPOEVENTOEXTRAID, TEE.DESCTIPOEVENTO AS DESCTIPOEVENTO, ") - .append(" TRUNC(CD.FECHORVTA) AS FECHORVTA, SUM(CD.PRECIO) AS TOTAL ") - .append("FROM TIPO_EVENTO_EXTRA TEE ") - .append("LEFT JOIN EVENTO_EXTRA EE ON TEE.TIPOEVENTOEXTRA_ID = EE.TIPOEVENTOEXTRA_ID ") - .append("LEFT JOIN CAJA_DIVERSOS CD ON EE.EVENTOEXTRA_ID = CD.EVENTOEXTRA_ID ") - .append("WHERE TEE.ACTIVO = 1 ") - .append("AND EE.EMPRESA_ID = ? ") - .append("AND TRUNC(CD.FECHORVTA) BETWEEN ? AND ? ") - .append("GROUP BY TEE.TIPOEVENTOEXTRA_ID, TEE.DESCTIPOEVENTO, TRUNC(CD.FECHORVTA) ") - .append("ORDER BY TRUNC(CD.FECHORVTA), TEE.DESCTIPOEVENTO "); - - stmt = getConexao().prepareStatement(sQuery.toString()); - stmt.setInt(1, empresaId); - stmt.setDate(2, new java.sql.Date(inicio.getTime())); - stmt.setDate(3, new java.sql.Date(fim.getTime())); - - rset = stmt.executeQuery(); - List importacionNaoFiscalVOs = new ArrayList(); - while (rset.next()) { - ImportacionNaoFiscalVO importacionNaoFiscal = new ImportacionNaoFiscalVO(); - importacionNaoFiscal.setTipoeventoextraId(rset.getInt("TIPOEVENTOEXTRAID")); - importacionNaoFiscal.setDesctipoevento(rset.getString("DESCTIPOEVENTO")); - importacionNaoFiscal.setFechorvta(rset.getDate("FECHORVTA")); - importacionNaoFiscal.setTotal(rset.getBigDecimal("TOTAL")); - - importacionNaoFiscalVOs.add(importacionNaoFiscal); - } - - return importacionNaoFiscalVOs; - } catch (Exception e) { - log.info(e.getMessage(), e); - throw new SQLException(e); - } finally { - fecharconexao(); + + StringBuilder sQuery = new StringBuilder(); + sQuery.append("SELECT TEE.TIPOEVENTOEXTRA_ID AS TIPOEVENTOEXTRAID, TEE.DESCTIPOEVENTO AS DESCTIPOEVENTO, ") + .append(" TRUNC(CD.FECHORVTA) AS FECHORVTA, SUM(CD.PRECIO) AS TOTAL ") + .append("FROM TIPO_EVENTO_EXTRA TEE ") + .append("LEFT JOIN EVENTO_EXTRA EE ON TEE.TIPOEVENTOEXTRA_ID = EE.TIPOEVENTOEXTRA_ID ") + .append("LEFT JOIN CAJA_DIVERSOS CD ON EE.EVENTOEXTRA_ID = CD.EVENTOEXTRA_ID ") + .append("WHERE TEE.ACTIVO = 1 ") + .append("AND EE.EMPRESA_ID = ? ") + .append("AND TRUNC(CD.FECHORVTA) BETWEEN ? AND ? ") + .append("GROUP BY TEE.TIPOEVENTOEXTRA_ID, TEE.DESCTIPOEVENTO, TRUNC(CD.FECHORVTA) ") + .append("ORDER BY TRUNC(CD.FECHORVTA), TEE.DESCTIPOEVENTO "); + + stmt = connection.prepareStatement(sQuery.toString()); + stmt.setInt(1, empresaId); + stmt.setDate(2, new java.sql.Date(inicio.getTime())); + stmt.setDate(3, new java.sql.Date(fim.getTime())); + + rset = stmt.executeQuery(); + List importacionNaoFiscalVOs = new ArrayList(); + while (rset.next()) { + ImportacionNaoFiscalVO importacionNaoFiscal = new ImportacionNaoFiscalVO(); + importacionNaoFiscal.setTipoeventoextraId(rset.getInt("TIPOEVENTOEXTRAID")); + importacionNaoFiscal.setDesctipoevento(rset.getString("DESCTIPOEVENTO")); + importacionNaoFiscal.setFechorvta(rset.getDate("FECHORVTA")); + importacionNaoFiscal.setTotal(rset.getBigDecimal("TOTAL")); + + importacionNaoFiscalVOs.add(importacionNaoFiscal); } - } - public Connection getConexao() throws SQLException { - return dataSourceRead.getConnection(); + return importacionNaoFiscalVOs; + + } - - private void fecharconexao() { - try { - if (getConexao() != null && !getConexao().isClosed()) { - getConexao().close(); - } - } catch (Exception e) { - log.error("Erro ao fechar a conexion", e); - } - } - } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java index 9a81767d8..8af2b117f 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java @@ -9,6 +9,7 @@ import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.math.BigDecimal; +import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.Calendar; @@ -17,12 +18,15 @@ import java.util.Date; import java.util.HashMap; import java.util.List; +import javax.sql.DataSource; + import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.datasource.DataSourceUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -67,6 +71,9 @@ public class FiscalServiceImpl implements FiscalService { @Autowired private FiscalDAO fiscalDAO; + + @Autowired + private DataSource dataSourceRead; @Override @Transactional @@ -76,7 +83,7 @@ public class FiscalServiceImpl implements FiscalService { @Override public File importacionFiscalECFManual(Date inicio, Date fim, Empresa empresa) { - + Connection connection = null; try { String nomeArquivo = "fiscal_ecf_manual_" + DateUtil.getStringDate(Calendar.getInstance().getTime(), "yyyyMMddhhmmss"); File arquivo = File.createTempFile(nomeArquivo, ".txt"); @@ -98,8 +105,10 @@ public class FiscalServiceImpl implements FiscalService { inicio = DateUtil.inicioFecha(inicio); fim = DateUtil.fimFecha(fim); - - List list = agruparItensFiscaisManual(fiscalDAO.buscaDatosFiscaisECFManual(inicio, fim, empresa.getEmpresaId())); + + connection = DataSourceUtils.getConnection(dataSourceRead); + + List list = agruparItensFiscaisManual(fiscalDAO.buscaDatosFiscaisECFManual(inicio, fim, empresa.getEmpresaId(),connection)); for (ImportacionManualFiscalVO imf : list) { qtdDoc++; @@ -191,6 +200,15 @@ public class FiscalServiceImpl implements FiscalService { log.error("", e); } catch (SQLException e) { log.error("", e); + }finally{ + try { + if (connection != null && !connection.isClosed()){ + connection.close(); + } + } catch (SQLException e) { + log.error("error fechar conexão",e); + throw new RuntimeException(e); + } } return null; @@ -314,7 +332,8 @@ public class FiscalServiceImpl implements FiscalService { } public File importacionFiscalReducaoZ(Date inicio, Date fim, Empresa empresa) { - + Connection connection = null; + try { String nomeArquivo = "fiscal_reducao_z_" + DateUtil.getStringDate(Calendar.getInstance().getTime(), "yyyyMMddhhmmss"); File arquivo = File.createTempFile(nomeArquivo, ".txt"); @@ -331,7 +350,9 @@ public class FiscalServiceImpl implements FiscalService { String abertura = aberturaDeArquivo("0", dataAgora, cnpjFilial, brancos371, sequencial); gravarArq.print(abertura + QUEBRA_LINHA); - List list = agruparReducaoZ(fiscalDAO.buscaDatosFiscaisReducaoZ(inicio, fim, empresa.getEmpresaId())); + connection = DataSourceUtils.getConnection(dataSourceRead); + + List list = agruparReducaoZ(fiscalDAO.buscaDatosFiscaisReducaoZ(inicio, fim, empresa.getEmpresaId(),connection)); for (ImportacionFiscalReducaoZVO ifrZ : list) { @@ -417,6 +438,15 @@ public class FiscalServiceImpl implements FiscalService { log.error("", e); } catch (SQLException e) { log.error("", e); + }finally{ + try { + if (connection != null && !connection.isClosed()){ + connection.close(); + } + } catch (SQLException e) { + log.error("error fechar conexão",e); + throw new RuntimeException(e); + } } return null; @@ -450,7 +480,8 @@ public class FiscalServiceImpl implements FiscalService { } private File importacionFiscalECFGenerico(Date inicio, Date fim, Empresa empresa, boolean isCancelados) { - + Connection connection = null; + try { String nomeArquivo = "fiscal_ecf_" + DateUtil.getStringDate(Calendar.getInstance().getTime(), "yyyyMMddhhmmss"); File arquivo = File.createTempFile(nomeArquivo, ".txt"); @@ -472,8 +503,10 @@ public class FiscalServiceImpl implements FiscalService { String header = null; List itensDocs = new ArrayList(); - - List list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), isCancelados); + + connection = DataSourceUtils.getConnection(dataSourceRead); + + List list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), isCancelados,connection); for (ImportacionFiscalVO item : list) { @@ -582,7 +615,17 @@ public class FiscalServiceImpl implements FiscalService { log.error("", e); } catch (SQLException e) { log.error("", e); + }finally{ + try { + if (connection != null && !connection.isClosed()){ + connection.close(); + } + } catch (SQLException e) { + log.error("error fechar conexão",e); + throw new RuntimeException(e); + } } + return null; } @@ -1003,11 +1046,25 @@ public class FiscalServiceImpl implements FiscalService { @Override public File importacionNaoFiscal(Date inicio, Date fim, Empresa empresa) { + Connection connection = null; try { - List importacionNaoFiscalVOs = fiscalDAO.buscaDatosNaoFiscais(inicio, fim, empresa.getEmpresaId()); + connection = DataSourceUtils.getConnection(dataSourceRead); + + List importacionNaoFiscalVOs = fiscalDAO.buscaDatosNaoFiscais(inicio, fim, empresa.getEmpresaId(),connection); + return new ArchivoIntegracionNaoFiscal().gerarArquivo(empresa.getCnpj(), importacionNaoFiscalVOs); + } catch (Exception e) { log.error(e.getMessage(), e); + }finally{ + try { + if (connection != null && !connection.isClosed()){ + connection.close(); + } + } catch (SQLException e) { + log.error("error fechar conexão",e); + throw new RuntimeException(e); + } } return null; }