public IActionResult Post([FromBody] ItemDTO dto) { if (ModelState.IsValid) { dto.Nome = dto.Nome.Trim().ToUpper(); try { switch (dto.Destino) { case "ASSOCIACAO": ItemAssociacao ia = new ItemAssociacao() { Nome = dto.Nome, UnidadeDeMedida = dto.UnidadeDeMedida }; _context.ItemAssociacao.Add(ia); _context.SaveChanges(); dto.Id = ia.Id; break; case "FAVORECIDO": ItemFavorecido itf = new ItemFavorecido() { Nome = dto.Nome, UnidadeDeMedida = dto.UnidadeDeMedida }; _context.ItemFavorecido.Add(itf); _context.SaveChanges(); dto.Id = itf.Id; break; case "SOPA": ItemSopa its = new ItemSopa() { Nome = dto.Nome, UnidadeDeMedida = dto.UnidadeDeMedida }; _context.ItemSopa.Add(its); _context.SaveChanges(); dto.Id = its.Id; break; default: return(new BadRequestResult()); } return(new ObjectResult(dto)); } catch { ModelState.AddModelError("Nome", "Este item já está cadastrado"); return(new BadRequestObjectResult(ModelState)); } } return(new BadRequestObjectResult(ModelState)); }
public async Task <IActionResult> Post([FromBody] DespesaDTO dto) { if (ModelState.IsValid && (dto.Tipo.ToUpper() == "ASSOCIACAO" || dto.Tipo.ToUpper() == "FAVORECIDO" || dto.Tipo.ToUpper() == "SOPA")) { Usuario user = await _userManager.GetUserAsync(HttpContext.User); //corrige fuso horario do js dto.DataDaCompra = dto.DataDaCompra.AddHours(-dto.DataDaCompra.Hour); switch (dto.Tipo) { case "ASSOCIACAO": try { ItemAssociacao ia = _context.ItemAssociacao.Single(q => q.Id == dto.Item.Id); DespesaAssociacao da = new DespesaAssociacao { DataDaCompra = dto.DataDaCompra, Descricao = dto.Descricao, Quantidade = dto.Quantidade, ValorUnitario = dto.ValorUnitario, Item = ia, Usuario = user }; _context.DespesaAssociacao.Add(da); _context.SaveChanges(); dto.Id = da.Id; } catch { //ModelState.AddModelError("Item", "Este item já está cadastrado"); return(new BadRequestObjectResult(ModelState)); } break; case "FAVORECIDO": try { ItemFavorecido ifavorecido = _context.ItemFavorecido.Single(q => q.Id == dto.Item.Id); Favorecido favorecido = _context.Favorecido.Single(q => q.CodFavorecido == dto.Favorecido.Id); DespesaFavorecido df = new DespesaFavorecido { DataDaCompra = dto.DataDaCompra, Descricao = dto.Descricao, Quantidade = dto.Quantidade, ValorUnitario = dto.ValorUnitario, Item = ifavorecido, Favorecido = favorecido, Usuario = user }; _context.DespesaFavorecido.Add(df); _context.SaveChanges(); dto.Id = df.Id; } catch { ModelState.AddModelError("Favorecido", "Este favorecido não existe mais"); return(new BadRequestObjectResult(ModelState)); } break; case "SOPA": try { ItemSopa isopa = _context.ItemSopa.Single(q => q.Id == dto.Item.Id); DespesaSopa ds = new DespesaSopa { DataDaCompra = dto.DataDaCompra, Descricao = dto.Descricao, Quantidade = dto.Quantidade, ValorUnitario = dto.ValorUnitario, Item = isopa, Usuario = user }; _context.DespesaSopa.Add(ds); _context.SaveChanges(); //atualiza o estoque _estoqueManager.DarEntrada(user, isopa, ds.Quantidade); dto.Id = ds.Id; } catch { //ModelState.AddModelError("Item", "Este item já está cadastrado"); return(new BadRequestObjectResult(ModelState)); } break; } return(new ObjectResult(dto)); } else { if (ModelState.IsValid) { ModelState.AddModelError("Tipo", "Valores aceitados = ['ASSOCIACAO','FAVORECIDO','SOPA']"); } return(new BadRequestObjectResult(ModelState)); } }