From 393f5b131ef2ff24f8975cf9770fdf0155369554 Mon Sep 17 00:00:00 2001 From: julio Date: Tue, 1 Aug 2017 02:16:08 +0000 Subject: [PATCH] fixes bug #9397 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@72107 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/hibernate/FiscalHibernateDAO.java | 111 +++++++++--------- .../ventaboletos/service/FiscalService.java | 2 +- .../service/impl/FiscalServiceImpl.java | 4 +- 3 files changed, 56 insertions(+), 61 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index 42969e03d..f7d24ddcf 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -512,7 +512,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO return listRedZ; } - private String sqlFiscaisECFCancelados(boolean isEstadoTodos) { + private String sqlFiscaisECFCancelados(boolean isEstadoTodos, boolean isBoletoHist) { StringBuilder sql = new StringBuilder(); sql.append("SELECT r4.numserie20 as numImpressora, "); @@ -544,8 +544,20 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" ee.impingreso as valorMulta, "); sql.append(" cs.descclase as claseServicio, "); sql.append(" translate(fi.numcnpj, ' / - . ', ' ') as cnpjEcf "); - sql.append(" FROM caja caj "); - sql.append(" INNER JOIN caja cajb on (((cajb.feccorrida = caj.feccorrida) or (cajb.feccorrida is null and caj.feccorrida is null)) "); + + sql.append(" FROM "); + if (isBoletoHist) + sql.append(" caja_hist caj "); + else + sql.append(" caja caj "); + + sql.append(" INNER JOIN "); + if (isBoletoHist) + sql.append(" caja_hist cajb "); + else + sql.append(" caja cajb "); + + sql.append(" on (((cajb.feccorrida = caj.feccorrida) or (cajb.feccorrida is null and caj.feccorrida is null)) "); sql.append(" and ((cajb.numasiento = caj.numasiento) or (cajb.numasiento is null and caj.numasiento is null)) "); sql.append(" and cajb.numfoliosistema = caj.numfoliosistema and cajb.origen_id = caj.origen_id and cajb.destino_id=caj.destino_id "); sql.append(" and ((cajb.tipoventa_id not in (5,12,18,81,41,49) "); @@ -566,9 +578,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" INNER JOIN parada d ON coalesce(ase.aliasdestino_id, cajb.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 caj.fechorventa BETWEEN ? AND ? "); - sql.append(" and me.empresa_id = ? "); - sql.append(isEstadoTodos ? "" : " AND eo.estado_id = ? "); + sql.append(" WHERE caj.fechorventa BETWEEN :DATE_INICIO AND :DATE_FIM "); + sql.append(" and me.empresa_id = :EMPRESA_ID "); + sql.append(isEstadoTodos ? "" : " AND eo.estado_id = :ESTADO_ID "); sql.append(" and caj.motivocancelacion_id IN (31,32,10,37,99,36) "); sql.append(" and caj.indcancelacion = 1 "); sql.append(" and caj.indstatusboleto = 'C' "); @@ -672,9 +684,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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(" WHERE r4.datamov BETWEEN :STR_INICIO AND :STR_FIM "); + sql.append(" AND m.empresa_id = :EMPRESA_ID "); + sql.append(isEstadoTodos ? "" : " AND eo.estado_id = :ESTADO_ID "); sql.append(" AND (r4.indcancelamento = 'N') "); sql.append(" "); sql.append(" union all "); @@ -736,9 +748,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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(" WHERE r4.datamov BETWEEN :STR_INICIO AND :STR_FIM "); + sql.append(" AND m.empresa_id = :EMPRESA_ID "); + sql.append(isEstadoTodos ? "" : " AND eo.estado_id = :ESTADO_ID "); sql.append(" and (r4.indcancelamento = 'S' "); sql.append(" AND exists (SELECT r3.numserie20 "); sql.append(" FROM fiscal_r3 r3 "); @@ -783,9 +795,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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 m.empresa_id = ? "); - sql.append(isEstadoTodos ? "" : " AND co.estado_id = ? "); + sql.append(" WHERE r4.datamov BETWEEN :STR_INICIO AND :STR_FIM "); + sql.append(" AND m.empresa_id = :EMPRESA_ID "); + sql.append(isEstadoTodos ? "" : " AND co.estado_id = :ESTADO_ID "); sql.append(" AND r5.impdesconto <> 0 "); sql.append(" GROUP BY r4.numserie20, r4.coo, r4.datamov, r4.cpfcnpjcliente, "); sql.append(" r4.imptotalliquido, fi.numcnpj, fi.numserie, r5.impdesconto, "); @@ -831,9 +843,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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("WHERE r4.datamov BETWEEN ? AND ? "); - sql.append(" AND m.empresa_id = ? "); - sql.append(isEstadoTodos ? "" : " AND co.estado_id = ? "); + sql.append("WHERE r4.datamov BETWEEN :STR_INICIO AND :STR_FIM "); + sql.append(" AND m.empresa_id = :EMPRESA_ID "); + sql.append(isEstadoTodos ? "" : " AND co.estado_id = :ESTADO_ID "); sql.append(" AND r4.indcancelamento = 'S' "); sql.append(" AND (SELECT r3.numserie20 FROM fiscal_r3 r3 where r3.numserie20 = r4.numserie20"); sql.append(" AND r3.datamov = r4.datamov AND r3.totparcial IN ('Can-T')) IS NOT NULL "); @@ -885,9 +897,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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("WHERE r4.datamov BETWEEN ? AND ? "); - sql.append(" AND m.empresa_id = ? "); - sql.append(isEstadoTodos ? "" : " AND co.estado_id = ? "); + sql.append("WHERE r4.datamov BETWEEN :STR_INICIO AND :STR_FIM "); + sql.append(" AND m.empresa_id = :EMPRESA_ID "); + sql.append(isEstadoTodos ? "" : " AND co.estado_id = :ESTADO_ID "); sql.append(" AND r5.imptotalliquido = 1 "); sql.append(" AND b.preciopagado = 0 "); sql.append("GROUP BY r4.numserie20, r4.coo, r4.datamov, "); @@ -938,9 +950,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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("WHERE r4.datamov BETWEEN ? AND ? "); - sql.append(" AND m.empresa_id = ? "); - sql.append(isEstadoTodos ? "" : " AND co.estado_id = ? "); + sql.append("WHERE r4.datamov BETWEEN :STR_INICIO AND :STR_FIM "); + sql.append(" AND m.empresa_id = :EMPRESA_ID "); + sql.append(isEstadoTodos ? "" : " AND co.estado_id = :ESTADO_ID "); sql.append(" AND r4.indcancelamento = 'S' "); sql.append(" AND (SELECT MAX(r3.numserie20) FROM fiscal_r3 r3 where r3.numserie20 = r4.numserie20"); sql.append(" AND r3.datamov = r4.datamov AND r3.totparcial IN ('Can-T', 'DT')) IS NULL "); @@ -960,59 +972,42 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, Integer estadoId, boolean isNormal, boolean isCancelados, boolean isPendencias, Connection connection, boolean isBoletoHist) throws SQLException { if (isNormal) { - return montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECF(isEstadoTodos(estadoId), isBoletoHist), false, true); + return montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECF(isEstadoTodos(estadoId), isBoletoHist), false); } else if (isCancelados) { - return montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFCancelados(isEstadoTodos(estadoId)), true, false); + return montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFCancelados(isEstadoTodos(estadoId), isBoletoHist), true); } else if (isPendencias) { List list = new ArrayList(); - list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasCancelado(isEstadoTodos(estadoId)), false, false)); - list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasDesconto(isEstadoTodos(estadoId)), false, false)); - list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasInconsistente(isEstadoTodos(estadoId)), false, false)); - list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasGratuidade(isEstadoTodos(estadoId)), false, false)); + list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasCancelado(isEstadoTodos(estadoId)), false)); + list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasDesconto(isEstadoTodos(estadoId)), false)); + list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasInconsistente(isEstadoTodos(estadoId)), false)); + list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasGratuidade(isEstadoTodos(estadoId)), false)); return list; } return null; } - private List montarItensECF(Date inicio, Date fim, Integer empresaId, Integer estadoId, Connection connection, String sql, boolean isDate, boolean isUnion) throws SQLException { + private List montarItensECF(Date inicio, Date fim, Integer empresaId, Integer estadoId, Connection connection, String sql, boolean isDate) throws SQLException { boolean isEstadoTodos = isEstadoTodos(estadoId); - PreparedStatement stmt = connection.prepareStatement(sql); - stmt.setFetchSize(100); + NamedParameterStatement stmt = new NamedParameterStatement(connection, sql); + stmt.getStatement().setFetchSize(100); + + stmt.setInt("EMPRESA_ID", empresaId); if (isDate) { - stmt.setTimestamp(1, new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime())); - stmt.setTimestamp(2, new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime())); + stmt.setTimestamp("DATE_INICIO", new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime())); + stmt.setTimestamp("DATE_FIM", new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime())); } else { - stmt.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); - stmt.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); - - if (isUnion) { - stmt.setString(isEstadoTodos ? 4 : 5, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); - stmt.setString(isEstadoTodos ? 5 : 6, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); - } - } - stmt.setInt(3, empresaId); - - if (isUnion) { - stmt.setInt(6, empresaId); + stmt.setString("STR_INICIO", DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); + stmt.setString("STR_FIM", DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); } if (!isEstadoTodos) { - stmt.setInt(4, estadoId); - if (isUnion) { - stmt.setInt(8, estadoId); - } - } - - if (!isUnion) { - 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); + stmt.setInt("ESTADO_ID", estadoId); } List list = new ArrayList(); @@ -1020,7 +1015,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO String codProduto = null; List columns = new ArrayList(); - ResultSetMetaData rsMetaData = stmt.getMetaData(); + ResultSetMetaData rsMetaData = stmt.getStatement().getMetaData(); for (int i = 1; i <= rsMetaData.getColumnCount(); i++) { columns.add(rsMetaData.getColumnName(i).toLowerCase()); } diff --git a/src/com/rjconsultores/ventaboletos/service/FiscalService.java b/src/com/rjconsultores/ventaboletos/service/FiscalService.java index 04154f2ee..948e6be83 100644 --- a/src/com/rjconsultores/ventaboletos/service/FiscalService.java +++ b/src/com/rjconsultores/ventaboletos/service/FiscalService.java @@ -29,7 +29,7 @@ public interface FiscalService { public File importacionNaoFiscal(Date inicio, Date fim, Empresa empresa, Estado estado); - public File importacionFiscalECFCancelados(Date inicio, Date fim, Empresa empresa, Estado estado); + public File importacionFiscalECFCancelados(Date inicio, Date fim, Empresa empresa, Estado estado, boolean isBoletoHist); public File importacionFiscalECFXls(Empresa empresa, File arquivoTxt); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java index 1e6f2513e..07b8f4df1 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java @@ -295,12 +295,12 @@ public class FiscalServiceImpl implements FiscalService { } @Override - public File importacionFiscalECFCancelados(Date inicio, Date fim, Empresa empresa, Estado estado) { + public File importacionFiscalECFCancelados(Date inicio, Date fim, Empresa empresa, Estado estado, boolean isBoletoHist) { Connection connection = null; try { connection = getConnection(); - List list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), estado.getEstadoId(), false, true, false, connection, false); + List list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), estado.getEstadoId(), false, true, false, connection, isBoletoHist); return new ArchivoIntegracionECF().importacionFiscalECFGenerico(inicio, fim, empresa, false, true, false, list); } catch (Exception e) {