Ejemplo n.º 1
0
        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);
            }
        }