From fd90d5b1aa10e89e17437ba0d65f3e38ec546be0 Mon Sep 17 00:00:00 2001 From: adriano_g3 Date: Thu, 22 Jan 2026 15:56:38 -0300 Subject: [PATCH] Ajustes nos Calculos para CSOSN 900 --- .../Impostos/Csosns/Csosn900.cs | 51 +++++++++++-------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/src/MotorTributarioNet/Impostos/Csosns/Csosn900.cs b/src/MotorTributarioNet/Impostos/Csosns/Csosn900.cs index 803293a..b4e336a 100644 --- a/src/MotorTributarioNet/Impostos/Csosns/Csosn900.cs +++ b/src/MotorTributarioNet/Impostos/Csosns/Csosn900.cs @@ -66,7 +66,7 @@ public override void Calcula(ITributavel tributavel) decimal percentualReducao = tributavel.PercentualReducao; tributavel.PercentualReducao = 0m; - + CalculaCredito(tributavel); tributavel.PercentualReducao = percentualReducao; @@ -74,41 +74,50 @@ public override void Calcula(ITributavel tributavel) private void CalculaCredito(ITributavel tributavel) { - PercentualCredito = tributavel.PercentualCredito; - - var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto); - var resultadoCalculaCredito = facade.CalculaIcmsCredito(); - ValorCredito = resultadoCalculaCredito.Valor; + if (tributavel.PercentualCredito > 0M) + { + PercentualCredito = tributavel.PercentualCredito; + + var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto); + var resultadoCalculaCredito = facade.CalculaIcmsCredito(); + ValorCredito = resultadoCalculaCredito.Valor; + } } private void CalculaIcmsSt(ITributavel tributavel) { - PercentualMva = tributavel.PercentualMva; - PercentualReducaoSt = tributavel.PercentualReducaoSt; - PercentualIcmsSt = tributavel.PercentualIcmsSt; + if (tributavel.PercentualIcmsSt > 0M) + { + PercentualMva = tributavel.PercentualMva; + PercentualReducaoSt = tributavel.PercentualReducaoSt; + PercentualIcmsSt = tributavel.PercentualIcmsSt; - var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto); + var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto); - tributavel.ValorIpi = facade.CalculaIpi().Valor; + tributavel.ValorIpi = facade.CalculaIpi().Valor; - var resultadoCalculoIcmsSt = facade.CalculaIcmsSt(); + var resultadoCalculoIcmsSt = facade.CalculaIcmsSt(); - ValorBcIcmsSt = resultadoCalculoIcmsSt.BaseCalculoIcmsSt; - ValorIcmsSt = resultadoCalculoIcmsSt.ValorIcmsSt; + ValorBcIcmsSt = resultadoCalculoIcmsSt.BaseCalculoIcmsSt; + ValorIcmsSt = resultadoCalculoIcmsSt.ValorIcmsSt; + } } private void CalculaIcms(ITributavel tributavel) { - PercentualReducaoIcmsBc = tributavel.PercentualReducao; - PercentualIcms = tributavel.PercentualIcms; + if (tributavel.PercentualIcms > 0) + { + PercentualReducaoIcmsBc = tributavel.PercentualReducao; + PercentualIcms = tributavel.PercentualIcms; - var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto); + var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto); - tributavel.ValorIpi = facade.CalculaIpi().Valor; + tributavel.ValorIpi = facade.CalculaIpi().Valor; - var resultadoCalculoIcms = facade.CalculaIcms(); - ValorBcIcms = resultadoCalculoIcms.BaseCalculo; - ValorIcms = resultadoCalculoIcms.Valor; + var resultadoCalculoIcms = facade.CalculaIcms(); + ValorBcIcms = resultadoCalculoIcms.BaseCalculo; + ValorIcms = resultadoCalculoIcms.Valor; + } } } } \ No newline at end of file