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 static NotaFiscal New(Pedido pedido) { var notaFiscal = new NotaFiscal { NumeroNotaFiscal = 99999, Serie = new Random().Next(int.MaxValue), NomeCliente = pedido.NomeCliente, EstadoDestino = new Uf(pedido.EstadoDestino).Value(), EstadoOrigem = new Uf(pedido.EstadoOrigem).Value() }; foreach (var itemPedido in pedido.ItensDoPedido) { notaFiscal.ItensNotaFiscal.Add(NotaFiscalItem.New(notaFiscal, itemPedido)); } notaFiscal.Validate(); return(notaFiscal); }