public ActionResult <List <FechamentoCaixaDTO> > Put(int id, [FromBody] Caixa caixa) { if (caixa == null) { return(BadRequest("Não foi possível fechar o caixa, sem dados para o fechamento.")); } if (id == caixa.Id) { var caixaBaseDeDados = _caixaRepositorio.Selecionar(id); if (caixaBaseDeDados.EstaAberto()) { foreach (var item in caixa.Descartes) { ProdutoFinal descarte = (ProdutoFinal)_produtoRepositorio.Selecionar(item.IdProdutoFinal); Estoque estoqueDescarte = new Estoque() { Produto = descarte, Data = DateTime.Now, Quantidade = item.Quantidade, TipoEstoque = EnumTipoEstoque.SAIDA }; _estoqueRepositorio.Incluir(estoqueDescarte); descarte.QuantidadeEstoque -= estoqueDescarte.Quantidade; _produtoRepositorio.Alterar(descarte); } caixaBaseDeDados.DataFechameto = DateTime.Now; caixaBaseDeDados.SituacaoCaixa = EnumSitucaoCaixa.FECHADO; _caixaRepositorio.Alterar(caixaBaseDeDados); var valores = _vendaRepositorio.VendaCaixa(caixa.Id); return(Ok(valores)); } } return(BadRequest("Impossível realizar o fechamento do caixa, pois o caixa não está aberto.")); }