public async Task <IActionResult> TransferenciaPagoBeneficiario(TransaccionesViewModels Tr) { if (Tr != null) { var cuentaPrincipalUsuario = await _cuentaRepository.GetByIdAsync(Tr.NumeroCuenta); var cuentaDestinatario = await _cuentaRepository.GetByIdAsync(Tr.NumeroCuentaDestinatario.Value); decimal resta = Convert.ToDecimal(cuentaPrincipalUsuario.Balance - Tr.Monto); decimal suma = Convert.ToDecimal(cuentaDestinatario.Balance + Tr.Monto); cuentaPrincipalUsuario.Balance = resta; cuentaDestinatario.Balance = suma; await _cuentaRepository.Update(cuentaPrincipalUsuario); await _cuentaRepository.Update(cuentaDestinatario); var transacciones = _mapper.Map <Transacciones>(Tr); await _transaccionesRepository.AddAsync(transacciones); return(RedirectToAction("Index")); } return(RedirectToAction("Error")); }
public async Task <PagosViewModel> PagoPrestamo(PagosViewModel ptvm) { var cuenta = await _context.Cuenta.FirstOrDefaultAsync(x => x.NumeroCuenta == ptvm.NumeroCuenta); var prestamo = await _context.Prestamos.FirstOrDefaultAsync(x => x.NumeroPrestamo == ptvm.NumeroCuentaPagar); var tarjeta = await _context.TarjetaCredito.FirstOrDefaultAsync(x => x.NumeroTarjeta == ptvm.NumeroCuenta); if (tarjeta != null) { return(await PagoPrestamoconTarjeta(ptvm, tarjeta, prestamo)); } if (cuenta == null || prestamo == null) { ModelState.AddModelError("", "Cuenta Inexistente"); return(ptvm); } if (cuenta.Balance < ptvm.Monto) { ModelState.AddModelError("", "No tiene suficiente balance"); return(ptvm); } cuenta.Balance = cuenta.Balance - ptvm.Monto; if (prestamo.Monto > ptvm.Monto) { prestamo.Monto = prestamo.Monto - ptvm.Monto; } else if (prestamo.Monto <= ptvm.Monto) { ptvm.Monto = ptvm.Monto - prestamo.Monto; prestamo.Monto = 0; cuenta.Balance = cuenta.Balance + ptvm.Monto; } try { var UsuarioDestinatario = await _usuarioRepository.GetByIdAsync(cuenta.IdUsuario); TransaccionesViewModels Transacciones = new TransaccionesViewModels(); Transacciones.NumeroCuenta = cuenta.NumeroCuenta; Transacciones.NumeroCuentaDestinatario = prestamo.NumeroPrestamo; Transacciones.Monto = ptvm.Monto; Transacciones.Nombre = UsuarioDestinatario.Nombre; Transacciones.Apellido = UsuarioDestinatario.Apellido; Transacciones.TipoTransaccion = 1; await _cuentaRepository.Update(cuenta); await _prestamosRepository.Update(prestamo); var transacciones = _mapper.Map <Transacciones>(Transacciones); await _transaccionesRepository.AddAsync(transacciones); } catch { } return(null); }
public async Task <IActionResult> PagosBeneficiario(BeneficiarioViewModel bvm) { ViewData["Nombre"] = User.Identity.Name; CuentasyPagos cp = new CuentasyPagos(_context, _userManager, _cuentaRepository, _tarjetasRepository, _prestamosRepository, _usuarioRepository, _transaccionesRepository, _mapper); if (ModelState.IsValid) { var cuenta = await _context.Cuenta.FirstOrDefaultAsync(x => x.NumeroCuenta == bvm.NumeroCuenta); var cuenta2 = await _context.Cuenta.FirstOrDefaultAsync(x => x.NumeroCuenta == bvm.NumeroCuentaPagar); if (cuenta == null || cuenta2 == null) { ModelState.AddModelError("", "Cuenta o cuentas inexistentes"); return(View(await cp.Beneficiarios(User.Identity.Name))); } if (bvm.NumeroCuenta == bvm.NumeroCuentaPagar) { ModelState.AddModelError("", "No puedes tranferirte el dinero que ya tienes por favor verifique la cuenta desitinataria."); return(View(await cp.Beneficiarios(User.Identity.Name))); } if (cuenta.Balance < bvm.Monto) { ModelState.AddModelError("", "No tiene suficiente balance"); return(View(await cp.Beneficiarios(User.Identity.Name))); } cuenta.Balance = cuenta.Balance - bvm.Monto; cuenta2.Balance = cuenta2.Balance + bvm.Monto; try { //await _cuentaRepository.Update(cuenta); //await _cuentaRepository.Update(cuenta2); ModelState.AddModelError("", "Tu cuenta si tiene dinero"); var UsuarioDestinatario = await _usuarioRepository.GetByIdAsync(cuenta2.IdUsuario); TransaccionesViewModels Transacciones = new TransaccionesViewModels(); Transacciones.NumeroCuenta = cuenta.NumeroCuenta; Transacciones.NumeroCuentaDestinatario = bvm.NumeroCuentaPagar; Transacciones.Monto = bvm.Monto; Transacciones.Nombre = UsuarioDestinatario.Nombre; Transacciones.Apellido = UsuarioDestinatario.Apellido; Transacciones.TipoTransaccion = 1; return(RedirectToAction("ConfirmPagosBeneficiario", "Client", Transacciones)); } catch { } return(RedirectToAction("Index")); } return(View(bvm)); }
public async Task <IActionResult> PagosExpreso(PagosViewModel pevm) { var cuentaUsuario = await _cuentaRepository.GetCuentaUsuario(await IdUsuarioClienteAsync()); PagosViewModel cuentas = new PagosViewModel(); cuentas.cuenta = cuentaUsuario; ViewData["Nombre"] = User.Identity.Name; if (ModelState.IsValid) { var CuentaDestinatario = await _cuentaRepository.GetByIdAsync(pevm.NumeroCuentaPagar.Value); if (CuentaDestinatario != null) { var CuentaAhorroSeleccionada = await _cuentaRepository.GetByIdAsync(pevm.NumeroCuenta.Value); if (CuentaAhorroSeleccionada.Balance < pevm.Monto) { ModelState.AddModelError("", "Tu cuenta de Ahorro, no tiene suficiente balance para transferir " + pevm.Monto + ""); return(View(cuentas)); } else { ModelState.AddModelError("", "Tu cuenta si tiene dinero"); var UsuarioDestinatario = await _usuarioRepository.GetByIdAsync(CuentaDestinatario.IdUsuario); TransaccionesViewModels Transacciones = new TransaccionesViewModels(); Transacciones.NumeroCuenta = CuentaAhorroSeleccionada.NumeroCuenta; Transacciones.NumeroCuentaDestinatario = pevm.NumeroCuentaPagar; Transacciones.Monto = pevm.Monto; Transacciones.Nombre = UsuarioDestinatario.Nombre; Transacciones.Apellido = UsuarioDestinatario.Apellido; Transacciones.TipoTransaccion = 1; return(RedirectToAction("ConfirmPagosExpreso", "Client", Transacciones)); } } else { ModelState.AddModelError("", "La cuenta que digito no existe, por favor intente con otra"); return(View(cuentas)); } } return(View(cuentas)); }
public IActionResult ConfirmPagosBeneficiario(TransaccionesViewModels transacciones) { return(View(transacciones)); }
public IActionResult ConfirmPagosExpreso(TransaccionesViewModels Transacciones) { return(View(Transacciones)); }