julio 2017-08-01 02:16:08 +00:00
parent 744d3729ec
commit 393f5b131e
3 changed files with 56 additions and 61 deletions

View File

@ -512,7 +512,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
return listRedZ; return listRedZ;
} }
private String sqlFiscaisECFCancelados(boolean isEstadoTodos) { private String sqlFiscaisECFCancelados(boolean isEstadoTodos, boolean isBoletoHist) {
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
sql.append("SELECT r4.numserie20 as numImpressora, "); 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(" ee.impingreso as valorMulta, ");
sql.append(" cs.descclase as claseServicio, "); sql.append(" cs.descclase as claseServicio, ");
sql.append(" translate(fi.numcnpj, ' / - . ', ' ') as cnpjEcf "); 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.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.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) "); 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 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 ciudad cd ON d.ciudad_id = cd.ciudad_id ");
sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id "); sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id ");
sql.append(" WHERE caj.fechorventa BETWEEN ? AND ? "); sql.append(" WHERE caj.fechorventa BETWEEN :DATE_INICIO AND :DATE_FIM ");
sql.append(" and me.empresa_id = ? "); sql.append(" and me.empresa_id = :EMPRESA_ID ");
sql.append(isEstadoTodos ? "" : " AND eo.estado_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.motivocancelacion_id IN (31,32,10,37,99,36) ");
sql.append(" and caj.indcancelacion = 1 "); sql.append(" and caj.indcancelacion = 1 ");
sql.append(" and caj.indstatusboleto = 'C' "); 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 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 ciudad cd ON d.ciudad_id = cd.ciudad_id ");
sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id "); sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id ");
sql.append(" WHERE r4.datamov BETWEEN ? AND ? "); sql.append(" WHERE r4.datamov BETWEEN :STR_INICIO AND :STR_FIM ");
sql.append(" AND m.empresa_id = ? "); sql.append(" AND m.empresa_id = :EMPRESA_ID ");
sql.append(isEstadoTodos ? "" : " AND eo.estado_id = ? "); sql.append(isEstadoTodos ? "" : " AND eo.estado_id = :ESTADO_ID ");
sql.append(" AND (r4.indcancelamento = 'N') "); sql.append(" AND (r4.indcancelamento = 'N') ");
sql.append(" "); sql.append(" ");
sql.append(" union all "); 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 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 ciudad cd ON d.ciudad_id = cd.ciudad_id ");
sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id "); sql.append(" INNER JOIN estado ed ON ed.estado_id = cd.estado_id ");
sql.append(" WHERE r4.datamov BETWEEN ? AND ? "); sql.append(" WHERE r4.datamov BETWEEN :STR_INICIO AND :STR_FIM ");
sql.append(" AND m.empresa_id = ? "); sql.append(" AND m.empresa_id = :EMPRESA_ID ");
sql.append(isEstadoTodos ? "" : " AND eo.estado_id = ? "); sql.append(isEstadoTodos ? "" : " AND eo.estado_id = :ESTADO_ID ");
sql.append(" and (r4.indcancelamento = 'S' "); sql.append(" and (r4.indcancelamento = 'S' ");
sql.append(" AND exists (SELECT r3.numserie20 "); sql.append(" AND exists (SELECT r3.numserie20 ");
sql.append(" FROM fiscal_r3 r3 "); 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(" 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(" 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(" 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(" WHERE r4.datamov BETWEEN :STR_INICIO AND :STR_FIM ");
sql.append(" AND m.empresa_id = ? "); sql.append(" AND m.empresa_id = :EMPRESA_ID ");
sql.append(isEstadoTodos ? "" : " AND co.estado_id = ? "); sql.append(isEstadoTodos ? "" : " AND co.estado_id = :ESTADO_ID ");
sql.append(" AND r5.impdesconto <> 0 "); sql.append(" AND r5.impdesconto <> 0 ");
sql.append(" GROUP BY r4.numserie20, r4.coo, r4.datamov, r4.cpfcnpjcliente, "); sql.append(" GROUP BY r4.numserie20, r4.coo, r4.datamov, r4.cpfcnpjcliente, ");
sql.append(" r4.imptotalliquido, fi.numcnpj, fi.numserie, r5.impdesconto, "); 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(" 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 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 ciudad co ON o.ciudad_id = co.ciudad_id ");
sql.append("WHERE r4.datamov BETWEEN ? AND ? "); sql.append("WHERE r4.datamov BETWEEN :STR_INICIO AND :STR_FIM ");
sql.append(" AND m.empresa_id = ? "); sql.append(" AND m.empresa_id = :EMPRESA_ID ");
sql.append(isEstadoTodos ? "" : " AND co.estado_id = ? "); sql.append(isEstadoTodos ? "" : " AND co.estado_id = :ESTADO_ID ");
sql.append(" AND r4.indcancelamento = 'S' "); sql.append(" AND r4.indcancelamento = 'S' ");
sql.append(" AND (SELECT r3.numserie20 FROM fiscal_r3 r3 where r3.numserie20 = r4.numserie20"); 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 "); 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(" 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 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 ciudad co ON o.ciudad_id = co.ciudad_id ");
sql.append("WHERE r4.datamov BETWEEN ? AND ? "); sql.append("WHERE r4.datamov BETWEEN :STR_INICIO AND :STR_FIM ");
sql.append(" AND m.empresa_id = ? "); sql.append(" AND m.empresa_id = :EMPRESA_ID ");
sql.append(isEstadoTodos ? "" : " AND co.estado_id = ? "); sql.append(isEstadoTodos ? "" : " AND co.estado_id = :ESTADO_ID ");
sql.append(" AND r5.imptotalliquido = 1 "); sql.append(" AND r5.imptotalliquido = 1 ");
sql.append(" AND b.preciopagado = 0 "); sql.append(" AND b.preciopagado = 0 ");
sql.append("GROUP BY r4.numserie20, r4.coo, r4.datamov, "); 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(" 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 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 ciudad co ON o.ciudad_id = co.ciudad_id ");
sql.append("WHERE r4.datamov BETWEEN ? AND ? "); sql.append("WHERE r4.datamov BETWEEN :STR_INICIO AND :STR_FIM ");
sql.append(" AND m.empresa_id = ? "); sql.append(" AND m.empresa_id = :EMPRESA_ID ");
sql.append(isEstadoTodos ? "" : " AND co.estado_id = ? "); sql.append(isEstadoTodos ? "" : " AND co.estado_id = :ESTADO_ID ");
sql.append(" AND r4.indcancelamento = 'S' "); 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 (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 "); 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<ImportacionFiscalVO> buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, Integer estadoId, boolean isNormal, boolean isCancelados, boolean isPendencias, Connection connection, boolean isBoletoHist) throws SQLException { public List<ImportacionFiscalVO> buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, Integer estadoId, boolean isNormal, boolean isCancelados, boolean isPendencias, Connection connection, boolean isBoletoHist) throws SQLException {
if (isNormal) { 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) { } 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) { } else if (isPendencias) {
List<ImportacionFiscalVO> list = new ArrayList<ImportacionFiscalVO>(); List<ImportacionFiscalVO> list = new ArrayList<ImportacionFiscalVO>();
list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasCancelado(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, 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, 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, false)); list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasGratuidade(isEstadoTodos(estadoId)), false));
return list; return list;
} }
return null; return null;
} }
private List<ImportacionFiscalVO> montarItensECF(Date inicio, Date fim, Integer empresaId, Integer estadoId, Connection connection, String sql, boolean isDate, boolean isUnion) throws SQLException { private List<ImportacionFiscalVO> montarItensECF(Date inicio, Date fim, Integer empresaId, Integer estadoId, Connection connection, String sql, boolean isDate) throws SQLException {
boolean isEstadoTodos = isEstadoTodos(estadoId); boolean isEstadoTodos = isEstadoTodos(estadoId);
PreparedStatement stmt = connection.prepareStatement(sql); NamedParameterStatement stmt = new NamedParameterStatement(connection, sql);
stmt.setFetchSize(100); stmt.getStatement().setFetchSize(100);
stmt.setInt("EMPRESA_ID", empresaId);
if (isDate) { if (isDate) {
stmt.setTimestamp(1, new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime())); stmt.setTimestamp("DATE_INICIO", new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime()));
stmt.setTimestamp(2, new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime())); stmt.setTimestamp("DATE_FIM", new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime()));
} else { } else {
stmt.setString(1, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); stmt.setString("STR_INICIO", DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL));
stmt.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); stmt.setString("STR_FIM", 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);
} }
if (!isEstadoTodos) { if (!isEstadoTodos) {
stmt.setInt(4, estadoId); stmt.setInt("ESTADO_ID", 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);
} }
List<ImportacionFiscalVO> list = new ArrayList<ImportacionFiscalVO>(); List<ImportacionFiscalVO> list = new ArrayList<ImportacionFiscalVO>();
@ -1020,7 +1015,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
String codProduto = null; String codProduto = null;
List<String> columns = new ArrayList<String>(); List<String> columns = new ArrayList<String>();
ResultSetMetaData rsMetaData = stmt.getMetaData(); ResultSetMetaData rsMetaData = stmt.getStatement().getMetaData();
for (int i = 1; i <= rsMetaData.getColumnCount(); i++) { for (int i = 1; i <= rsMetaData.getColumnCount(); i++) {
columns.add(rsMetaData.getColumnName(i).toLowerCase()); columns.add(rsMetaData.getColumnName(i).toLowerCase());
} }

View File

@ -29,7 +29,7 @@ public interface FiscalService {
public File importacionNaoFiscal(Date inicio, Date fim, Empresa empresa, Estado estado); 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); public File importacionFiscalECFXls(Empresa empresa, File arquivoTxt);

View File

@ -295,12 +295,12 @@ public class FiscalServiceImpl implements FiscalService {
} }
@Override @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; Connection connection = null;
try { try {
connection = getConnection(); connection = getConnection();
List<ImportacionFiscalVO> list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), estado.getEstadoId(), false, true, false, connection, false); List<ImportacionFiscalVO> 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); return new ArchivoIntegracionECF().importacionFiscalECFGenerico(inicio, fim, empresa, false, true, false, list);
} catch (Exception e) { } catch (Exception e) {