From bbae9d1b3026bd3fa09bc171bce4be9bf763b010 Mon Sep 17 00:00:00 2001 From: Thalya Bezerra Date: Mon, 1 Jun 2026 14:46:21 -0300 Subject: [PATCH 1/3] =?UTF-8?q?-=20Corrigido=20c=C3=A1lculo=20de=20ICMS=20?= =?UTF-8?q?Desonerado,=20para=20Base=20Simples=20e=20Base=20por=20Dentro.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Impostos/Tributacoes/TributacaoIcmsDesonerado.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/MotorTributarioNet/Impostos/Tributacoes/TributacaoIcmsDesonerado.cs b/src/MotorTributarioNet/Impostos/Tributacoes/TributacaoIcmsDesonerado.cs index c595831..f30ce25 100644 --- a/src/MotorTributarioNet/Impostos/Tributacoes/TributacaoIcmsDesonerado.cs +++ b/src/MotorTributarioNet/Impostos/Tributacoes/TributacaoIcmsDesonerado.cs @@ -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) { @@ -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/ } } } \ No newline at end of file From dbc0dc4efd0269ced1aa97c49e0b36b144d60822 Mon Sep 17 00:00:00 2001 From: Thalya Bezerra Date: Mon, 1 Jun 2026 17:50:46 -0300 Subject: [PATCH 2/3] - Corrigido teste do ICMS Desonerado --- src/TestesUnitarios/ResultadoTributacaoTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TestesUnitarios/ResultadoTributacaoTest.cs b/src/TestesUnitarios/ResultadoTributacaoTest.cs index 0d3354e..877c265 100644 --- a/src/TestesUnitarios/ResultadoTributacaoTest.cs +++ b/src/TestesUnitarios/ResultadoTributacaoTest.cs @@ -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] From c0f5d555e6228b5a1cc137133d854845f08a53a3 Mon Sep 17 00:00:00 2001 From: Thalya Bezerra Date: Mon, 1 Jun 2026 18:00:42 -0300 Subject: [PATCH 3/3] =?UTF-8?q?-=20Corrigido=20teste=20do=20Icms=20Desoner?= =?UTF-8?q?ado=20para=20CSTs=2020,=2030,=2040=20e=2070,=20nos=20c=C3=A1lcu?= =?UTF-8?q?los=20"Base=20Simples"=20e=20"Base=20por=20Dentro"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/TestesUnitarios/ResultadoTributacaoTest.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/TestesUnitarios/ResultadoTributacaoTest.cs b/src/TestesUnitarios/ResultadoTributacaoTest.cs index 877c265..c9d900d 100644 --- a/src/TestesUnitarios/ResultadoTributacaoTest.cs +++ b/src/TestesUnitarios/ResultadoTributacaoTest.cs @@ -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] @@ -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] @@ -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() @@ -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] @@ -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]