public MovimentoBaixaView Incluir(MovimentoBaixaView movBaixaView) { movBaixaView.DataEvento = DateTime.Now; MovimentoBaixa movBaixa = ObterModel(movBaixaView); /* Identifica a direção do valor na conta (entra ou saida) */ if (movBaixa.Movimento.Tipo.Equals(TipoMovimento.PAGAR)) { movBaixa.Direcao = DirecaoBaixa.SAIDA; } else { movBaixa.Direcao = DirecaoBaixa.ENTRADA; } if (movBaixa.Movimento.Saldo < movBaixa.ValorBaixa) { throw new Exception($"O movimento id {movBaixa.Movimento.Id} possui um saldo '{movBaixa.Movimento.Saldo}' " + $"inferior ao valor da baixa '{movBaixa.ValorBaixa}'. " + $"Baixa somente até o saldo devedor / credor."); } movBaixa.Movimento.ValorPago = movBaixa.Movimento.ValorPago + movBaixa.ValorBaixa; /* Atualiza o registro pai de movimento */ repoMovimento.Alterar(movBaixa.Movimento); /* Inclui o registro de baixa */ repositoryMovBaixa.Incluir(movBaixa); return(movBaixa.ToView()); }
public IActionResult PostBaixaMovimento(int id, [FromBody] MovimentoBaixaView model) { try { if (!ModelState.IsValid) { return(BadRequest()); } else { if (!id.Equals(model.MovimentoId)) { return(NotFound(new { Mensagem = $"O movimento id: {id} informado corresponde com o id informado no body {model.MovimentoId}." })); } var movimento = business.ObterPorId(id); if (movimento == null) { return(NotFound(new { Mensagem = $"O movimento id: {id} informado não existe no banco de dados." })); } MovimentoBaixaView movBaixa = businessMovBaixa.Incluir(model); var uri = Url.Action("GetBaixaPorId", new { id = movBaixa.Id }); return(Created(uri, movBaixa)); } } catch (Exception ex) { return(StatusCode(500, new { Mensagem = ex.Message.ToString() })); } }
public void Excluir(MovimentoBaixaView movBaixaView) { MovimentoBaixa movBaixa = ObterModel(movBaixaView); if (movBaixa.Movimento.ValorPago < movBaixa.ValorBaixa) { throw new Exception($"O movimento id {movBaixa.Movimento.Id} possui um saldo pago de '{movBaixa.Movimento.ValorPago}' " + $"inferior ao valor da baixa '{movBaixa.ValorBaixa}'. " + $"Baixa somente até o saldo devedor / credor."); } movBaixa.Movimento.ValorPago = movBaixa.Movimento.ValorPago - movBaixa.ValorBaixa; /* Atualiza o registro pai de movimento */ repoMovimento.Alterar(movBaixa.Movimento); /* Exclui o registro da tabela de baixa */ repositoryMovBaixa.Excluir(movBaixa); }
private MovimentoBaixa ObterModel(MovimentoBaixaView movBaixaView) { if (movBaixaView.MovimentoId <= 0 || movBaixaView.MovimentoId.Equals(int.MinValue)) { throw new ArgumentException("O campo de 'MovimentoId' é obrigatório e deve ser preenchido corretamente."); } if (movBaixaView.ContaBancariaId <= 0 || movBaixaView.ContaBancariaId.Equals(int.MinValue)) { throw new ArgumentException("O campo de 'ContaBancariaId' é obrigatório e deve ser preenchido corretamente."); } Movimento movimento = repoMovimento.ObterPorId(movBaixaView.MovimentoId); if (movimento == null) { throw new Exception($"O MovimentoId '{movBaixaView.MovimentoId}' informado não existe no banco de dados! Campo obrigatório."); } ContaBancaria contaBancaria = repoContaBancaria.ObterPorId(movBaixaView.ContaBancariaId); if (contaBancaria == null) { throw new Exception($"A ContaBancariaId '{movBaixaView.ContaBancariaId}' informada não existe no banco de dados! Campo obrigatório."); } return(new MovimentoBaixa { Id = movBaixaView.Id, DataEvento = movBaixaView.DataEvento, DataBaixa = movBaixaView.DataBaixa, ValorBaixa = movBaixaView.ValorBaixa, Direcao = movBaixaView.Direcao.StringParaDirecaoBaixa(), MovimentoId = movBaixaView.MovimentoId, Movimento = movimento, ContaBancariaId = movBaixaView.ContaBancariaId, ContaBancaria = contaBancaria }); }