public void EmitirNotaFiscal(Pedido pedido) { this.NumeroNotaFiscal = 99999; this.Serie = new Random().Next(Int32.MaxValue); this.NomeCliente = pedido.NomeCliente; this.EstadoDestino = pedido.EstadoOrigem; this.EstadoOrigem = pedido.EstadoDestino; List <NotaFiscalItem> list = new List <NotaFiscalItem>(); foreach (PedidoItem itemPedido in pedido.ItensDoPedido) { NotaFiscalItem notaFiscalItem = new NotaFiscalItem(); if (Desconto.TemDesconto(this.EstadoDestino)) { itemPedido.ValorItemPedido = itemPedido.ValorItemPedido * 0.9; } if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.RJ.ToString())) { notaFiscalItem.Cfop = "6.000"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.PE.ToString())) { notaFiscalItem.Cfop = "6.001"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.MG.ToString())) { notaFiscalItem.Cfop = "6.002"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.PB.ToString())) { notaFiscalItem.Cfop = "6.003"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.PR.ToString())) { notaFiscalItem.Cfop = "6.004"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.PI.ToString())) { notaFiscalItem.Cfop = "6.005"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.RO.ToString())) { notaFiscalItem.Cfop = "6.006"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.SE.ToString())) { notaFiscalItem.Cfop = "6.007"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.TO.ToString())) { notaFiscalItem.Cfop = "6.008"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.SE.ToString())) { notaFiscalItem.Cfop = "6.009"; } else if ((this.EstadoOrigem == Estado.SP.ToString()) && (this.EstadoDestino == Estado.PA.ToString())) { notaFiscalItem.Cfop = "6.010"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.RJ.ToString())) { notaFiscalItem.Cfop = "6.000"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.PE.ToString())) { notaFiscalItem.Cfop = "6.001"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.MG.ToString())) { notaFiscalItem.Cfop = "6.002"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.PB.ToString())) { notaFiscalItem.Cfop = "6.003"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.PR.ToString())) { notaFiscalItem.Cfop = "6.004"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.PI.ToString())) { notaFiscalItem.Cfop = "6.005"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.RO.ToString())) { notaFiscalItem.Cfop = "6.006"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.SE.ToString())) { notaFiscalItem.Cfop = "6.007"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.TO.ToString())) { notaFiscalItem.Cfop = "6.008"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.SE.ToString())) { notaFiscalItem.Cfop = "6.009"; } else if ((this.EstadoOrigem == Estado.MG.ToString()) && (this.EstadoDestino == Estado.PA.ToString())) { notaFiscalItem.Cfop = "6.010"; } if (this.EstadoDestino == this.EstadoOrigem) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.Cfop = "6.006"; } else { notaFiscalItem.TipoIcms = "10"; notaFiscalItem.AliquotaIcms = 0.17; } if (notaFiscalItem.Cfop == "6.009") { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido * 0.90; //redução de base } else { notaFiscalItem.BaseIcms = itemPedido.ValorItemPedido; } notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; notaFiscalItem.BaseIpi = itemPedido.ValorItemPedido; if (itemPedido.Brinde) { notaFiscalItem.TipoIcms = "60"; notaFiscalItem.AliquotaIcms = 0.18; notaFiscalItem.ValorIcms = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms; notaFiscalItem.AliquotaIpi = 0; } else { notaFiscalItem.AliquotaIpi = 0.10; } notaFiscalItem.NomeProduto = itemPedido.NomeProduto; notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto; notaFiscalItem.ValorIpi = notaFiscalItem.BaseIpi * notaFiscalItem.AliquotaIpi; ItensDaNotaFiscal.Add(notaFiscalItem); } }