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 static NotaFiscalItem New(NotaFiscal notaFiscal, PedidoItem pedidoItem) { var cfop = new Cfop(notaFiscal.EstadoOrigem, notaFiscal.EstadoDestino).Value(); var icms = new ImpostoIcms(notaFiscal, pedidoItem, cfop); var ipi = new ImpostoIpi(notaFiscal, pedidoItem); var notaFiscalItem = new NotaFiscalItem { NotaFiscal = notaFiscal, NomeProduto = pedidoItem.NomeProduto, CodigoProduto = pedidoItem.CodigoProduto, Cfop = cfop, TipoIcms = icms.Tipo, BaseIcms = icms.Base, AliquotaIcms = icms.Aliquota, ValorIcms = icms.Valor, BaseIpi = ipi.Base, AliquotaIpi = ipi.Aliquota, ValorIpi = ipi.Valor, Desconto = 0 }; notaFiscalItem.AplicarDesconto(); notaFiscalItem.Validate(); return(notaFiscalItem); }
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); }