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);
        }
Beispiel #2
0
        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);
        }