Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
 public IActionResult ConfirmPagosBeneficiario(TransaccionesViewModels transacciones)
 {
     return(View(transacciones));
 }
Exemplo n.º 6
0
 public IActionResult ConfirmPagosExpreso(TransaccionesViewModels Transacciones)
 {
     return(View(Transacciones));
 }