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(); } }
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); }
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); }
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()); }
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); }
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()); }
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); }
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" }); } } }
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 }); }
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"); }