From d1e2980e323ff1874f12c84b8c801011ca2d188f Mon Sep 17 00:00:00 2001 From: julio Date: Thu, 2 Jun 2016 20:37:35 +0000 Subject: [PATCH] bug #7500 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@56652 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/FiscalDAO.java | 2 +- .../dao/hibernate/FiscalHibernateDAO.java | 59 +++++++++++++++---- .../ventaboletos/service/FiscalService.java | 3 +- .../service/impl/FiscalServiceImpl.java | 19 ++++-- .../vo/impressaofiscal/StatusPendencia.java | 58 ++++++++++++++++++ 5 files changed, 123 insertions(+), 18 deletions(-) create mode 100644 src/com/rjconsultores/ventaboletos/vo/impressaofiscal/StatusPendencia.java diff --git a/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java b/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java index 30e0a70fe..6f36411bc 100644 --- a/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java @@ -15,7 +15,7 @@ public interface FiscalDAO { public int gerarRegistroP2_F2(List lsEsquemaCorrida, Date dataDe, Date dataAte); - public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isCancelados, Connection connection) throws SQLException; + public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isCancelados, boolean isPendencias, Connection connection) throws SQLException; public List buscaDatosFiscaisReducaoZ(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 054e9d1ff..7bbfd612c 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -468,18 +468,55 @@ public class FiscalHibernateDAO implements FiscalDAO { return sql.toString(); } + public String sqlFiscaisECFPendencias(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException { + + 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.datainicialemissao as dataEmissao, "); + sql.append(" r4.cpfcnpjcliente as cnpjCliente, "); + 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(" r5.impdesconto "); + sql.append(" FROM fiscal_r4 r4 "); + sql.append(" INNER 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 AND fi.fiscalimpressora_id = r5.fiscalimpressora_id "); + sql.append(" WHERE r4.datamov BETWEEN ? AND ? "); + sql.append(" AND b.marca_id = ? "); + sql.append(" AND r5.impdesconto <> 0 "); + sql.append(" GROUP BY r4.numserie20, r4.coo, r4.datainicialemissao, r4.cpfcnpjcliente, "); + sql.append(" r4.imptotalliquido, fi.numcnpj, fi.numserie, r5.impdesconto, "); + sql.append(" r5.totparcial, r5.imptotalliquido, r5.tipopassagem, "); + sql.append(" r5.numitem, r5.codproduto, fi.modelo, r4.usuario_id "); + sql.append(" ORDER BY r4.datainicialemissao, r4.numserie20, r4.coo, r5.numitem "); + return sql.toString(); + } + @Override - public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isCancelados, Connection connection) throws SQLException { - PreparedStatement stmt = null; - ResultSet rset = null; + public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isCancelados, boolean isPendencias, Connection connection) throws SQLException { - String sql = isCancelados ? sqlFiscaisECFCancelados() : sqlFiscaisECF(); - stmt = connection.prepareStatement(sql); + String sql = sqlFiscaisECF(); + if (isCancelados) { + sql = sqlFiscaisECFCancelados(); + + } else if (isPendencias) { + sql = sqlFiscaisECFPendencias(inicio, fim, empresaId, connection); + } + + PreparedStatement 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) { + if (!isPendencias) { + stmt.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); + stmt.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); stmt.setInt(3, empresaId); } @@ -487,7 +524,7 @@ public class FiscalHibernateDAO implements FiscalDAO { ImportacionFiscalVO fiscal = null; String codProduto = null; - rset = stmt.executeQuery(); + ResultSet rset = stmt.executeQuery(); while (rset.next()) { ItemFiscalVO item = new ItemFiscalVO(); @@ -525,8 +562,6 @@ public class FiscalHibernateDAO implements FiscalDAO { item.setValorEmbarque(rset.getBigDecimal("importetaxaembarque")); item.setValorSeguro(rset.getBigDecimal("importeseguro")); - - ImportacionFiscalVO novoFiscal = item; codProduto = item.getCodProduto(); diff --git a/src/com/rjconsultores/ventaboletos/service/FiscalService.java b/src/com/rjconsultores/ventaboletos/service/FiscalService.java index 1f7c5dec0..0aeeeea00 100644 --- a/src/com/rjconsultores/ventaboletos/service/FiscalService.java +++ b/src/com/rjconsultores/ventaboletos/service/FiscalService.java @@ -20,7 +20,7 @@ public interface FiscalService { public File importacionNaoFiscal(Date inicio, Date fim, Empresa empresa); public File importacionFiscalECFCancelados(Date inicio, Date fim, Empresa empresa); - + public File importacionFiscalECFXls(Empresa empresa, File arquivoTxt); public File importacionFiscalReducaoZXls(Empresa empresa, File arquivoTxt); @@ -31,4 +31,5 @@ public interface FiscalService { public File importacionFiscalECFCanceladosXls(Empresa empresa, File arquivoTxt); + public File importacionFiscalECFPendencias(Date inicio, Date fim, Empresa empresa); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java index 23839b21d..9f0a76020 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java @@ -493,21 +493,32 @@ public class FiscalServiceImpl implements FiscalService { return aux; } + @Override + public File importacionFiscalECFPendencias(Date inicio, Date fim, Empresa empresa) { + return importacionFiscalECFGenerico(inicio, fim, empresa, false, true); + } + @Override public File importacionFiscalECFCancelados(Date inicio, Date fim, Empresa empresa) { - return importacionFiscalECFGenerico(inicio, fim, empresa, true); + return importacionFiscalECFGenerico(inicio, fim, empresa, true, false); } @Override public File importacionFiscalECF(Date inicio, Date fim, Empresa empresa) { - return importacionFiscalECFGenerico(inicio, fim, empresa, false); + return importacionFiscalECFGenerico(inicio, fim, empresa, false, false); } - private File importacionFiscalECFGenerico(Date inicio, Date fim, Empresa empresa, boolean isCancelados) { + private File importacionFiscalECFGenerico(Date inicio, Date fim, Empresa empresa, boolean isCancelados, boolean isPendencias) { Connection connection = null; try { String nomeArquivo = "fiscal_ecf_" + DateUtil.getStringDate(Calendar.getInstance().getTime(), "yyyyMMddhhmmss"); + if (isCancelados) { + nomeArquivo = "fiscal_ecf_cancel_" + DateUtil.getStringDate(Calendar.getInstance().getTime(), "yyyyMMddhhmmss"); + } else if (isPendencias) { + nomeArquivo = "fiscal_ecf_pendencias_" + DateUtil.getStringDate(Calendar.getInstance().getTime(), "yyyyMMddhhmmss"); + } + File arquivo = File.createTempFile(nomeArquivo, ".txt"); PrintWriter gravarArq = new PrintWriter(new OutputStreamWriter(new FileOutputStream(arquivo), Constantes.UTF_8)); @@ -530,7 +541,7 @@ public class FiscalServiceImpl implements FiscalService { connection = DataSourceUtils.getConnection(dataSourceRead); - List list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), isCancelados, connection); + List list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), isCancelados, isPendencias, connection); for (ImportacionFiscalVO item : list) { diff --git a/src/com/rjconsultores/ventaboletos/vo/impressaofiscal/StatusPendencia.java b/src/com/rjconsultores/ventaboletos/vo/impressaofiscal/StatusPendencia.java new file mode 100644 index 000000000..ddbcd58e0 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/impressaofiscal/StatusPendencia.java @@ -0,0 +1,58 @@ +package com.rjconsultores.ventaboletos.vo.impressaofiscal; + +public class StatusPendencia { + + private Long fiscalr4Id; + private String status; + + public StatusPendencia() { + } + + public StatusPendencia(Long fiscalr4Id, String status) { + super(); + this.fiscalr4Id = fiscalr4Id; + this.status = status; + } + + public Long getFiscalr4Id() { + return fiscalr4Id; + } + + public void setFiscalr4Id(Long fiscalr4Id) { + this.fiscalr4Id = fiscalr4Id; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((fiscalr4Id == null) ? 0 : fiscalr4Id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + StatusPendencia other = (StatusPendencia) obj; + if (fiscalr4Id == null) { + if (other.fiscalr4Id != null) + return false; + } else if (!fiscalr4Id.equals(other.fiscalr4Id)) + return false; + return true; + } + +}