public async Task <bool> Adicionar(NotaFiscal notaFiscal)
        {
            if (!ExecutarValidacao(new NotaFiscalValidation(), notaFiscal))
            {
                return(false);
            }

            await _notaFiscalRepository.Adicionar(notaFiscal);

            return(true);
        }
        public IActionResult Post([FromBody] NotaFiscal notaFiscal)
        {
            try
            {
                _notaFiscalRepository.Adicionar(notaFiscal);

                return(Created("api/NotaFiscal", notaFiscal));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
Beispiel #3
0
        public void Adicionar(Pedido pedido)
        {
            try
            {
                NotaFiscal obj = new NotaFiscal();
                obj.NumeroNotaFiscal = 99999;
                obj.Serie            = new Random().Next(Int32.MaxValue);
                obj.NomeCliente      = pedido.NomeCliente;

                obj.EstadoOrigem  = pedido.EstadoOrigem;
                obj.EstadoDestino = pedido.EstadoDestino;

                foreach (PedidoItem itemPedido in pedido.ItensDoPedido)
                {
                    NotaFiscalItem notaFiscalItem = new NotaFiscalItem();
                    notaFiscalItem.Cfop = "N/D";

                    if ((obj.EstadoOrigem == "SP") && (obj.EstadoDestino == "RJ"))
                    {
                        notaFiscalItem.Cfop = "6.000";
                    }
                    else if ((obj.EstadoOrigem == "SP") && (obj.EstadoDestino == "PE"))
                    {
                        notaFiscalItem.Cfop = "6.001";
                    }
                    else if ((obj.EstadoOrigem == "SP") && (obj.EstadoDestino == "MG"))
                    {
                        notaFiscalItem.Cfop = "6.002";
                    }
                    else if ((obj.EstadoOrigem == "SP") && (obj.EstadoDestino == "PB"))
                    {
                        notaFiscalItem.Cfop = "6.003";
                    }
                    else if ((obj.EstadoOrigem == "SP") && (obj.EstadoDestino == "PR"))
                    {
                        notaFiscalItem.Cfop = "6.004";
                    }
                    else if ((obj.EstadoOrigem == "SP") && (obj.EstadoDestino == "PI"))
                    {
                        notaFiscalItem.Cfop = "6.005";
                    }
                    else if ((obj.EstadoOrigem == "SP") && (obj.EstadoDestino == "RO"))
                    {
                        notaFiscalItem.Cfop = "6.006";
                    }
                    else if ((obj.EstadoOrigem == "SP") && (obj.EstadoDestino == "SE"))
                    {
                        notaFiscalItem.Cfop = "6.007";
                    }
                    else if ((obj.EstadoOrigem == "SP") && (obj.EstadoDestino == "TO"))
                    {
                        notaFiscalItem.Cfop = "6.008";
                    }
                    else if ((obj.EstadoOrigem == "SP") && (obj.EstadoDestino == "SE"))
                    {
                        notaFiscalItem.Cfop = "6.009";
                    }
                    else if ((obj.EstadoOrigem == "SP") && (obj.EstadoDestino == "PA"))
                    {
                        notaFiscalItem.Cfop = "6.010";
                    }
                    else if ((obj.EstadoOrigem == "MG") && (obj.EstadoDestino == "RJ"))
                    {
                        notaFiscalItem.Cfop = "6.000";
                    }
                    else if ((obj.EstadoOrigem == "MG") && (obj.EstadoDestino == "PE"))
                    {
                        notaFiscalItem.Cfop = "6.001";
                    }
                    else if ((obj.EstadoOrigem == "MG") && (obj.EstadoDestino == "MG"))
                    {
                        notaFiscalItem.Cfop = "6.002";
                    }
                    else if ((obj.EstadoOrigem == "MG") && (obj.EstadoDestino == "PB"))
                    {
                        notaFiscalItem.Cfop = "6.003";
                    }
                    else if ((obj.EstadoOrigem == "MG") && (obj.EstadoDestino == "PR"))
                    {
                        notaFiscalItem.Cfop = "6.004";
                    }
                    else if ((obj.EstadoOrigem == "MG") && (obj.EstadoDestino == "PI"))
                    {
                        notaFiscalItem.Cfop = "6.005";
                    }
                    else if ((obj.EstadoOrigem == "MG") && (obj.EstadoDestino == "RO"))
                    {
                        notaFiscalItem.Cfop = "6.006";
                    }
                    else if ((obj.EstadoOrigem == "MG") && (obj.EstadoDestino == "SE"))
                    {
                        notaFiscalItem.Cfop = "6.007";
                    }
                    else if ((obj.EstadoOrigem == "MG") && (obj.EstadoDestino == "TO"))
                    {
                        notaFiscalItem.Cfop = "6.008";
                    }
                    else if ((obj.EstadoOrigem == "MG") && (obj.EstadoDestino == "SE"))
                    {
                        notaFiscalItem.Cfop = "6.009";
                    }
                    else if ((obj.EstadoOrigem == "MG") && (obj.EstadoDestino == "PA"))
                    {
                        notaFiscalItem.Cfop = "6.010";
                    }
                    if (obj.EstadoDestino == obj.EstadoOrigem)
                    {
                        notaFiscalItem.TipoIcms     = "60";
                        notaFiscalItem.AliquotaIcms = 0.18;
                    }
                    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;

                    if (itemPedido.Brinde)
                    {
                        notaFiscalItem.TipoIcms     = "60";
                        notaFiscalItem.AliquotaIcms = 0.18;
                        notaFiscalItem.ValorIcms    = notaFiscalItem.BaseIcms * notaFiscalItem.AliquotaIcms;
                    }
                    else
                    {
                        notaFiscalItem.AliquotaIpi = 0.1;
                    }

                    //Novos cálculos IPI
                    notaFiscalItem.BaseIpi  = itemPedido.ValorItemPedido;
                    notaFiscalItem.ValorIpi = notaFiscalItem.BaseIpi * notaFiscalItem.AliquotaIpi;

                    //Calculando desconto
                    if (obj.EstadoDestino == "SP" || obj.EstadoDestino == "RJ" || obj.EstadoDestino == "ES" || obj.EstadoDestino == "MG")
                    {
                        notaFiscalItem.BaseDesconto = itemPedido.ValorItemPedido * 0.1;
                    }
                    else
                    {
                        notaFiscalItem.BaseDesconto = 0;
                    }

                    notaFiscalItem.NomeProduto   = itemPedido.NomeProduto;
                    notaFiscalItem.CodigoProduto = itemPedido.CodigoProduto;
                    obj.ItensDaNotaFiscal.Add(notaFiscalItem);
                }

                XmlHelper.Criar(obj);
                repository.Adicionar(obj);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }