Пример #1
0
        public IActionResult PatchNotaFiscal([FromBody] NotaFiscalDTO notaFiscalDTO)
        {
            if (notaFiscalDTO.Id > 0)
            {
                try {
                    var notafiscal = Database.NotasFiscais.First(p => p.Id.Equals(notaFiscalDTO.Id));

                    if (notafiscal != null)
                    {
                        Cliente cliente = new Cliente();
                        cliente = Database.Clientes.First(c => c.Id.Equals(notaFiscalDTO.ClienteId));

                        if (cliente == null)
                        {
                            Response.StatusCode = 404;
                            return(new ObjectResult(new { msg = $"Cliente com Id {notaFiscalDTO.ClienteId} não encontrado!" }));
                        }

                        notafiscal.Valor   = notaFiscalDTO.Valor != 0.0 ? notaFiscalDTO.Valor : notafiscal.Valor;
                        notafiscal.Cliente = cliente;

                        var removerRelacao = Database.ProdutosNotaFiscal.Where(n => n.NotaFiscalId.Equals(notafiscal.Id)).ToList();
                        foreach (var e in removerRelacao)
                        {
                            Database.Remove(e);
                        }
                        Database.RemoveRange(removerRelacao);

                        foreach (var produtoNF in notaFiscalDTO.ProdutosNotaFiscalDTO)
                        {
                            ProdutoNotaFiscal produtonota = new ProdutoNotaFiscal();
                            produtonota.Quantidade = produtoNF.Quantidade;
                            produtonota.Produto    = Database.Produtos.First(p => p.Id == produtoNF.ProdutoId);
                            produtonota.NotaFiscal = notafiscal;
                            Database.ProdutosNotaFiscal.Add(produtonota);
                        }

                        Database.SaveChanges();
                        Response.StatusCode = 200;
                        return(new ObjectResult(new { msg = "Nota Fiscal atualizada com Sucesso!" }));
                    }
                    else
                    {
                        Response.StatusCode = 404;
                        return(new ObjectResult(new { msg = "Nota Fiscal não encontrada!" }));
                    }
                } catch (Exception e) {
                    Response.StatusCode = 404;
                    return(new ObjectResult(new { msg = $"NotaFiscal com Id {notaFiscalDTO.Id} não encontrado!", erro = e }));
                }
            }
            else
            {
                Response.StatusCode = 404;
                return(new ObjectResult(new { msg = "Id do Produto Inválido" }));
            }
        }
Пример #2
0
        public IActionResult PostNotaFiscal([FromBody] NotaFiscalDTO notaFiscalDTO)
        {
            try {
                if (notaFiscalDTO.Valor <= 0)
                {
                    Response.StatusCode = 400;
                    return(new ObjectResult(new { msg = "O Total não pode ser menor que 0.0" }));
                }

                Cliente cliente = new Cliente();
                cliente = Database.Clientes.First(c => c.Id == notaFiscalDTO.ClienteId);

                if (cliente == null)
                {
                    Response.StatusCode = 400;
                    return(new ObjectResult(new { msg = $"Cliente com Id {notaFiscalDTO.ClienteId} não encontrado!" }));
                }

                NotaFiscal.Models.NotaFiscal nota = new NotaFiscal.Models.NotaFiscal();
                nota.Valor       = notaFiscalDTO.Valor;
                nota.DataEmissao = DateTime.Now;
                nota.Cliente     = cliente;
                Database.NotasFiscais.Add(nota);

                foreach (var produtoNF in notaFiscalDTO.ProdutosNotaFiscalDTO)
                {
                    ProdutoNotaFiscal produtonota = new ProdutoNotaFiscal();
                    produtonota.Quantidade = produtoNF.Quantidade;
                    produtonota.Produto    = Database.Produtos.First(p => p.Id == produtoNF.ProdutoId);
                    produtonota.NotaFiscal = nota;
                    Database.ProdutosNotaFiscal.Add(produtonota);
                }

                Database.SaveChanges();

                Response.StatusCode = 201;
                return(new ObjectResult(new { msg = "Nota Fiscal salva com Sucesso!" }));
            } catch {
                Response.StatusCode = 401;
                return(new ObjectResult(new { msg = "Falha ao Salvar os Dados!" }));
            }
        }