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" })); } }
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!" })); } }