Example #1
0
 private void Abonar()
 {
     if (ValidarAlAbonar())
     {
         Pago pago = new Pago
         {
             Fecha     = DateTime.Now,
             IdCliente = Credito.IdCliente,
             IdCredito = Credito.IdCredito
         };
         if (cmbCuota.SelectedIndex == 1)
         {
             double cuota = Credito.Cuota;
             Credito.Abonar(cmbCuota.Text, 0, Convert.ToInt32(txtCuotapagar.Text.Trim()));
             pago.ValorPago = cuota * Convert.ToDouble(txtCuotapagar.Text.Trim());
             carteraService.ActualizarDineroRestante(pago.ValorPago);
         }
         else
         {
             Credito.Abonar(cmbCuota.Text, Convert.ToInt32(txtCuotapagar.Text.Trim()), 0);
             pago.ValorPago = Convert.ToDouble(txtCuotapagar.Text.Trim());
             carteraService.ActualizarDineroRestante(pago.ValorPago);
         }
         if (Credito.Saldo == 0)
         {
             clienteService.ActualizarEstado(Credito.IdCliente);
             carteraService.ActualizarCanttidadDeudoresMenos();
         }
         pagoService.RegistrarPago(pago);
         creditoService.ActualizarCredito(Credito);
         PintarLabel();
     }
 }
Example #2
0
 public void ListarAbonos()
 {
     CreateCredit(6000000, 10);
     credito = empleado.Creditos.FirstOrDefault();
     credito.Abonar(660000);
     credito.Abonar(820000);
     credito.Abonar(700000);
     Assert.AreEqual(3, credito.Abonos.Count);
     Assert.AreEqual(10, credito.Cuotas.Count);
 }
Example #3
0
        public void AbonoCorrecto()
        {
            // En el escenario de prueba, los 6 millones aparecen como "Valor a pagar", pero debe tomarse como el valor inicial del crédito.
            CreateCredit(6000000, 10);
            credito = empleado.Creditos.FirstOrDefault();
            credito.Abonar(630000);
            credito.Abonar(630000);
            string response = credito.Abonar(800000);

            Assert.AreEqual("Abono registrado correctamente. Su nuevo saldo es: $4240000.", response);
        }
Example #4
0
        public void ConsultarAbonos()
        {
            // En el escenario de prueba, los 6 millones aparecen como "Valor a pagar", pero debe tomarse como el valor inicial del crédito.
            CreateCredit(6000000, 10);
            credito = empleado.Creditos.FirstOrDefault();
            credito.Abonar(660000);
            credito.Abonar(820000);
            credito.Abonar(700000);
            var abono = credito.Abonos[2];

            Assert.AreEqual($"Valor = 700000, Fecha = {abono.FechaDeCreacion}", abono.ToString());
        }
Example #5
0
        public void AbonarCorrecto()
        {
            var valor = 6000000;

            credito.Guardar(valor, credito.Salario, 4);
            var saldo = credito.ValorPagar - 5000000;

            credito.Abonar(5000000);

            //credito.Abonar(5000000);
            //var Cuota = credito.Cuotas.LastOrDefault();
            Assert.AreEqual(13000000, credito.ValorPagar);
        }
Example #6
0
 public void ConsultarCuotas()
 {
     // En el escenario de prueba, los 6 millones aparecen como "Valor a pagar", pero debe tomarse como el valor inicial del crédito.
     CreateCredit(6000000, 10);
     credito = empleado.Creditos.FirstOrDefault();
     credito.Abonar(1890000);
     Assert.AreEqual($"Numero = 2, Estado = Pagada, Valor = 630000, Saldo = 0, Fecha = {credito.Cuotas[1].FechaDePago}", credito.Cuotas[1].ToString());
 }
Example #7
0
        public void AbonoSuperiorASaldo()
        {
            // En el escenario de prueba, los 6 millones aparecen como "Valor a pagar", pero debe tomarse como el valor inicial del crédito.
            CreateCredit(6000000, 10);
            credito = empleado.Creditos.FirstOrDefault();
            Exception ex = Assert.Throws <Exception>(() => credito.Abonar(7000000));

            Assert.AreEqual("El valor del abono es incorrecto.", ex.Message);
        }
        public void AbonoSuperiorCuota()
        {
            CreateCredit(6000000, 10);
            credito = empleado.Creditos.FirstOrDefault();
            string response = credito.Abonar(670000);

            Assert.AreEqual(1, credito.Cuotas.Where(x => x.Estado == EstadoDeCuota.Pagada).Count());
            Assert.AreEqual(1, credito.Cuotas.Where(x => x.Estado == EstadoDeCuota.Parcial).Count());
        }
        public void AbonosIncorrectos(double valor, int plazo, double abono, string expected)
        {
            // En el escenario de prueba, los 6 millones aparecen como "Valor a pagar", pero debe tomarse como el valor inicial del cr�dito.
            CreateCredit(valor, plazo);
            credito = empleado.Creditos.FirstOrDefault();
            Exception ex = Assert.Throws <Exception>(() => credito.Abonar(abono));

            Assert.AreEqual(expected, ex.Message);
        }
        public void AbonoIgualCuota()
        {
            CreateCredit(6000000, 10);
            credito = empleado.Creditos.FirstOrDefault();
            string response = credito.Abonar(630000);

            Assert.IsNotEmpty(credito.Cuotas.Where(x => x.Estado == EstadoDeCuota.Pagada));
            Assert.IsEmpty(credito.Cuotas.Where(x => x.Estado == EstadoDeCuota.Parcial));
            Assert.IsEmpty(credito.Cuotas.Where(x => x.Estado == EstadoDeCuota.Vencida));
        }
 public void ConsultarCuotas()
 {
     // En el escenario de prueba, los 6 millones aparecen como "Valor a pagar", pero debe tomarse como el valor inicial del cr�dito.
     CreateCredit(6000000, 10);
     credito = empleado.Creditos.FirstOrDefault();
     credito.Abonar(1890000);
     Assert.AreEqual($"Numero = 2, Estado = Pagada, Valor = 630000, Saldo = 0, Fecha = {credito.Cuotas[1].FechaDePago}", credito.Cuotas[1].ToString());
     Assert.AreEqual(3, credito.Cuotas.Where(x => x.Estado == EstadoDeCuota.Pagada).ToList().Count);    // 3 Cuotas pagadas
     Assert.AreEqual(7, credito.Cuotas.Where(x => x.Estado == EstadoDeCuota.Pendiente).ToList().Count); // 7 Cuotas pendientes (saldo = 0)
 }
 public void TestCaseAbonarCredito(double valorAbonar,string mensajeEsperado)
 {
    
     Credito creditoAbonar = empleado.Creditos.FirstOrDefault(x=> x.CodigoCredito == credito.CodigoCredito);
     var respuesta = creditoAbonar.CanAbonar(valorAbonar);            
     if (respuesta.Count == 0) {
         respuesta.Add(creditoAbonar.Abonar(valorAbonar));
     }
     //"Su cuota se registró correctamente por un valor 630000 ,saldo del crédito restante 5670000"
     var obtenido = "";
     if (respuesta.Contains(mensajeEsperado)) obtenido = mensajeEsperado;
     Assert.AreEqual(mensajeEsperado, obtenido);
 }
Example #13
0
        public AbonarResponse Ejecutar(AbonarRequest request)
        {
            Empleado empleado = _unitOfWork.EmpleadoRepository.FindBy(x => x.Cedula == request.Cedula, includeProperties: "Creditos").FirstOrDefault();

            if (empleado != null)
            {
                Credito credito = _unitOfWork.CreditoRepository.FindBy(x => x.CodigoCredito == request.CodigoCredito, includeProperties: "Cuotas,Pagos").FirstOrDefault();
                if (credito == null)
                {
                    return new AbonarResponse()
                           {
                               Mensaje = $"El credito {request.CodigoCredito} no existe"
                           }
                }
                ;

                var errores = credito.CanAbonar(request.Valor);
                if (errores.Count == 0)
                {
                    var respuesta = credito.Abonar(request.Valor);

                    _unitOfWork.EmpleadoRepository.Edit(empleado);
                    _unitOfWork.Commit();
                    return(new AbonarResponse()
                    {
                        Mensaje = respuesta
                    });
                }
                return(new AbonarResponse()
                {
                    Mensaje = string.Join("-", errores)
                });
            }
            else
            {
                return(new AbonarResponse()
                {
                    Mensaje = $"El empleado {request.Cedula} no existe"
                });
            }
        }
    }
Example #14
0
        public Response Abonar(AbonarRequest request)
        {
            Empleado empleado = empleadoService.GetEmpleado(request.CedulaEmpleado);

            if (empleado == null)
            {
                return(new Response()
                {
                    Mensaje = $"El empleado con cedula {request.CedulaEmpleado} no se encuentra registrado en el sistema"
                });
            }
            Credito credito = GetCredito(request.NumeroCredito, "Cuotas,Abonos");

            if (credito == null)
            {
                return(new Response()
                {
                    Mensaje = $"Señor {empleado.Nombre}, hasta el momento no tiene un credito de numero {request.NumeroCredito}"
                });
            }
            var errores = credito.CanAbonar(request.Valor);

            if (errores.Count != 0)
            {
                return(new Response()
                {
                    Mensaje = String.Join(",", errores)
                });
            }
            string mensaje = credito.Abonar(request.Valor);

            _unitOfWork.Commit();
            return(new Response()
            {
                Mensaje = mensaje
            });
        }
Example #15
0
        public void Abonnar()
        {
            //el valor total a pagar son 15 millones de acuerdo a la ecuacion SaldoInicialCredito = ValorCredito*(1 + TasaInteres   PlazoCredito)  y el valor de la cuota es 37500000
            NuevoCredito.ValorPrestamo = 5000000;
            double valorAbonar  = 3850000;
            double valorAbonar2 = 3850000;

            NuevoCredito.Validar(NuevoCredito.ValorPrestamo, NuevoCredito.PlazoPago);
            InvalidOperationException ex  = Assert.Throws <InvalidOperationException>(() => NuevoCredito.Abonar(NuevoCredito.Cedula, valorAbonar));
            InvalidOperationException ex2 = Assert.Throws <InvalidOperationException>(() => NuevoCredito.Abonar(NuevoCredito.Cedula, valorAbonar2));

            Assert.AreEqual(ex2.Message, "abonado con exito en las cuotas con indicador 1234 usted debe 7300000");
        }