-
Notifications
You must be signed in to change notification settings - Fork 42
Hello World MotorTributarioNet!
Roberto Alves Pereira edited this page Sep 11, 2017
·
7 revisions
Para iniciarmos com a lib basta importamos a mesma para o nosso projeto através do
Apos importarmos ela pelo nuget, podemos implementar a interface ITributavel
Vamos implementar ela num Produto.
using MotorTributarioNet.Impostos
namespace TestCalculosTributarios.Entidade
{
public class Produto : ITributavel
{
public MotorTributarioNet.Flags.Cst Cst { get; set; }
public decimal ValorProduto { get; set; }
public decimal Frete { get; set; }
public decimal Seguro { get; set; }
public decimal OutrasDespesas { get; set; }
public decimal Desconto { get; set; }
public decimal ValorIpi { get; set; }
public decimal PercentualReducao { get; set; }
public decimal QuantidadeProduto { get; set; }
public decimal PercentualIcms { get; set; }
public decimal PercentualCredito { get; set; }
public decimal PercentualDifalInterna { get; set; }
public decimal PercentualDifalInterestadual { get; set; }
public decimal PercentualFcp { get; set; }
public decimal PercentualMva { get; set; }
public decimal PercentualIcmsSt { get; set; }
public decimal PercentualIpi { get; set; }
public decimal PercentualCofins { get; set; }
public decimal PercentualPis { get; set; }
public decimal PercentualReducaoSt { get; set; }
}
}
Ate aqui temos todos os atributos da interface ITributavel.
Agora vamos brincar?
1 - Instanciar um Produto
2 - Instanciar Csosn equivalente no nosso exemplo é Csosn101 passando como argumento no método Calcula o Produto (ITributavel)
3 - Verifique o resultado hehe
var produto = new Produto
{
QuantidadeProduto = 1.000m,
ValorProduto = 1000.00m,
PercentualCredito = 17.00m
};
var csosn101 = new Csosn101();
csosn101.Calcula(produto);
Assert.AreEqual(170.00m, csosn101.ValorCredito);
Assert.AreEqual(17.00m, csosn101.PercentualCredito);
Bem simples ne? Quer ver um exemplo? Visite o teste Csosn101Test