diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index 282c9f5b8..59076c1ce 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -17,13 +17,11 @@ import javax.sql.DataSource; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; -import org.hibernate.jdbc.Work; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.FiscalDAO; import com.rjconsultores.ventaboletos.entidad.Aidf; -import com.rjconsultores.ventaboletos.entidad.EsquemaAgrupacion; import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.utilerias.StringHelper; @@ -46,7 +44,7 @@ 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 { public static final String DATE_FORMAT_FISCAL = "yyyyMMdd"; private static Logger log = Logger.getLogger(FiscalHibernateDAO.class); @@ -1626,10 +1624,10 @@ public class FiscalHibernateDAO extends GenericHibernateDAO buscarRegistroECFTipoPRC(Connection connection, final Date inicio, final Date fim, final Integer empresaId, final String cveestado) { - final List retorno = new ArrayList(); + public List buscarRegistroECFTipoPRC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { + List retorno = new ArrayList(); - final StringBuilder sb = new StringBuilder(); + 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 ("); @@ -1667,86 +1665,81 @@ public class FiscalHibernateDAO extends GenericHibernateDAO group = new HashMap(); - - while (rs.next()) { - BigDecimal valorTotal = BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100); - - BigDecimal red_base_calc_icms = rs.getBigDecimal("red_base_calc_icms"); - BigDecimal porc_red_municipal = rs.getBigDecimal("porc_red_municipal"); - 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)))); + Map group = new HashMap(); + + while (rs.next()) { + BigDecimal valorTotal = BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100); + + BigDecimal red_base_calc_icms = rs.getBigDecimal("red_base_calc_icms"); + BigDecimal porc_red_municipal = rs.getBigDecimal("porc_red_municipal"); + 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 (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 (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))); } } - - BigDecimal valorICMS = (tributacao_importacao == null ? BigDecimal.ZERO : valorBaseCalculoICMS.multiply(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)); - - } 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); - } - - group.put(key, registro); } - - for (Map.Entry entry : group.entrySet()) { - retorno.add(entry.getValue()); - } - - rs.close(); - ps.close(); } - }); + + BigDecimal valorICMS = (tributacao_importacao == null ? BigDecimal.ZERO : valorBaseCalculoICMS.multiply(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)); + + } 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); + } + + group.put(key, registro); + } + + for (Map.Entry entry : group.entrySet()) { + retorno.add(entry.getValue()); + } + + rs.close(); + ps.close(); + } catch (Exception e) { log.error(e.getMessage(), e); } - + return retorno; } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FlywayUtilHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FlywayUtilHibernateDAO.java index ad0b58a72..94059d257 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FlywayUtilHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FlywayUtilHibernateDAO.java @@ -27,8 +27,7 @@ public class FlywayUtilHibernateDAO extends GenericHibernateDAO