Example #1
0
        public string RegistrarAbono(double valorAbonado)
        {
            if (CreditoPagado == false)
            {
                Cuota cuota = ListaCuota.Find(cuota => cuota.EstadoCuota == false);
                if (valorAbonado > 0 && valorAbonado <= SaldoAPagar)
                {
                    if (valorAbonado >= cuota.ValorCuota)
                    {
                        double sobrante = cuota.PagarCuota(valorAbonado);

                        PagarAbonoSobrante(sobrante);

                        SaldoAPagar -= valorAbonado;
                        if (SaldoAPagar == 0)
                        {
                            CreditoPagado = true;
                        }
                        Abono abono = new Abono(valorAbonado);
                        ListaAbonos.Add(abono);



                        return("Valor del abono Correcto  Abono registrado");
                    }
                    else
                    {
                        return("Valor del abono incorrecto");
                    }
                }
                else
                {
                    return("Valor del abono incorrecto");
                }
            }
            else
            {
                return("Credito Pagado");
            }
        }
Example #2
0
 public AbonoCuota(Abono abono, Cuota cuota)
 {
     this.AbonoId = abono.Id;
     this.CuotaId = cuota.Id;
 }
Example #3
0
 public AbonoCuota(Abono abono, Cuota cuota)
 {
     AbonoId = abono.Id;
     CuotaId = cuota.Id;
 }
Example #4
0
        public virtual void Abonar(string cedula, double valor)
        {
            if (valor < 0)
            {
                throw new InvalidOperationException($"EL valor a abonar no puede ser menor a 0");
            }
            if (valor > SaldoCredito)
            {
                throw new InvalidOperationException($"EL valor a abonar no puede ser mayor a el saldo del credito");
            }
            else
            {
                if (valor >= ValorCuota)
                {
                    double valorabono = valor;
                    foreach (var dto in Cuotas)
                    {
                        if (dto.IdCuota.Equals(cedula))
                        {
                            if (dto.ValorAbonado == 0 && dto.ValorPendiente == 0)
                            {
                                if (valor >= ValorCuota)
                                {
                                    dto.ValorAbonado   = ValorCuota;
                                    dto.ValorPendiente = 0;
                                    valor = valor - ValorCuota;
                                }
                                else
                                {
                                    if (valor < ValorCuota)
                                    {
                                        dto.ValorAbonado   = valor;
                                        dto.ValorPendiente = ValorCuota - valor;
                                        valor = 0;
                                        break;
                                    }
                                }
                            }
                            if (dto.ValorAbonado != 0 && dto.ValorPendiente != 0)
                            {
                                if (valor >= ValorCuota)
                                {
                                    valor             -= (ValorCuota - dto.ValorAbonado);
                                    dto.ValorAbonado   = ValorCuota;
                                    dto.ValorPendiente = 0;
                                }
                            }
                            if (dto.ValorAbonado != 0 && dto.ValorPendiente == 0)
                            {
                            }
                        }
                    }

                    this.SaldoCredito -= valorabono;
                    Abono abono = new Abono();
                    abono.Cedula       = cedula;
                    abono.ValorAbonado = valorabono;
                    abono.FechaAbono   = DateTime.Now;
                    Abonos.Add(abono);
                    throw new InvalidOperationException($"abonado con exito en las cuotas con indicador {cedula} usted debe {SaldoCredito}");
                }
                else
                {
                    throw new InvalidOperationException($"EL valor a abonar no puede ser menor al valor de la cuota");
                }
            }
        }