public static AcordoClientEntity ValidarECriar(AcordoClientModel model, PropostaEntity propostaEntity) { var valorJuros = propostaEntity.CalculaJuros(); var valorFinal = valorJuros + propostaEntity.Divida.Valor; var somaParcelas = model.ValorParcela * model.ParcelaSelecionada; if (valorFinal != model.ValorFinal && somaParcelas != model.ValorFinal) { return(null); } return(new AcordoClientEntity() { DataAcordo = DateTime.Now, ValorFinal = model.ValorFinal, TipoJuros = propostaEntity.Juros.TipoJuros, ValorParcela = model.ValorParcela, PropostaId = model.PropostaId, VencimentoParcelas = model.VencimentoParcelas, TaxaJuros = propostaEntity.Juros.Valor, Comissao = (model.ValorFinal * propostaEntity.PorcentagemComissao) / 100, Juros = valorJuros, }); }
public async Task <MensagemResponse <AcordoClientModel> > SalvarAcordoCleinte(AcordoClientModel acordoModel) { try { var propostaEntity = await _propostaRepositorio.ObterPropostaPorId(acordoModel.PropostaId); if (propostaEntity == null) { return(MensagemResponse <AcordoClientModel> .Criar(false, null, "Erro ao Validar Proposta")); } var acordoEntity = AcordoClientEntity.ValidarECriar(acordoModel, propostaEntity); if (acordoEntity == null) { return(MensagemResponse <AcordoClientModel> .Criar(false, null, "Erro ao Validar Proposta")); } propostaEntity.Status = StatusEnumProposta.Confirmado; var result = _acordoRepositorio.Salvar(acordoEntity); if (result == null) { return(MensagemResponse <AcordoClientModel> .Criar(false, null, "Erro ao Salvar Acordo")); } await SaveChangesAsync(); return(MensagemResponse <AcordoClientModel> .Criar(true, acordoModel, "Sucesso ao Salvar Acordo")); } catch (Exception ex) { return(MensagemResponse <AcordoClientModel> .Criar(false, null, ex.Message)); } }
public async Task <MensagemResponse <AcordoClientModel> > SalvarProposta(AcordoClientModel acordoModel) => await _acordoService.SalvarAcordoCleinte(acordoModel);