Skip to content

Commit

Permalink
Merge pull request #39 from adrbarros/master
Browse files Browse the repository at this point in the history
Adicionado Propriedade CalcularIcmsEfetivoeRetencaoParaSt e Emunerador para CRT 4 (MEI)
robertorp authored Dec 3, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents eec8426 + 78ac3e1 commit d49ea7b
Showing 16 changed files with 125 additions and 98 deletions.
6 changes: 4 additions & 2 deletions src/MotorTributarioNet/Flags/Crt .cs
Original file line number Diff line number Diff line change
@@ -32,7 +32,9 @@ public enum Crt
SimplesNacionalExecesso = 2,

[Description("3 - Regime Normal")]
RegimeNormal = 3
RegimeNormal = 3,

[Description("4 - Simples Nacional MEI")]
SimplesNacionalMei = 4
}
}
}
Original file line number Diff line number Diff line change
@@ -31,9 +31,8 @@ protected CalculaBaseCalculoBase(ITributavel tributavel)

protected decimal CalculaBaseDeCalculo()
{
var baseCalculo = _tributavel.ValorProduto * _tributavel.QuantidadeProduto +
_tributavel.Frete +
_tributavel.Seguro + _tributavel.OutrasDespesas;
var baseCalculo = (_tributavel.ValorProduto * _tributavel.QuantidadeProduto) +
_tributavel.Frete + _tributavel.Seguro + _tributavel.OutrasDespesas;

return baseCalculo;
}
Original file line number Diff line number Diff line change
@@ -39,21 +39,19 @@ public decimal CalculaBaseCalculo()
{
decimal valorIcms = new TributacaoIcms(_tributavel, _tipoDesconto).Calcula().Valor;
var baseCalculo = _tributavel.DeduzIcmsDaBaseDePisCofins ? CalculaBaseDeCalculo() - valorIcms : CalculaBaseDeCalculo();
baseCalculo = baseCalculo - baseCalculo * _tributavel.PercentualReducaoCofins / 100;
baseCalculo -= baseCalculo * _tributavel.PercentualReducaoCofins / 100;
return _tipoDesconto == TipoDesconto.Condincional ? CalculaIcmsComDescontoCondicional(baseCalculo) : CalculaIcmsComDescontoIncondicional(baseCalculo);
}

private decimal CalculaIcmsComDescontoIncondicional(decimal baseCalculoInicial)
{
var baseCalculo = baseCalculoInicial - _tributavel.Desconto;

return baseCalculo;
}

private decimal CalculaIcmsComDescontoCondicional(decimal baseCalculoInicial)
{
var baseCalulo = baseCalculoInicial + _tributavel.Desconto;

return baseCalulo;
}
}
Original file line number Diff line number Diff line change
@@ -37,21 +37,18 @@ public CalculaBaseCalculoIpi(ITributavel tributavel, TipoDesconto tipoDesconto)
public decimal CalculaBaseCalculo()
{
var baseCalculo = CalculaBaseDeCalculo();

return _tipoDesconto == TipoDesconto.Condincional ? CalculaIcmsComDescontoCondicional(baseCalculo) : CalculaIcmsComDescontoIncondicional(baseCalculo);
}

private decimal CalculaIcmsComDescontoIncondicional(decimal baseCalculoInicial)
{
var baseCalculo = baseCalculoInicial - _tributavel.Desconto;

return baseCalculo;
}

private decimal CalculaIcmsComDescontoCondicional(decimal baseCalculoInicial)
{
var baseCalulo = baseCalculoInicial + _tributavel.Desconto;

return baseCalulo;
}
}
Original file line number Diff line number Diff line change
@@ -37,21 +37,18 @@ public CalculaBaseCalculoIssqn(ITributavel tributavel, TipoDesconto tipoDesconto
public decimal CalculaBaseCalculo()
{
var baseCalculo = CalculaBaseDeCalculo();

return _tipoDesconto == TipoDesconto.Condincional ? CalculaIcmsComDescontoCondicional(baseCalculo) : CalculaIcmsComDescontoIncondicional(baseCalculo);
}

private decimal CalculaIcmsComDescontoIncondicional(decimal baseCalculoInicial)
{
var baseCalculo = baseCalculoInicial - _tributavel.Desconto;

return baseCalculo;
}

private decimal CalculaIcmsComDescontoCondicional(decimal baseCalculoInicial)
{
var baseCalulo = baseCalculoInicial + _tributavel.Desconto;

return baseCalulo;
}
}
Original file line number Diff line number Diff line change
@@ -39,22 +39,19 @@ public decimal CalculaBaseCalculo()
{
decimal valorIcms = new TributacaoIcms(_tributavel, _tipoDesconto).Calcula().Valor;
var baseCalculo = _tributavel.DeduzIcmsDaBaseDePisCofins ? CalculaBaseDeCalculo() - valorIcms : CalculaBaseDeCalculo();
baseCalculo = baseCalculo - baseCalculo * _tributavel.PercentualReducaoPis / 100;

baseCalculo -= baseCalculo * _tributavel.PercentualReducaoPis / 100;
return _tipoDesconto == TipoDesconto.Condincional ? CalculaIcmsComDescontoCondicional(baseCalculo) : CalculaIcmsComDescontoIncondicional(baseCalculo);
}

private decimal CalculaIcmsComDescontoIncondicional(decimal baseCalculoInicial)
{
var baseCalculo = baseCalculoInicial - _tributavel.Desconto;

return baseCalculo;
}

private decimal CalculaIcmsComDescontoCondicional(decimal baseCalculoInicial)
{
var baseCalulo = baseCalculoInicial + _tributavel.Desconto;

return baseCalulo;
}
}
5 changes: 2 additions & 3 deletions src/MotorTributarioNet/Impostos/CalulosDeBC/CalculaBaseFcp.cs
Original file line number Diff line number Diff line change
@@ -25,7 +25,6 @@ namespace MotorTributarioNet.Impostos.CalulosDeBC
public class CalculaBaseFcp : CalculaBaseCalculoIcms
{
public CalculaBaseFcp(ITributavel tributavel, TipoDesconto tipoDesconto) : base(tributavel, tipoDesconto)
{
}
{ }
}
}
}
Original file line number Diff line number Diff line change
@@ -37,25 +37,20 @@ public CalculoBaseIcmsSemIpi(ITributavel tributavel, TipoDesconto tipoDesconto)
public decimal CalculaBaseCalculo()
{
var baseCalculo = CalculaBaseDeCalculo();

return _tipoDesconto == TipoDesconto.Condincional ? CalculaIcmsComDescontoCondicional(baseCalculo) : CalculaIcmsComDescontoIncondicional(baseCalculo);
}

private decimal CalculaIcmsComDescontoIncondicional(decimal baseCalculoInicial)
{
var baseCalculo = baseCalculoInicial - _tributavel.Desconto;

baseCalculo = baseCalculo - baseCalculo * _tributavel.PercentualReducao / 100;

baseCalculo -= baseCalculo * _tributavel.PercentualReducao / 100;
return baseCalculo;
}

private decimal CalculaIcmsComDescontoCondicional(decimal baseCalculoInicial)
{
var baseCalulo = baseCalculoInicial + _tributavel.Desconto;

baseCalulo = baseCalulo - baseCalulo * _tributavel.PercentualReducao / 100;

baseCalulo -= baseCalulo * _tributavel.PercentualReducao / 100;
return baseCalulo;
}
}
Original file line number Diff line number Diff line change
@@ -34,15 +34,13 @@ public CalculoBaseIcmsSt(ITributavel tributavel, TipoDesconto tipoDesconto) : ba
_tipoDesconto = tipoDesconto;
}


public decimal CalculaBaseCalculo()
{
var baseCalculo = CalculaBaseDeCalculo();
var baseCalculoSt = CalculaBaseCalculoST(baseCalculo + _tributavel.ValorIpi);
return baseCalculoSt;
}


public decimal CalculaBaseCalculoST(decimal baseCalculoIcms)
{
var baseCalculoSt = _tipoDesconto == TipoDesconto.Condincional ? CalculaIcmsComDescontoCondicional(baseCalculoIcms) : CalculaIcmsComDescontoIncondicional(baseCalculoIcms);
20 changes: 11 additions & 9 deletions src/MotorTributarioNet/Impostos/Csosns/Csosn500.cs
Original file line number Diff line number Diff line change
@@ -42,17 +42,19 @@ public Csosn500(OrigemMercadoria origemMercadoria = OrigemMercadoria.Nacional, T

public override void Calcula(ITributavel tributavel)
{
PercentualSt = tributavel.PercentualIcmsSt + tributavel.PercentualFcpSt;
if (tributavel.CalcularIcmsEfetivoeRetencaoParaSt)
{
PercentualSt = tributavel.PercentualIcmsSt + tributavel.PercentualFcpSt;

var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);
var resultadoCalculoIcmsEfetivo = facade.CalculaIcmsEfetivo();
var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);
var resultadoCalculoIcmsEfetivo = facade.CalculaIcmsEfetivo();

ValorBcIcmsEfetivo = resultadoCalculoIcmsEfetivo.BaseCalculo;
PercentualIcmsEfetivo = tributavel.PercentualIcmsEfetivo;
PercentualReducaoIcmsEfetivo = tributavel.PercentualReducaoIcmsEfetivo;
ValorIcmsEfetivo = resultadoCalculoIcmsEfetivo.Valor;
PercentualFcpStRetido = tributavel.PercentualFcpStRetido;
ValorBcIcmsEfetivo = resultadoCalculoIcmsEfetivo.BaseCalculo;
PercentualIcmsEfetivo = tributavel.PercentualIcmsEfetivo;
PercentualReducaoIcmsEfetivo = tributavel.PercentualReducaoIcmsEfetivo;
ValorIcmsEfetivo = resultadoCalculoIcmsEfetivo.Valor;
PercentualFcpStRetido = tributavel.PercentualFcpStRetido;
}
}

}
}
31 changes: 17 additions & 14 deletions src/MotorTributarioNet/Impostos/Csts/Cst60.cs
Original file line number Diff line number Diff line change
@@ -50,24 +50,27 @@ public Cst60(OrigemMercadoria origemMercadoria = OrigemMercadoria.Nacional, Tipo

public override void Calcula(ITributavel tributavel)
{
var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);
var resultadoCalculoIcms = facade.CalculaIcmsSt();
var resultadoCalculoIcmsEfetivo = facade.CalculaIcmsEfetivo();
if (tributavel.CalcularIcmsEfetivoeRetencaoParaSt)
{
var facade = new FacadeCalculadoraTributacao(tributavel, TipoDesconto);
var resultadoCalculoIcms = facade.CalculaIcmsSt();
var resultadoCalculoIcmsEfetivo = facade.CalculaIcmsEfetivo();

PercentualBcStRetido = tributavel.PercentualIcmsSt;
ValorBcStRetido = resultadoCalculoIcms.BaseCalculoIcmsSt;
ValorIcmsStRetido = resultadoCalculoIcms.ValorIcmsSt;
PercentualBcStRetido = tributavel.PercentualIcmsSt;
ValorBcStRetido = resultadoCalculoIcms.BaseCalculoIcmsSt;
ValorIcmsStRetido = resultadoCalculoIcms.ValorIcmsSt;

//ICMS Efetivo
ValorBcIcmsEfetivo = resultadoCalculoIcmsEfetivo.BaseCalculo;
PercentualIcmsEfetivo = tributavel.PercentualIcmsEfetivo;
PercentualReducaoIcmsEfetivo = tributavel.PercentualReducaoIcmsEfetivo;
ValorIcmsEfetivo = resultadoCalculoIcmsEfetivo.Valor;
PercentualFcpStRetido = tributavel.PercentualFcpStRetido;
//ICMS Efetivo
ValorBcIcmsEfetivo = resultadoCalculoIcmsEfetivo.BaseCalculo;
PercentualIcmsEfetivo = tributavel.PercentualIcmsEfetivo;
PercentualReducaoIcmsEfetivo = tributavel.PercentualReducaoIcmsEfetivo;
ValorIcmsEfetivo = resultadoCalculoIcmsEfetivo.Valor;
PercentualFcpStRetido = tributavel.PercentualFcpStRetido;

ValorCreditoOutorgadoOuPresumido = facade.CalculaIcmsCredito().Valor;
ValorCreditoOutorgadoOuPresumido = facade.CalculaIcmsCredito().Valor;

PercentualSt = tributavel.PercentualIcmsSt + tributavel.PercentualFcpSt;
PercentualSt = tributavel.PercentualIcmsSt + tributavel.PercentualFcpSt;
}
}
}
}
1 change: 1 addition & 0 deletions src/MotorTributarioNet/Impostos/ITributavel.cs
Original file line number Diff line number Diff line change
@@ -81,6 +81,7 @@ public interface ITributavel
decimal AliquotaAdRemIcmsRetidoAnteriormente { get; set; }
decimal PercentualReducaoAliquotaAdRemIcms { get; set; }
decimal PercentualIcmsMonofasicoDiferido { get; set; }
bool CalcularIcmsEfetivoeRetencaoParaSt { get; set; }
decimal PercentualIcmsEfetivo { get; set; }
decimal PercentualReducaoIcmsEfetivo { get; set; }
}
122 changes: 79 additions & 43 deletions src/MotorTributarioNet/Impostos/ResultadoTributacao.cs
Original file line number Diff line number Diff line change
@@ -18,7 +18,6 @@
// Você também pode obter uma copia da licença em:
// https://github.com/AutomacaoNet/MotorTributarioNet/blob/master/LICENSE


using MotorTributarioNet.Flags;
using MotorTributarioNet.Impostos.Csosns;
using MotorTributarioNet.Impostos.Csosns.Base;
@@ -287,7 +286,7 @@ private void CalcularIcms()
break;
}
}
else
else if (CrtEmpresa == Crt.SimplesNacional)
{
switch (_produto.Csosn)
{
@@ -451,19 +450,58 @@ private void CalcularIcms()
break;
}
}
}
else
{
ValorCredito = decimal.Zero;
PercentualCredito = decimal.Zero;
ValorBcIcmsEfetivo = decimal.Zero;
PercentualReducaoIcmsEfetivo = decimal.Zero;
PercentualIcmsEfetivo = decimal.Zero;
PercentualFcpStRetido = decimal.Zero;
ValorIcmsEfetivo = decimal.Zero;
PercentualIcms = decimal.Zero;
PercentualReducao = decimal.Zero;
PercentualIcmsSt = decimal.Zero;
PercentualReducaoSt = decimal.Zero;
PercentualMva = decimal.Zero;
ValorBcIcms = decimal.Zero;
ValorIcms = decimal.Zero;
ValorIcmsSt = decimal.Zero;
ValorBcIcmsSt = decimal.Zero;

switch (_produto.Csosn)
{
case Csosn.Csosn101:
case Csosn.Csosn201:
case Csosn.Csosn202:
case Csosn.Csosn203:
case Csosn.Csosn500:
_produto.Csosn = Csosn.Csosn102;
break;
case Csosn.Csosn900:
CsosnBase = new Csosn900();
CsosnBase.Calcula(_produto);
PercentualCredito = ((Csosn900)CsosnBase).PercentualCredito;
ValorCredito = ((Csosn900)CsosnBase).ValorCredito;
ValorBcIcms = ((Csosn900)CsosnBase).ValorBcIcms;
ValorIcms = ((Csosn900)CsosnBase).ValorIcms;
PercentualMva = ((Csosn900)CsosnBase).PercentualMva;
PercentualIcmsSt = ((Csosn900)CsosnBase).PercentualIcmsSt;
PercentualReducaoSt = ((Csosn900)CsosnBase).PercentualReducaoSt;
ValorIcmsSt = ((Csosn900)CsosnBase).ValorIcmsSt;
ValorBcIcmsSt = ((Csosn900)CsosnBase).ValorBcIcmsSt;
break;
}
}
}

private TributacaoIpi CalcularIpi()
{
Ipi = new TributacaoIpi(_produto, TipoDesconto);
ValorIpi = decimal.Zero;
ValorBcIpi = decimal.Zero;

if (_produto.CstIpi == CstIpi.Cst00
|| _produto.CstIpi == CstIpi.Cst49
|| _produto.CstIpi == CstIpi.Cst50
|| _produto.CstIpi == CstIpi.Cst99)
if (CrtEmpresa != Crt.SimplesNacionalMei &&
(_produto.CstIpi == CstIpi.Cst00 || _produto.CstIpi == CstIpi.Cst49 || _produto.CstIpi == CstIpi.Cst50 || _produto.CstIpi == CstIpi.Cst99))
{
var result = Ipi.Calcula();
ValorIpi = result.Valor;
@@ -477,9 +515,7 @@ private TributacaoPis CalcularPis()
Pis = new TributacaoPis(_produto, TipoDesconto);
ValorPis = decimal.Zero;
ValorBcPis = decimal.Zero;

if (_produto.CstPisCofins == CstPisCofins.Cst01
|| _produto.CstPisCofins == CstPisCofins.Cst02)
if (CrtEmpresa != Crt.SimplesNacionalMei && (_produto.CstPisCofins == CstPisCofins.Cst01 || _produto.CstPisCofins == CstPisCofins.Cst02))
{
var result = Pis.Calcula();
ValorPis = result.Valor;
@@ -493,14 +529,11 @@ private TributacaoCofins CalcularCofins()
Cofins = new TributacaoCofins(_produto, TipoDesconto);
ValorCofins = decimal.Zero;
ValorBcCofins = decimal.Zero;

if (_produto.CstPisCofins == CstPisCofins.Cst01
|| _produto.CstPisCofins == CstPisCofins.Cst02)
if (CrtEmpresa != Crt.SimplesNacionalMei && (_produto.CstPisCofins == CstPisCofins.Cst01 || _produto.CstPisCofins == CstPisCofins.Cst02))
{
var result = Cofins.Calcula();
ValorCofins = result.Valor;
ValorBcCofins = result.BaseCalculo;

}
return Cofins;
}
@@ -525,12 +558,12 @@ private TributacaoFcp CalcularFcp()
TributacaoFcp = new TributacaoFcp(_produto, TipoDesconto);
Fcp = decimal.Zero;
ValorBcFcp = decimal.Zero;

var result = TributacaoFcp.Calcula();

Fcp = result.Valor;
ValorBcFcp = result.BaseCalculo;

if (CrtEmpresa != Crt.SimplesNacionalMei)
{
var result = TributacaoFcp.Calcula();
Fcp = result.Valor;
ValorBcFcp = result.BaseCalculo;
}
return TributacaoFcp;
}

@@ -539,28 +572,25 @@ private TributacaoFcp CalcularFcpStRetido()
TributacaoFcpStRetido = new TributacaoFcpStRetido(_produto);
FcpStRetido = decimal.Zero;
ValorBcFcpStRetido = decimal.Zero;

var result = TributacaoFcpStRetido.Calcula();

FcpStRetido = result.ValorFcpSt;
ValorBcFcpStRetido = result.BaseCalculoFcpSt;

if (CrtEmpresa != Crt.SimplesNacionalMei)
{
var result = TributacaoFcpStRetido.Calcula();
FcpStRetido = result.ValorFcpSt;
ValorBcFcpStRetido = result.BaseCalculoFcpSt;
}
return TributacaoFcp;
}

private TributacaoDifal CalcularDifal()
{
var cstCson = (Crt.RegimeNormal == CrtEmpresa ? _produto.Cst.GetValue<int>() : _produto.Csosn.GetValue<int>());
var cstCson = CrtEmpresa == Crt.SimplesNacionalExecesso || CrtEmpresa == Crt.RegimeNormal ? _produto.Cst.GetValue<int>() : _produto.Csosn.GetValue<int>();
Difal = new TributacaoDifal(_produto, TipoDesconto);
ValorBcDifal = decimal.Zero;
ValorDifal = decimal.Zero;
ValorIcmsOrigem = decimal.Zero;
ValorIcmsDestino = decimal.Zero;

if (Operacao == TipoOperacao.OperacaoInterestadual
&& CstGeraDifal(cstCson)
&& _produto.PercentualDifalInterna != 0
&& _produto.PercentualDifalInterestadual != 0)
if (CrtEmpresa != Crt.SimplesNacionalMei && Operacao == TipoOperacao.OperacaoInterestadual && CstGeraDifal(cstCson)
&& _produto.PercentualDifalInterna != 0 && _produto.PercentualDifalInterestadual != 0)
{
var result = Difal.Calcula();
ValorBcDifal = result.BaseCalculo;
@@ -573,19 +603,25 @@ private TributacaoDifal CalcularDifal()

private TributacaoIbpt CalcularIbpt()
{
Ibpt = new TributacaoIbpt(_produto,_produto);
var result = Ibpt.Calcula();
ValorTributacaoEstadual = result.TributacaoEstadual;
ValorTributacaoFederal = result.TributacaoFederal;
ValorTributacaoFederalImportados = result.TributacaoFederalImportados;
ValorTributacaoMunicipal = result.TributacaoMunicipal;
ValorTotalTributos = result.ValorTotalTributos;
Ibpt = new TributacaoIbpt(_produto, _produto);
ValorTributacaoEstadual = decimal.Zero;
ValorTributacaoFederal = decimal.Zero;
ValorTributacaoFederalImportados = decimal.Zero;
ValorTributacaoMunicipal = decimal.Zero;
ValorTotalTributos = decimal.Zero;
if (CrtEmpresa != Crt.SimplesNacionalMei)
{
var result = Ibpt.Calcula();
ValorTributacaoEstadual = result.TributacaoEstadual;
ValorTributacaoFederal = result.TributacaoFederal;
ValorTributacaoFederalImportados = result.TributacaoFederalImportados;
ValorTributacaoMunicipal = result.TributacaoMunicipal;
ValorTotalTributos = result.ValorTotalTributos;
}
return Ibpt;
}

private bool CstGeraDifal(int cst)
=> cst == 0 || cst == 20 || cst == 40 || cst == 41 || cst == 60 || cst ==102 || cst == 103 || cst == 400 || cst == 500 ;


=> cst == 0 || cst == 20 || cst == 40 || cst == 41 || cst == 60 || cst == 102 || cst == 103 || cst == 400 || cst == 500;
}
}
2 changes: 1 addition & 1 deletion src/TestesUnitarios/Csosn/Csosn500Test.cs
Original file line number Diff line number Diff line change
@@ -12,14 +12,14 @@ public void TestaCalculoICMSEfetivo()
{
var produto = new Produto
{
CalcularIcmsEfetivoeRetencaoParaSt = true,
QuantidadeProduto = 1.000m,
ValorProduto = 1000.00m,
PercentualIcmsEfetivo = 20.00m,
PercentualReducaoIcmsEfetivo = 20.00m
};

var csosn500 = new Csosn500();

csosn500.Calcula(produto);

Assert.Equal(800.00m, csosn500.ValorBcIcmsEfetivo);
4 changes: 3 additions & 1 deletion src/TestesUnitarios/Cst/Cst60Test.cs
Original file line number Diff line number Diff line change
@@ -12,6 +12,7 @@ public void CalculaCst60()
{
var produto = new Produto
{
CalcularIcmsEfetivoeRetencaoParaSt = true,
Documento = Documento.NFe,
QuantidadeProduto = 1.000m,
ValorProduto = 1000.00m,
@@ -30,6 +31,7 @@ public void CalculaCST60_CTe()
{
var produtoFrete = new Produto
{
CalcularIcmsEfetivoeRetencaoParaSt = true,
Documento = Documento.CTe,
QuantidadeProduto = 1.000m,
ValorProduto = 1000.00m,
@@ -50,14 +52,14 @@ public void CalculaCST60_ICMSEfetivo()
{
var produto = new Produto
{
CalcularIcmsEfetivoeRetencaoParaSt = true,
QuantidadeProduto = 1.000m,
ValorProduto = 1000.00m,
PercentualIcmsEfetivo = 20.00m,
PercentualReducaoIcmsEfetivo = 20.00m
};

var cst60 = new Cst60();

cst60.Calcula(produto);

Assert.Equal(800.00m, cst60.ValorBcIcmsEfetivo);
1 change: 1 addition & 0 deletions src/TestesUnitarios/Entidade/Produto.cs
Original file line number Diff line number Diff line change
@@ -63,6 +63,7 @@ public Produto()
public decimal PercentualIcmsMonofasicoDiferido { get; set; }
public decimal QuantidadeBaseCalculoIcmsMonofasicoRetidoAnteriormente { get; set; }
public decimal AliquotaAdRemIcmsRetidoAnteriormente { get; set; }
public bool CalcularIcmsEfetivoeRetencaoParaSt { get; set; }
public decimal PercentualIcmsEfetivo { get; set; }
public decimal PercentualReducaoIcmsEfetivo { get; set; }
}

0 comments on commit d49ea7b

Please sign in to comment.