Exportação Fiscal : ECF e RMD (issue 8120)
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@62780 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
d97992c6ef
commit
31f4aeba1a
|
@ -1409,13 +1409,39 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
registro.setCodigoSituacaoTribColunaB(rs.getInt("red_base_calc_icms") == 0 ? 0 : 20);
|
||||
}
|
||||
|
||||
registro.setValorTotal(BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100));
|
||||
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 (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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
registro.setValorTotal(valorTotal);
|
||||
|
||||
// 1 - Demais; 2 - Região Metropolitanao ou seja, quando o campo CSTB for "40", esse campo deve vir "2". Do contrário, deve vir "1"
|
||||
registro.setTributacaoICMS(registro.getCodigoSituacaoTribColunaB() == 40 ? 2 : 1);
|
||||
|
||||
registro.setValorBaseCalculoICMS(BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100));
|
||||
registro.setAliquotaICMS(BigDecimal.valueOf(rs.getDouble("tributacao_importacao")));
|
||||
registro.setValorBaseCalculoICMS(valorBaseCalculoICMS);
|
||||
registro.setAliquotaICMS(tributacao_importacao);
|
||||
|
||||
retorno.add(registro);
|
||||
}
|
||||
|
@ -1481,10 +1507,33 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
Map<String, ExportacaoECFTipoICF> group = new HashMap<String, ExportacaoECFTipoICF>();
|
||||
|
||||
while (rs.next()) {
|
||||
BigDecimal aliquotaICMS = BigDecimal.valueOf(rs.getDouble("tributacao_importacao"));
|
||||
BigDecimal valorTotal = BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100);
|
||||
BigDecimal valorBaseCalculoICMS = BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100);
|
||||
BigDecimal valorICMSDebitado = valorBaseCalculoICMS.multiply(aliquotaICMS);
|
||||
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 (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 valorICMSDebitado = valorBaseCalculoICMS.multiply(tributacao_importacao);
|
||||
BigDecimal valorICMSIsento = BigDecimal.ZERO;
|
||||
BigDecimal valorICMSOutros = BigDecimal.ZERO;
|
||||
|
||||
|
@ -1531,7 +1580,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
registro.setUfDestino(ufDestino);
|
||||
registro.setCfop(cfop); // IM=5357; Serviço IE= 6357
|
||||
registro.setCodigoSituacaoTribColunaB(codigoSituacaoTribColunaB); // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos
|
||||
registro.setAliquotaICMS(aliquotaICMS);
|
||||
registro.setAliquotaICMS(tributacao_importacao);
|
||||
registro.setUfOrigem(ufOrigem);
|
||||
registro.setMunicipioOrigem(municipioOrigem);
|
||||
}
|
||||
|
@ -1564,6 +1613,9 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
List<ExportacaoECFTipoPRC> retorno = new ArrayList<ExportacaoECFTipoPRC>();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(" select municipio_origem, estado_origem, red_base_calc_icms, porc_red_municipal, porc_red_estadual, SUM(valortotal) as valortotal");
|
||||
sb.append(" from (");
|
||||
|
||||
sb.append(" select");
|
||||
sb.append(" r4.numserie20 as ecf,");
|
||||
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,");
|
||||
|
@ -1589,6 +1641,8 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
sb.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id");
|
||||
sb.append(" where 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 municipio_origem, estado_origem, red_base_calc_icms, porc_red_municipal, porc_red_estadual");
|
||||
|
||||
try {
|
||||
PreparedStatement ps = connection.prepareStatement(sb.toString());
|
||||
ps.setLong(1, Long.valueOf(DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)));
|
||||
|
@ -1601,9 +1655,33 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
ExportacaoECFTipoPRC registro = null;
|
||||
|
||||
while (rs.next()) {
|
||||
BigDecimal valorTotal = BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100);
|
||||
BigDecimal valorBaseCalculoICMS = BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100);
|
||||
BigDecimal valorICMS = BigDecimal.ZERO; // FIXME: Falta definir informação para a Exportação Fiscal ECF
|
||||
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 (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 = valorBaseCalculoICMS.multiply(tributacao_importacao);
|
||||
|
||||
registro = new ExportacaoECFTipoPRC();
|
||||
registro.setUfOrigem(rs.getString("estado_origem"));
|
||||
|
|
Loading…
Reference in New Issue