public async Task <ISaida> LancarParcela(LancarParcelaEntrada lancarEntrada) { // Verifica se as informações para o lançamento foram informadas corretamente if (lancarEntrada.Invalido) { return(new Saida(false, lancarEntrada.Mensagens, null)); } var parcela = await _parcelaRepositorio.ObterPorId(lancarEntrada.IdParcela, true); // Verifica se a parcela existe this.NotificarSeNulo(parcela, ParcelaMensagem.Id_Parcela_Nao_Existe); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se a parcela pertece a um agendamento do usuário informado. this.NotificarSeDiferentes(parcela.Agendamento.IdUsuario, lancarEntrada.IdUsuario, ParcelaMensagem.Parcela_Lancar_Nao_Pertence_Usuario); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se a parcela já foi lançada ou descartada this.NotificarSeVerdadeiro(parcela.Lancada, ParcelaMensagem.Parcela_Lancar_Ja_Lancada); this.NotificarSeVerdadeiro(parcela.Descartada, ParcelaMensagem.Parcela_Lancar_Ja_Descartada); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } parcela.Lancar(lancarEntrada); _parcelaRepositorio.Atualizar(parcela); // Cadastro o lançamento var cadastrarEntrada = new CadastrarLancamentoEntrada( parcela.Agendamento.IdUsuario, parcela.Agendamento.IdConta.Value, parcela.Agendamento.IdCategoria, lancarEntrada.Data, lancarEntrada.Valor, parcela.Agendamento.IdPessoa, parcela.Id, lancarEntrada.Observacao); var lancamento = new Lancamento(cadastrarEntrada); await _lancamentoRepositorio.Inserir(lancamento); await _uow.Commit(); return(_uow.Invalido ? new Saida(false, _uow.Mensagens, null) : new Saida(true, new[] { ParcelaMensagem.Parcela_Lancada_Com_Sucesso }, new ParcelaSaida(parcela))); }
public void Lancar(LancarParcelaEntrada lancarEntrada) { if (lancarEntrada.Invalido || lancarEntrada.IdParcela != this.Id) { return; } this.Lancada = true; this.Valor = lancarEntrada.Valor; this.Observacao = lancarEntrada.Observacao; }
public async Task <ISaida> LancarParcela([FromBody, SwaggerParameter("Informações de lançamento da parcela.", Required = true)] LancarParcelaViewModel model) { var lancarEntrada = new LancarParcelaEntrada( model.IdParcela.Value, model.Data.Value, model.Valor.Value, base.ObterIdUsuarioClaim(), model.Observacao); return(await _agendamentoServico.LancarParcela(lancarEntrada)); }
public async Task <IActionResult> LancarParcela( [FromQuery, SwaggerParameter("ID da parcela.", Required = true)] int idParcela, [FromBody, SwaggerParameter("Informações de lançamento da parcela.", Required = true)] LancarParcelaViewModel model) { var entrada = new LancarParcelaEntrada( base.ObterIdUsuarioClaim(), model.Data.Value, model.Valor.Value, model.Observacao); return(new ApiResult(await _agendamentoServico.LancarParcela(idParcela, entrada))); }
public void Lancar(LancarParcelaEntrada entrada) { if (entrada.Invalido) { return; } this.Lancada = true; this.Valor = entrada.Valor; this.DataLancamento = entrada.Data; this.Observacao = entrada.Observacao; this.Agendamento?.AjustarNumeroParcelas(); }