public async Task <IActionResult> AlterarParcela( [FromQuery, SwaggerParameter("ID da parcela.", Required = true)] int idParcela, [FromBody, SwaggerParameter("Informações para alteração de uma parcela.", Required = true)] ParcelaViewModel model) { var entrada = new ParcelaEntrada( base.ObterIdUsuarioClaim(), model.Data.Value, model.Valor.Value, model.Observacao); return(new ApiResult(await _agendamentoServico.AlterarParcela(idParcela, entrada))); }
public void Alterar(ParcelaEntrada entrada) { if (entrada.Invalido) { return; } this.Data = entrada.Data; this.Valor = entrada.Valor; this.Observacao = entrada.Observacao; this.Agendamento?.AjustarNumeroParcelas(); }
public Parcela(int idAgendamento, ParcelaEntrada entrada) : this() { if (entrada.Invalido) { return; } this.IdAgendamento = idAgendamento; this.Data = entrada.Data; this.Valor = entrada.Valor; this.Observacao = entrada.Observacao; }
public async Task <ISaida> CadastrarParcela(int idAgendamento, ParcelaEntrada entrada) { this.NotificarSeMenorOuIgualA(idAgendamento, 0, AgendamentoMensagem.Id_Agendamento_Invalido); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se as informações para cadastro foram informadas corretamente if (entrada.Invalido) { return(new Saida(false, entrada.Mensagens, null)); } var agendamento = await _agendamentoRepositorio.ObterPorId(idAgendamento); // Verifica se o agendamento existe this.NotificarSeNulo(agendamento, AgendamentoMensagem.Id_Agendamento_Nao_Existe); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } this // Verifica se o agendamento pertece ao usuário informado. .NotificarSeDiferentes(agendamento.IdUsuario, entrada.IdUsuario, ParcelaMensagem.Agendamento_Parcela_Nao_Pertence_Usuario); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } var parcela = new Parcela(idAgendamento, entrada); await _parcelaRepositorio.Inserir(parcela); agendamento.AjustarNumeroParcelas(); await _uow.Commit(); return(new Saida(true, new[] { ParcelaMensagem.Parcela_Cadastrada_Com_Sucesso }, new ParcelaSaida(parcela))); }
public async Task <ISaida> AlterarParcela(int idParcela, ParcelaEntrada entrada) { // Verifica se as informações para alteração foram informadas corretamente if (entrada.Invalido) { return(new Saida(false, entrada.Mensagens, null)); } var parcela = await _parcelaRepositorio.ObterPorId(idParcela); // Verifica se a parcela existe this.NotificarSeNulo(parcela, ParcelaMensagem.Id_Parcela_Nao_Existe); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } this // Verifica se a parcela pertece a um agendamento do usuário informado. .NotificarSeDiferentes(parcela.Agendamento.IdUsuario, entrada.IdUsuario, ParcelaMensagem.Agendamento_Parcela_Nao_Pertence_Usuario) // Verifica se a parcela está fechada (lançada ou descartada) .NotificarSeVerdadeiro(parcela.ObterStatus() == StatusParcela.Fechada, ParcelaMensagem.Parcela_Alterar_Ja_Fechada); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } parcela.Alterar(entrada); _parcelaRepositorio.Atualizar(parcela); await _uow.Commit(); return(new Saida(true, new[] { ParcelaMensagem.Parcela_Alterada_Com_Sucesso }, new ParcelaSaida(parcela))); }