public async Task <ActionResult <ContaLancamento> > PostContaLancamento(ContaLancamento contaLancamento) { _context.ContaLancamentos.Add(contaLancamento); await _context.SaveChangesAsync(); var conta = await _context.Contas.FindAsync(contaLancamento.ContaId); var lancamento = await _context.Lancamentos.FindAsync(contaLancamento.LancamentoId); if ((contaLancamento.LancamentoId == lancamento.Id) && (conta.Id == contaLancamento.ContaId)) { var parcelado = await _context.Parcelados.Where(x => x.Id == lancamento.ParceladoId).FirstOrDefaultAsync(); if (lancamento.DespesaReceita == true) { if (lancamento.ParceladoId != null) { var value = (-1) * lancamento.Valor * parcelado.Quantidade; conta.Saldo -= value; } else { var value = (-1) * lancamento.Valor; conta.Saldo -= value; } } else { if (lancamento.ParceladoId != null) { conta.Saldo += lancamento.Valor * parcelado.Quantidade; } else { conta.Saldo += lancamento.Valor; } } await _context.SaveChangesAsync(); } return(CreatedAtAction("GetContaLancamento", new { id = contaLancamento.Id }, contaLancamento)); }
public async Task <IActionResult> PutContaLancamento(int id, ContaLancamento contaLancamento) { contaLancamento.Id = id; _context.Entry(contaLancamento).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ContaLancamentoExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }