public void CalcularIcms_Cfop6009_ReducaoBaseAplicada() { // Arrange var pedido = NotaFiscalTest.NovoPedido(); pedido.EstadoOrigem = "SP"; pedido.EstadoDestino = "SE"; var novoPedidoItem = new PedidoItem { Brinde = false, CodigoProduto = "123", NomeProduto = "X", ValorItemPedido = 1000 }; var notaFiscal = NotaFiscal.New(pedido); var cfop = new Cfop(notaFiscal.EstadoOrigem, notaFiscal.EstadoDestino).Value(); // 6.009 // Act var icms = new ImpostoIcms(notaFiscal, novoPedidoItem, cfop); // Assert Assert.NotNull(icms); Assert.Equal("10", icms.Tipo); Assert.Equal(0.17, icms.Aliquota); Assert.Equal(1000 * 0.17 * 0.9, icms.Valor); }
public void CalcularIcms_PedidoItemBrinde_TipoAliquotaDefinidosBrinde() { // Arrange var pedido = NotaFiscalTest.NovoPedido(); pedido.EstadoOrigem = "SP"; pedido.EstadoDestino = "RJ"; var novoPedidoItem = new PedidoItem { Brinde = true, CodigoProduto = "123", NomeProduto = "X", ValorItemPedido = 1000 }; var notaFiscal = NotaFiscal.New(pedido); var cfop = new Cfop(notaFiscal.EstadoOrigem, notaFiscal.EstadoDestino).Value(); // Act var icms = new ImpostoIcms(notaFiscal, novoPedidoItem, cfop); // Assert Assert.NotNull(icms); Assert.Equal("60", icms.Tipo); Assert.Equal(0.18, icms.Aliquota); Assert.Equal(1000 * 0.18, icms.Valor); }
public void CalcularIpi_PedidoItemNaoBrinde_AliquotaDefinidosNaoBrinde() { // Arrange var pedido = NotaFiscalTest.NovoPedido(); pedido.EstadoOrigem = "SP"; pedido.EstadoDestino = "RJ"; var novoPedidoItem = new PedidoItem { Brinde = false, CodigoProduto = "123", NomeProduto = "X", ValorItemPedido = 1000 }; var notaFiscal = NotaFiscal.New(pedido); // Act var ipi = new ImpostoIpi(notaFiscal, novoPedidoItem); // Assert Assert.NotNull(ipi); Assert.Equal(0.10, ipi.Aliquota); Assert.Equal(1000 * 0.10, ipi.Valor); }