diff --git a/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java b/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java index b5ad3312d..00e9224b2 100644 --- a/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/FiscalDAO.java @@ -25,11 +25,11 @@ public interface FiscalDAO { public int gerarRegistroP2_F2(List lsEsquemaCorrida, Date dataDe, Date dataAte) throws SQLException; - public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isNormal, boolean isCancelados, boolean isPendencias, Connection connection) throws SQLException; + public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, Integer estadoId, boolean isNormal, boolean isCancelados, boolean isPendencias, Connection connection) throws SQLException; - public List buscaDatosFiscaisReducaoZ(Date inicio, Date fim, Integer empresaId, boolean isPendencias, Connection connection) throws SQLException; + public List buscaDatosFiscaisReducaoZ(Date inicio, Date fim, Integer empresaId, Integer estadoId, boolean isPendencias, Connection connection) throws SQLException; - public List buscaDatosFiscaisECFManual(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException; + public List buscaDatosFiscaisECFManual(Date inicio, Date fim, Integer empresaId, Integer estadoId, Connection connection) 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 e4fe759a1..6bf68a287 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -64,7 +64,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO } @Override - public List buscaDatosFiscaisECFManual(Date inicio, Date fim, Integer empresaId, Connection connection) throws SQLException { + public List buscaDatosFiscaisECFManual(Date inicio, Date fim, Integer empresaId, Integer estadoId, Connection connection) throws SQLException { PreparedStatement stmt = null; ResultSet rset = null; @@ -127,7 +127,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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 be.empresacorrida_id = ? "); + sql.append(" AND eo.estado_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, "); @@ -171,10 +172,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO stmt.setFetchSize(100); stmt.setTimestamp(1, new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime())); stmt.setTimestamp(2, new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime())); - - if (empresaId != null) { - stmt.setInt(3, empresaId); - } + stmt.setInt(3, empresaId); + stmt.setInt(4, estadoId); rset = stmt.executeQuery(); while (rset.next()) { @@ -253,12 +252,14 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" ON ifi.fiscalimpressora_id = t2.fiscalimpressora_id "); sql.append(" inner join empresa e ON (TRANSLATE(t2.cnpj, ' / - . ', ' ') = (TRANSLATE(e.cnpj, ' / - . ', ' ')) ) or "); sql.append(" (TRANSLATE(t2.cnpj, ' / - . ', ' ') in "); - sql.append(" (select TRANSLATE(cnpj, ' / - . ', ' ') from inscricao_estadual where empresa_id = ? and activo = 1 )), "); + sql.append(" (select TRANSLATE(cnpj, ' / - . ', ' ') from inscricao_estadual where empresa_id = ? and activo = 1 )) "); + sql.append(" inner join inscricao_estadual ie ON e.empresa_id = ie.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 ie.estado_id = ? "); sql.append(" AND r3.totparcial IN ("); sql.append("'" + SituacaoTributaria.CANCELADO.getValue() + "'").append(", "); sql.append("'" + SituacaoTributaria.DESCONTO.getValue() + "'").append(")"); @@ -322,12 +323,14 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" ON ifi.fiscalimpressora_id = t2.fiscalimpressora_id "); sql.append(" inner join empresa e ON (TRANSLATE(t2.cnpj, ' / - . ', ' ') = (TRANSLATE(e.cnpj, ' / - . ', ' ')) ) or "); sql.append(" (TRANSLATE(t2.cnpj, ' / - . ', ' ') in "); - sql.append(" (select TRANSLATE(cnpj, ' / - . ', ' ') from inscricao_estadual where empresa_id = ? and activo = 1 )), "); + sql.append(" (select TRANSLATE(cnpj, ' / - . ', ' ') from inscricao_estadual where empresa_id = ? and activo = 1 )) "); + sql.append(" inner join inscricao_estadual ie ON e.empresa_id = ie.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 ie.estado_id = ? "); sql.append(" AND r3.totparcial not in ("); sql.append("'" + SituacaoTributaria.NAO_FISCAL.getValue() + "'").append(")"); sql.append(" AND anterior.numserie20 = r2.numserie20 "); @@ -390,12 +393,14 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" ON ifi.fiscalimpressora_id = t2.fiscalimpressora_id "); sql.append(" inner join empresa e ON (TRANSLATE(t2.cnpj, ' / - . ', ' ') = (TRANSLATE(e.cnpj, ' / - . ', ' ')) ) or "); sql.append(" (TRANSLATE(t2.cnpj, ' / - . ', ' ') in "); - sql.append(" (select TRANSLATE(cnpj, ' / - . ', ' ') from inscricao_estadual where empresa_id = ? and activo = 1 )), "); + sql.append(" (select TRANSLATE(cnpj, ' / - . ', ' ') from inscricao_estadual where empresa_id = ? and activo = 1 )) "); + sql.append(" inner join inscricao_estadual ie ON e.empresa_id = ie.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 ie.estado_id = ? "); sql.append(" AND r3.totparcial not in ("); sql.append("'" + SituacaoTributaria.NAO_FISCAL.getValue() + "'").append(")"); sql.append(" AND anterior.numserie20 = r2.numserie20 "); @@ -428,19 +433,19 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO } @Override - public List buscaDatosFiscaisReducaoZ(Date inicio, Date fim, Integer empresaId, boolean isPendencias, Connection connection) throws SQLException { + public List buscaDatosFiscaisReducaoZ(Date inicio, Date fim, Integer empresaId, Integer estadoId, boolean isPendencias, Connection connection) throws SQLException { if (isPendencias) { List list = new ArrayList(); - list.addAll(montarItensReducaoZ(inicio, fim, empresaId, sqlFiscaisReducaoZPendencia(), connection)); - list.addAll(montarItensReducaoZ(inicio, fim, empresaId, sqlFiscaisReducaoZPendenciaInconcistencias(), connection)); + list.addAll(montarItensReducaoZ(inicio, fim, empresaId, estadoId, sqlFiscaisReducaoZPendencia(), connection)); + list.addAll(montarItensReducaoZ(inicio, fim, empresaId, estadoId, sqlFiscaisReducaoZPendenciaInconcistencias(), connection)); return list; } else { - return montarItensReducaoZ(inicio, fim, empresaId, sqlFiscaisReducaoZ(), connection); + return montarItensReducaoZ(inicio, fim, empresaId, estadoId, sqlFiscaisReducaoZ(), connection); } } - private List montarItensReducaoZ(Date inicio, Date fim, Integer empresaId, String sql, Connection connection) throws SQLException { + private List montarItensReducaoZ(Date inicio, Date fim, Integer empresaId, Integer estadoId, String sql, Connection connection) throws SQLException { List listRedZ = new ArrayList(); PreparedStatement stmt = connection.prepareStatement(sql); @@ -449,6 +454,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO stmt.setString(2, DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); stmt.setString(3, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); stmt.setInt(4, empresaId); + stmt.setInt(5, estadoId); ResultSet rset = stmt.executeQuery(); while (rset.next()) { @@ -526,7 +532,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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 be.fechorventa BETWEEN ? AND ? "); - sql.append(" AND be.marca_id = ? "); + sql.append(" AND be.empresacorrida_id = ? "); + sql.append(" AND eo.estado_id = ? "); sql.append(" AND b.motivocancelacion_id IN (31,32,10) "); sql.append(" AND be.indstatusboleto = 'C' "); sql.append(" AND r4.indcancelamento = 'N' "); @@ -614,7 +621,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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 b.marca_id = ? "); + sql.append(" AND b.empresacorrida_id = ? "); + sql.append(" 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 "); @@ -676,11 +684,18 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" 'DESCONTO' as status"); sql.append(" FROM fiscal_r4 r4 "); sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_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 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 b.empresacorrida_id = ? "); + sql.append(" AND co.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, "); @@ -721,8 +736,13 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" AND r4.datamov = r5.datamov AND r4.contador = r5.contador "); sql.append(" INNER JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 AND fi.fiscalimpressora_id = r5.fiscalimpressora_id "); sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_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("WHERE r4.datamov BETWEEN ? AND ? "); - sql.append(" AND b.marca_id = ? "); + sql.append(" AND b.empresacorrida_id = ? "); + sql.append(" AND co.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 "); @@ -769,8 +789,13 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" AND r4.datamov = r5.datamov AND r4.contador = r5.contador "); sql.append(" INNER JOIN fiscal_impressora fi ON fi.numserie20 = r4.numserie20 AND fi.fiscalimpressora_id = r5.fiscalimpressora_id "); sql.append(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_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("WHERE r4.datamov BETWEEN ? AND ? "); - sql.append(" AND b.marca_id = ? "); + sql.append(" AND b.empresacorrida_id = ? "); + sql.append(" AND co.estado_id = ? "); sql.append(" AND r5.imptotalliquido = 1 "); sql.append(" AND b.preciopagado = 0 "); sql.append("GROUP BY r4.numserie20, r4.coo, r4.datamov, "); @@ -816,8 +841,13 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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(" INNER JOIN boleto b ON b.boleto_id = r4.boleto_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("WHERE r4.datamov BETWEEN ? AND ? "); - sql.append(" AND b.marca_id = ? "); + sql.append(" AND b.empresacorrida_id = ? "); + sql.append(" AND co.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 "); @@ -834,28 +864,28 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO } @Override - public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, boolean isNormal, boolean isCancelados, boolean isPendencias, Connection connection) throws SQLException { + public List buscaDatosFiscaisECF(Date inicio, Date fim, Integer empresaId, Integer estadoId, boolean isNormal, boolean isCancelados, boolean isPendencias, Connection connection) throws SQLException { if (isNormal) { - return montarItensECF(inicio, fim, empresaId, connection, sqlFiscaisECF(), false); + return montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECF(), false); } else if (isCancelados) { - return montarItensECF(inicio, fim, empresaId, connection, sqlFiscaisECFCancelados(), true); + return montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFCancelados(), true); } else if (isPendencias) { List list = new ArrayList(); - list.addAll(montarItensECF(inicio, fim, empresaId, connection, sqlFiscaisECFPendenciasCancelado(), false)); - list.addAll(montarItensECF(inicio, fim, empresaId, connection, sqlFiscaisECFPendenciasDesconto(), false)); - list.addAll(montarItensECF(inicio, fim, empresaId, connection, sqlFiscaisECFPendenciasInconsistente(), false)); - list.addAll(montarItensECF(inicio, fim, empresaId, connection, sqlFiscaisECFPendenciasGratuidade(), false)); + list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasCancelado(), false)); + list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasDesconto(), false)); + list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasInconsistente(), false)); + list.addAll(montarItensECF(inicio, fim, empresaId, estadoId, connection, sqlFiscaisECFPendenciasGratuidade(), false)); return list; } return null; } - private List montarItensECF(Date inicio, Date fim, Integer empresaId, Connection connection, String sql, boolean isDate) throws SQLException { + private List montarItensECF(Date inicio, Date fim, Integer empresaId, Integer estadoId, Connection connection, String sql, boolean isDate) throws SQLException { PreparedStatement stmt = connection.prepareStatement(sql); stmt.setFetchSize(100); @@ -867,6 +897,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO stmt.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); } stmt.setInt(3, empresaId); + stmt.setInt(4, estadoId); List list = new ArrayList(); ImportacionFiscalVO fiscal = null; @@ -1326,7 +1357,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO registro.setEstabelecimentoECF(rs.getString("codestabelecimentoimpressora")); registro.setNumeroSerie(rs.getString("numserie")); registro.setInfoPadraoBilhetePassagem("00000060"); - + retorno.add(registro); } @@ -1435,24 +1466,24 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO BigDecimal porc_red_estadual = rs.getBigDecimal("porc_red_estadual"); BigDecimal tributacao_importacao = rs.getBigDecimal("tributacao_importacao"); BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; - + if (red_base_calc_icms != null) { valorBaseCalculoICMS = valorTotal.subtract(valorTotal.multiply(red_base_calc_icms.divide(BigDecimal.valueOf(100d)))); } else { -// if (tributacao_importacao != null) { -// if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { -// if (porc_red_municipal != null) { -// BigDecimal porc = tributacao_importacao.subtract(tributacao_importacao.multiply(porc_red_municipal.divide(BigDecimal.valueOf(100d)))); -// valorBaseCalculoICMS = valorTotal.multiply(porc.divide(BigDecimal.valueOf(100d))); -// } -// } else { -// if (porc_red_estadual != null) { -// BigDecimal porc = tributacao_importacao.subtract(tributacao_importacao.multiply(porc_red_estadual.divide(BigDecimal.valueOf(100d)))); -// valorBaseCalculoICMS = valorTotal.multiply(porc.divide(BigDecimal.valueOf(100d))); -// } -// } -// } - + // if (tributacao_importacao != null) { + // if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { + // if (porc_red_municipal != null) { + // BigDecimal porc = tributacao_importacao.subtract(tributacao_importacao.multiply(porc_red_municipal.divide(BigDecimal.valueOf(100d)))); + // valorBaseCalculoICMS = valorTotal.multiply(porc.divide(BigDecimal.valueOf(100d))); + // } + // } else { + // if (porc_red_estadual != null) { + // BigDecimal porc = tributacao_importacao.subtract(tributacao_importacao.multiply(porc_red_estadual.divide(BigDecimal.valueOf(100d)))); + // valorBaseCalculoICMS = valorTotal.multiply(porc.divide(BigDecimal.valueOf(100d))); + // } + // } + // } + // Email 17/02/2017 valorBaseCalculoICMS = valorTotal; } @@ -1538,42 +1569,42 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO BigDecimal porc_red_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual")); BigDecimal tributacao_importacao = MoneyHelper.instanciar(rs.getBigDecimal("tributacao_importacao")); BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; - + if (red_base_calc_icms != null) { BigDecimal aRed_base_calc_icms = MoneyHelper.dividir(red_base_calc_icms, BigDecimal.valueOf(100d)); valorBaseCalculoICMS = MoneyHelper.subtrair(valorTotal, MoneyHelper.multiplicar(valorTotal, aRed_base_calc_icms)); } else { -// if (tributacao_importacao != null) { -// if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { -// if (porc_red_municipal != null) { -// BigDecimal aPorc_red_municipal = MoneyHelper.dividir(porc_red_municipal, BigDecimal.valueOf(100d)); -// BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_municipal)); -// BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d)); -// -// valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc); -// } -// } else { -// if (porc_red_estadual != null) { -// BigDecimal aPorc_red_estadual = MoneyHelper.dividir(porc_red_estadual, BigDecimal.valueOf(100d)); -// BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_estadual)); -// BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d)); -// -// valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc); -// } -// } -// } - + // if (tributacao_importacao != null) { + // if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { + // if (porc_red_municipal != null) { + // BigDecimal aPorc_red_municipal = MoneyHelper.dividir(porc_red_municipal, BigDecimal.valueOf(100d)); + // BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_municipal)); + // BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d)); + // + // valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc); + // } + // } else { + // if (porc_red_estadual != null) { + // BigDecimal aPorc_red_estadual = MoneyHelper.dividir(porc_red_estadual, BigDecimal.valueOf(100d)); + // BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_estadual)); + // BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d)); + // + // valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc); + // } + // } + // } + // Email 17/02/2017 valorBaseCalculoICMS = valorTotal; } - BigDecimal valorICMSDebitado = BigDecimal.ZERO; - + BigDecimal valorICMSDebitado = BigDecimal.ZERO; + if (tributacao_importacao != null) { BigDecimal aTributacao_importacao = MoneyHelper.dividir(tributacao_importacao, BigDecimal.valueOf(100d)); valorICMSDebitado = MoneyHelper.multiplicar(valorBaseCalculoICMS, aTributacao_importacao); } - + BigDecimal valorICMSIsento = BigDecimal.ZERO; BigDecimal valorICMSOutros = valorTotal.subtract(valorBaseCalculoICMS); @@ -1629,7 +1660,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO registro.setAliquotaICMS(tributacao_importacao); registro.setUfOrigem(ufOrigem); registro.setMunicipioOrigem(municipioOrigem); - + registro.setRedutorBaseCalculoIcms(red_base_calc_icms); registro.setRedutorMunicipalIcms(porc_red_municipal); registro.setRedutorEstadualIcms(porc_red_estadual); @@ -1661,7 +1692,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO @Override public List buscarRegistroECFTipoPRC(final Connection conn, final Date inicio, final Date fim, final Integer empresaId, final String cveestado) { final List retorno = new ArrayList(); - + final StringBuilder sb = new StringBuilder(); sb.append(" select ecf, datamov, municipio_origem, estado_origem, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, SUM(valortotal) as valortotal"); sb.append(" from ("); @@ -1698,12 +1729,12 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sb.append(" where nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and b.activo = 1 and r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); sb.append(" ) group by ecf, datamov, municipio_origem, estado_origem, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao"); - + Session session = null; - + try { session = getSessionFactory().openSession(); - + session.doWork(new Work() { @Override public void execute(Connection connection) throws SQLException { @@ -1712,104 +1743,104 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO ps.setString(2, DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); ps.setLong(3, Long.valueOf(empresaId)); ps.setString(4, cveestado); - + ResultSet rs = ps.executeQuery(); - + ExportacaoECFTipoPRC registro = null; - Map group = new HashMap(); - + Map group = new HashMap(); + while (rs.next()) { BigDecimal valorTotal = MoneyHelper.dividir(MoneyHelper.instanciar(rs.getString("valortotal")), BigDecimal.valueOf(100d)); - + BigDecimal red_base_calc_icms = MoneyHelper.instanciar(rs.getBigDecimal("red_base_calc_icms")); BigDecimal porc_red_municipal = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_municipal")); BigDecimal porc_red_estadual = MoneyHelper.instanciar(rs.getBigDecimal("porc_red_estadual")); BigDecimal tributacao_importacao = MoneyHelper.instanciar(rs.getBigDecimal("tributacao_importacao")); BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO; - + if (tributacao_importacao != null) { tributacao_importacao = MoneyHelper.dividir(tributacao_importacao, BigDecimal.valueOf(100d)); } - + if (red_base_calc_icms != null) { BigDecimal aRed_base_calc_icms = MoneyHelper.dividir(red_base_calc_icms, BigDecimal.valueOf(100d)); valorBaseCalculoICMS = MoneyHelper.subtrair(valorTotal, MoneyHelper.multiplicar(valorTotal, aRed_base_calc_icms)); } else { -// if (tributacao_importacao != null) { -// if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { -// if (porc_red_municipal != null) { -// BigDecimal aPorc_red_municipal = MoneyHelper.dividir(porc_red_municipal, BigDecimal.valueOf(100d)); -// BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_municipal)); -// -// BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d)); -// valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc); -// } -// } else { -// if (porc_red_estadual != null) { -// BigDecimal aPorc_red_estadual = MoneyHelper.dividir(porc_red_estadual, BigDecimal.valueOf(100d)); -// BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_estadual)); -// -// BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d)); -// valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc); -// } -// } -// } - + // if (tributacao_importacao != null) { + // if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { + // if (porc_red_municipal != null) { + // BigDecimal aPorc_red_municipal = MoneyHelper.dividir(porc_red_municipal, BigDecimal.valueOf(100d)); + // BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_municipal)); + // + // BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d)); + // valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc); + // } + // } else { + // if (porc_red_estadual != null) { + // BigDecimal aPorc_red_estadual = MoneyHelper.dividir(porc_red_estadual, BigDecimal.valueOf(100d)); + // BigDecimal porc = MoneyHelper.subtrair(tributacao_importacao, MoneyHelper.multiplicar(tributacao_importacao, aPorc_red_estadual)); + // + // BigDecimal aPorc = MoneyHelper.dividir(porc, BigDecimal.valueOf(100d)); + // valorBaseCalculoICMS = MoneyHelper.multiplicar(valorTotal, aPorc); + // } + // } + // } + // Email 17/02/2017 valorBaseCalculoICMS = valorTotal; } - + BigDecimal valorICMS = BigDecimal.ZERO; - + if (tributacao_importacao != null) { - valorICMS = MoneyHelper.multiplicar(valorBaseCalculoICMS, tributacao_importacao); - } - + valorICMS = MoneyHelper.multiplicar(valorBaseCalculoICMS, tributacao_importacao); + } + String key = rs.getString("ecf") + "|" + rs.getString("datamov") + "|" + rs.getString("estado_origem") + "|" + rs.getString("municipio_origem"); - + if (group.containsKey(key)) { registro = group.get(key); - registro.setValorTotal(registro.getValorTotal().add(valorTotal)); - registro.setValorBaseCalculoICMS(registro.getValorBaseCalculoICMS().add(valorBaseCalculoICMS)); - registro.setValorICMS(registro.getValorICMS().add(valorICMS)); - + registro.setValorTotal(registro.getValorTotal().add(valorTotal)); + registro.setValorBaseCalculoICMS(registro.getValorBaseCalculoICMS().add(valorBaseCalculoICMS)); + registro.setValorICMS(registro.getValorICMS().add(valorICMS)); + } else { registro = new ExportacaoECFTipoPRC(); registro.setEcf(rs.getString("ecf")); registro.setDataEmissao(rs.getString("datamov")); registro.setUfOrigem(rs.getString("estado_origem")); registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem"))); - registro.setValorTotal(valorTotal); - registro.setValorBaseCalculoICMS(valorBaseCalculoICMS); - registro.setValorICMS(valorICMS); + registro.setValorTotal(valorTotal); + registro.setValorBaseCalculoICMS(valorBaseCalculoICMS); + registro.setValorICMS(valorICMS); registro.setTributacao(tributacao_importacao); } - + group.put(key, registro); } for (Map.Entry entry : group.entrySet()) { - retorno.add(entry.getValue()); - } + retorno.add(entry.getValue()); + } rs.close(); ps.close(); } }); - + } catch (Exception e) { log.error(e.getMessage(), e); - + } finally { - session.close(); - + session.close(); + } - + return retorno; } - + @Override public List buscarRegistroRMDTipoPAR(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { List retorno = new ArrayList(); @@ -2179,7 +2210,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO BigDecimal valorIsenta = BigDecimal.ZERO; BigDecimal valorIsentaOutros = BigDecimal.ZERO; - + if (rs.getInt("reg_metropolitana") == 1) { valorIsenta = valorTotal; valorTotal = BigDecimal.ZERO; diff --git a/src/com/rjconsultores/ventaboletos/service/FiscalService.java b/src/com/rjconsultores/ventaboletos/service/FiscalService.java index 3afb1faf2..9d8fac3da 100644 --- a/src/com/rjconsultores/ventaboletos/service/FiscalService.java +++ b/src/com/rjconsultores/ventaboletos/service/FiscalService.java @@ -17,19 +17,19 @@ public interface FiscalService { public int gerarRegistroP2_F2(List lsEsquemaCorrida, Date dataDe, Date dataAte) throws SQLException; - public HashMap importacionFiscalECFValidaReducaoZ(Date inicio, Date fim, Empresa empresa); + public HashMap importacionFiscalECFValidaReducaoZ(Date inicio, Date fim, Empresa empresa, Estado estado); - public File importacionFiscalECF(Date inicio, Date fim, Empresa empresa); + public File importacionFiscalECF(Date inicio, Date fim, Empresa empresa, Estado estado); - public File importacionFiscalReducaoZ(Date inicio, Date fim, Empresa empresa); + public File importacionFiscalReducaoZ(Date inicio, Date fim, Empresa empresa, Estado estado); - public File importacionFiscalReducaoZPendencia(Date inicio, Date fim, Empresa empresa); + public File importacionFiscalReducaoZPendencia(Date inicio, Date fim, Empresa empresa, Estado estado); - public File importacionFiscalECFManual(Date inicio, Date fim, Empresa empresa); + public File importacionFiscalECFManual(Date inicio, Date fim, Empresa empresa, Estado estado); public File importacionNaoFiscal(Date inicio, Date fim, Empresa empresa); - public File importacionFiscalECFCancelados(Date inicio, Date fim, Empresa empresa); + public File importacionFiscalECFCancelados(Date inicio, Date fim, Empresa empresa, Estado estado); public File importacionFiscalECFXls(Empresa empresa, File arquivoTxt); @@ -41,7 +41,7 @@ public interface FiscalService { public File importacionFiscalECFCanceladosXls(Empresa empresa, File arquivoTxt); - public File importacionFiscalECFPendencias(Date inicio, Date fim, Empresa empresa); + public File importacionFiscalECFPendencias(Date inicio, Date fim, Empresa empresa, Estado estado); public File buscarArquivoExportacaoECF(Date value, Date value2, Empresa empresa, Estado estado, String nomeArquivo); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java index 7f852f57f..b0cad420c 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/FiscalServiceImpl.java @@ -106,13 +106,13 @@ public class FiscalServiceImpl implements FiscalService { } @Override - public File importacionFiscalECFManual(Date inicio, Date fim, Empresa empresa) { + public File importacionFiscalECFManual(Date inicio, Date fim, Empresa empresa, Estado estado) { Connection connection = null; try { connection = getConnection(); - List list = fiscalDAO.buscaDatosFiscaisECFManual(inicio, fim, empresa.getEmpresaId(), connection); + List list = fiscalDAO.buscaDatosFiscaisECFManual(inicio, fim, empresa.getEmpresaId(), estado.getEstadoId(), connection); return new ArchivoIntegracionECFManual().importacionFiscalECFManual(inicio, fim, empresa, list); } catch (Exception e) { @@ -131,13 +131,13 @@ public class FiscalServiceImpl implements FiscalService { } @Override - public File importacionFiscalReducaoZPendencia(Date inicio, Date fim, Empresa empresa) { + public File importacionFiscalReducaoZPendencia(Date inicio, Date fim, Empresa empresa, Estado estado) { Connection connection = null; try { connection = getConnection(); - List list = fiscalDAO.buscaDatosFiscaisReducaoZ(inicio, fim, empresa.getEmpresaId(), true, connection); + List list = fiscalDAO.buscaDatosFiscaisReducaoZ(inicio, fim, empresa.getEmpresaId(), estado.getEstadoId(), true, connection); return new ArchivoIntegracionReducaoZ().importacionReducaoZ(inicio, fim, empresa, true, list); } catch (Exception e) { @@ -156,13 +156,13 @@ public class FiscalServiceImpl implements FiscalService { } @Override - public File importacionFiscalReducaoZ(Date inicio, Date fim, Empresa empresa) { + public File importacionFiscalReducaoZ(Date inicio, Date fim, Empresa empresa, Estado estado) { Connection connection = null; try { connection = getConnection(); - List list = fiscalDAO.buscaDatosFiscaisReducaoZ(inicio, fim, empresa.getEmpresaId(), false, connection); + List list = fiscalDAO.buscaDatosFiscaisReducaoZ(inicio, fim, empresa.getEmpresaId(), estado.getEstadoId(), false, connection); return new ArchivoIntegracionReducaoZ().importacionReducaoZ(inicio, fim, empresa, false, list); } catch (Exception e) { @@ -181,12 +181,12 @@ public class FiscalServiceImpl implements FiscalService { } @Override - public File importacionFiscalECFPendencias(Date inicio, Date fim, Empresa empresa) { + public File importacionFiscalECFPendencias(Date inicio, Date fim, Empresa empresa, Estado estado) { Connection connection = null; try { connection = getConnection(); - List list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), false, false, true, connection); + List list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), estado.getEstadoId(), false, false, true, connection); return new ArchivoIntegracionECF().importacionFiscalECFGenerico(inicio, fim, empresa, false, false, true, list); } catch (Exception e) { @@ -205,12 +205,12 @@ public class FiscalServiceImpl implements FiscalService { } @Override - public File importacionFiscalECFCancelados(Date inicio, Date fim, Empresa empresa) { + public File importacionFiscalECFCancelados(Date inicio, Date fim, Empresa empresa, Estado estado) { Connection connection = null; try { connection = getConnection(); - List list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), false, true, false, connection); + List list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), estado.getEstadoId(), false, true, false, connection); return new ArchivoIntegracionECF().importacionFiscalECFGenerico(inicio, fim, empresa, false, true, false, list); } catch (Exception e) { @@ -229,15 +229,15 @@ public class FiscalServiceImpl implements FiscalService { } @Override - public HashMap importacionFiscalECFValidaReducaoZ(Date inicio, Date fim, Empresa empresa) { + public HashMap importacionFiscalECFValidaReducaoZ(Date inicio, Date fim, Empresa empresa, Estado estado) { Connection connection = null; try { connection = getConnection(); - List listEcf = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), true, false, false, connection); + List listEcf = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), estado.getEstadoId(), true, false, false, connection); - List listRedZ = fiscalDAO.buscaDatosFiscaisReducaoZ(inicio, fim, empresa.getEmpresaId(), false, connection); + List listRedZ = fiscalDAO.buscaDatosFiscaisReducaoZ(inicio, fim, empresa.getEmpresaId(), estado.getEstadoId(), false, connection); ArchivoIntegracionECFReducaoZ ecfRedZ = new ArchivoIntegracionECFReducaoZ(); ecfRedZ.importacionFiscalECFValidaReducaoZ(listEcf, listRedZ); @@ -273,12 +273,12 @@ public class FiscalServiceImpl implements FiscalService { } @Override - public File importacionFiscalECF(Date inicio, Date fim, Empresa empresa) { + public File importacionFiscalECF(Date inicio, Date fim, Empresa empresa, Estado estado) { Connection connection = null; try { connection = getConnection(); - List list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), true, false, false, connection); + List list = fiscalDAO.buscaDatosFiscaisECF(inicio, fim, empresa.getEmpresaId(), estado.getEstadoId(), true, false, false, connection); return new ArchivoIntegracionECF().importacionFiscalECFGenerico(inicio, fim, empresa, true, false, false, list); } catch (Exception e) { @@ -809,23 +809,23 @@ public class FiscalServiceImpl implements FiscalService { List tempos = new ArrayList(0); Long begin = 0L; - + begin = Calendar.getInstance().getTimeInMillis(); List listaRegistroECFTipoCFC = fiscalDAO.buscarRegistroECFTipoCFC(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado()); tempos.add(infoTempo("CFC", begin)); - + begin = Calendar.getInstance().getTimeInMillis(); List listaRegistroECFTipoCCF = fiscalDAO.buscarRegistroECFTipoCCF(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado()); tempos.add(infoTempo("CCF", begin)); - + begin = Calendar.getInstance().getTimeInMillis(); List listaRegistroECFTipoICF = fiscalDAO.buscarRegistroECFTipoICF(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado()); tempos.add(infoTempo("ICF", begin)); - + begin = Calendar.getInstance().getTimeInMillis(); List listaRegistroECFTipoPRC = fiscalDAO.buscarRegistroECFTipoPRC(connection, inicio, fim, empresa.getEmpresaId(), estado.getCveestado()); tempos.add(infoTempo("PRC", begin)); - + return exportacaoFiscal.gerarArquivoECF(tempos, nomeArquivo, inicio, fim, estado.getCveestado(), empresa.getNombempresa(), listaRegistroECFTipoCFC, listaRegistroECFTipoCCF, listaRegistroECFTipoICF, listaRegistroECFTipoPRC); @@ -852,8 +852,8 @@ public class FiscalServiceImpl implements FiscalService { final Long tempo = termino - inicio; return descricao + ": " + String.format("%dm %ds", TimeUnit.MILLISECONDS.toMinutes(tempo), TimeUnit.MILLISECONDS.toSeconds(tempo) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(tempo))); - } - + } + @Override public File buscarArquivoExportacaoRMD(Date inicio, Date fim, Empresa empresa, Estado estado) { Connection connection = null; diff --git a/src/com/rjconsultores/ventaboletos/utilerias/archivointegracion/ArchivoIntegracionECFReducaoZ.java b/src/com/rjconsultores/ventaboletos/utilerias/archivointegracion/ArchivoIntegracionECFReducaoZ.java index 843eecc21..70c86c409 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/archivointegracion/ArchivoIntegracionECFReducaoZ.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/archivointegracion/ArchivoIntegracionECFReducaoZ.java @@ -160,7 +160,8 @@ public class ArchivoIntegracionECFReducaoZ { } } - agps.add(atual); + if (atual != null) + agps.add(atual); return agps; } @@ -187,7 +188,8 @@ public class ArchivoIntegracionECFReducaoZ { } } - agps.add(atual); + if (atual != null) + agps.add(atual); return agps; }