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.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"
|
// 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.setTributacaoICMS(registro.getCodigoSituacaoTribColunaB() == 40 ? 2 : 1);
|
||||||
|
|
||||||
registro.setValorBaseCalculoICMS(BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100));
|
registro.setValorBaseCalculoICMS(valorBaseCalculoICMS);
|
||||||
registro.setAliquotaICMS(BigDecimal.valueOf(rs.getDouble("tributacao_importacao")));
|
registro.setAliquotaICMS(tributacao_importacao);
|
||||||
|
|
||||||
retorno.add(registro);
|
retorno.add(registro);
|
||||||
}
|
}
|
||||||
|
@ -1481,10 +1507,33 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
||||||
Map<String, ExportacaoECFTipoICF> group = new HashMap<String, ExportacaoECFTipoICF>();
|
Map<String, ExportacaoECFTipoICF> group = new HashMap<String, ExportacaoECFTipoICF>();
|
||||||
|
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
BigDecimal aliquotaICMS = BigDecimal.valueOf(rs.getDouble("tributacao_importacao"));
|
|
||||||
BigDecimal valorTotal = BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100);
|
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 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 valorICMSIsento = BigDecimal.ZERO;
|
||||||
BigDecimal valorICMSOutros = BigDecimal.ZERO;
|
BigDecimal valorICMSOutros = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@ -1531,7 +1580,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
||||||
registro.setUfDestino(ufDestino);
|
registro.setUfDestino(ufDestino);
|
||||||
registro.setCfop(cfop); // IM=5357; Serviço IE= 6357
|
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.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.setUfOrigem(ufOrigem);
|
||||||
registro.setMunicipioOrigem(municipioOrigem);
|
registro.setMunicipioOrigem(municipioOrigem);
|
||||||
}
|
}
|
||||||
|
@ -1564,6 +1613,9 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
||||||
List<ExportacaoECFTipoPRC> retorno = new ArrayList<ExportacaoECFTipoPRC>();
|
List<ExportacaoECFTipoPRC> retorno = new ArrayList<ExportacaoECFTipoPRC>();
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
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(" select");
|
||||||
sb.append(" r4.numserie20 as ecf,");
|
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,");
|
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(" 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(" 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 {
|
try {
|
||||||
PreparedStatement ps = connection.prepareStatement(sb.toString());
|
PreparedStatement ps = connection.prepareStatement(sb.toString());
|
||||||
ps.setLong(1, Long.valueOf(DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)));
|
ps.setLong(1, Long.valueOf(DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)));
|
||||||
|
@ -1602,8 +1656,32 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
||||||
|
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
BigDecimal valorTotal = BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100);
|
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 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 = new ExportacaoECFTipoPRC();
|
||||||
registro.setUfOrigem(rs.getString("estado_origem"));
|
registro.setUfOrigem(rs.getString("estado_origem"));
|
||||||
|
|
Loading…
Reference in New Issue