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,
            });
        }
Exemplo n.º 2
0
        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);