Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ private decimal CalculaIcmsDesonerado(decimal valorBase, TipoCalculoIcmsDesonera

if (tipoCalculoIcmsDesonerado == TipoCalculoIcmsDesonerado.BaseSimples)
{
return valorBase * aliquota;
return (valorBase / (1 - aliquota)) * aliquota;
}
else if (tipoCalculoIcmsDesonerado == TipoCalculoIcmsDesonerado.BasePorDentro)
{
Expand All @@ -70,10 +70,14 @@ private decimal CalculaIcmsDesonerado(decimal valorBase, TipoCalculoIcmsDesonera
}
else if (_tributavel.Cst == Cst.Cst30 || _tributavel.Cst == Cst.Cst40) //base por dentro 30 ou 40: ICMS Desonerado = (Preço na Nota Fiscal / (1 - Alíquota)) * Alíquota
{
return (valorBase / (1 - aliquota)) * aliquota;
return valorBase * aliquota;
}
}
return 0m;
//Links consulta:
//https://nfe.io/blog/financeiro/desoneracao-de-icms/
//https://webmaissistemas.com.br/blog/icms-desonerado/
//https://focusnfe.com.br/blog/icms-desonarado/
}
}
}
12 changes: 6 additions & 6 deletions src/TestesUnitarios/ResultadoTributacaoTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public void Testa_ICSM_Desonerado_Base_Simples_Cst_20()
var tributacao = new ResultadoTributacao(produto, Crt.RegimeNormal, TipoOperacao.OperacaoInterna, TipoPessoa.Juridica, tipoCalculoIcmsDesonerado: TipoCalculoIcmsDesonerado.BaseSimples);
var resultado = tributacao.Calcular();
decimal valorArredondado = resultado.ValorIcmsDesonerado.Arredondar();
Assert.Equal(0.24m, valorArredondado);
Assert.Equal(0.28m, valorArredondado);
}

[Fact]
Expand Down Expand Up @@ -85,7 +85,7 @@ public void Testa_ICSM_Desonerado_Base_Simples_Cst_30()
var tributacao = new ResultadoTributacao(produto, Crt.RegimeNormal, TipoOperacao.OperacaoInterna, TipoPessoa.Juridica, tipoCalculoIcmsDesonerado: TipoCalculoIcmsDesonerado.BaseSimples);
var resultado = tributacao.Calcular();
decimal valorArredondado = resultado.ValorIcmsDesonerado.Arredondar();
Assert.Equal(40m, valorArredondado);
Assert.Equal(50m, valorArredondado);
}

[Fact]
Expand All @@ -102,7 +102,7 @@ public void Testa_ICSM_Desonerado_Base_Por_Dentro_Cst_30()
var tributacao = new ResultadoTributacao(produto, Crt.RegimeNormal, TipoOperacao.OperacaoInterna, TipoPessoa.Juridica, tipoCalculoIcmsDesonerado: TipoCalculoIcmsDesonerado.BasePorDentro);
var resultado = tributacao.Calcular();
decimal valorArredondado = resultado.ValorIcmsDesonerado.Arredondar();
Assert.Equal(50m, valorArredondado);
Assert.Equal(40m, valorArredondado);
}

[Fact]
Expand All @@ -119,7 +119,7 @@ public void Testa_ICSM_Desonerado_Base_Simples_Cst_40()
var tributacao = new ResultadoTributacao(produto, Crt.RegimeNormal, TipoOperacao.OperacaoInterna, TipoPessoa.Juridica, tipoCalculoIcmsDesonerado: TipoCalculoIcmsDesonerado.BaseSimples);
var resultado = tributacao.Calcular();
decimal valorArredondado = resultado.ValorIcmsDesonerado.Arredondar();
Assert.Equal(40m, valorArredondado);
Assert.Equal(50m, valorArredondado);
}
[Fact]
public void Testa_ICSM_Desonerado_Base_Por_Dentro_Cst_40()
Expand All @@ -135,7 +135,7 @@ public void Testa_ICSM_Desonerado_Base_Por_Dentro_Cst_40()
var tributacao = new ResultadoTributacao(produto, Crt.RegimeNormal, TipoOperacao.OperacaoInterna, TipoPessoa.Juridica, tipoCalculoIcmsDesonerado: TipoCalculoIcmsDesonerado.BasePorDentro);
var resultado = tributacao.Calcular();
decimal valorArredondado = resultado.ValorIcmsDesonerado.Arredondar();
Assert.Equal(50m, valorArredondado);
Assert.Equal(40m, valorArredondado);
}

[Fact]
Expand All @@ -153,7 +153,7 @@ public void Testa_ICSM_Desonerado_Base_Simples_Cst_70()
var tributacao = new ResultadoTributacao(produto, Crt.RegimeNormal, TipoOperacao.OperacaoInterna, TipoPessoa.Juridica, tipoCalculoIcmsDesonerado: TipoCalculoIcmsDesonerado.BaseSimples);
var resultado = tributacao.Calcular();
decimal valorArredondado = resultado.ValorIcmsDesonerado.Arredondar();
Assert.Equal(0.24m, valorArredondado);
Assert.Equal(0.28m, valorArredondado);
}

[Fact]
Expand Down
Loading