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 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); }