Ejemplo n.º 1
0
        // GET: CuentasTelepeajes/Delete/5
        public async Task <ActionResult> Delete(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CuentasTelepeaje cuentasTelepeaje = await db.CuentasTelepeajes.FindAsync(id);

            if (cuentasTelepeaje == null)
            {
                return(HttpNotFound());
            }
            return(View(cuentasTelepeaje));
        }
        public async Task <ActionResult> RegresarListaBlanca(string numtag, string numcuenta)
        {
            try
            {
                db.Configuration.ValidateOnSaveEnabled = false;
                ListaNegra tag = await db.ListaNegras.Where(x => x.Numero == numtag).FirstOrDefaultAsync();

                CuentasTelepeaje cuenta = await db.CuentasTelepeajes.Where(x => x.NumCuenta == numcuenta).FirstOrDefaultAsync();

                if (cuenta == null)
                {
                    return(Json(new { success = "", error = "No existe la cuenta." }));
                }

                var tagNew = new Tags
                {
                    StatusResidente = false,
                    StatusTag       = true,
                    DateTTag        = DateTime.Now,
                    IdCajero        = User.Identity.GetUserId(),
                    NumTag          = numtag,
                    CuentaId        = cuenta.Id,
                };

                switch (cuenta.TypeCuenta)
                {
                case "Colectiva":
                    tagNew.SaldoTag = cuenta.SaldoCuenta;
                    break;

                case "Individual":
                    var SaldoSend = tag.SaldoAnterior.Value.ToString("F2");
                    SaldoSend       = SaldoSend.Replace(",", string.Empty);
                    tagNew.SaldoTag = SaldoSend.Replace(".", string.Empty);
                    break;

                default:
                    break;
                }
                db.Tags.Add(tagNew);
                db.ListaNegras.Remove(tag);
                await db.SaveChangesAsync();

                return(Json(new { success = $"Se agregó correctamente el tag: {numtag} a la cuenta: {numcuenta}." }));
            }
            catch (Exception ex)
            {
                return(Json(new { success = "", error = ex.Message }));
            }
        }
Ejemplo n.º 3
0
        // GET: CuentasTelepeajes/Edit/5
        public async Task <ActionResult> Edit(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CuentasTelepeaje cuentasTelepeaje = await db.CuentasTelepeajes.FindAsync(id);

            if (cuentasTelepeaje == null)
            {
                return(HttpNotFound());
            }
            //ViewBag.ClienteId = new SelectList(db.Clientes, "Id", "NumCliente", cuentasTelepeaje.ClienteId);
            return(View(cuentasTelepeaje));
        }
Ejemplo n.º 4
0
        public async Task <ActionResult> Edit(CuentasTelepeaje cuentasTelepeaje)
        {
            db.Configuration.ValidateOnSaveEnabled = false;
            if (ModelState.IsValid)
            {
                if (cuentasTelepeaje.StatusCuenta == true)
                {
                    db.CuentasTelepeajes.Attach(cuentasTelepeaje);
                    db.Entry(cuentasTelepeaje).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    ViewBag.Success = "Se actualizó correctamente la cuenta: " + cuentasTelepeaje.NumCuenta + ".";
                    return(View("Index"));
                }
                ViewBag.Error = "La cuenta no puede ser actualizado porque está dado de baja.";
                return(RedirectToAction("Index"));
            }
            ViewBag.Error = "¡Ups! ocurrio un error inesperado.";
            return(View("Index"));
        }
Ejemplo n.º 5
0
        public async Task <ActionResult> RecargarSaldo(CuentasTelepeaje modelCuenta, string ReturnController)
        {
            try
            {
                db.Configuration.ValidateOnSaveEnabled = false;

                var FoundCuenta = await db.CuentasTelepeajes
                                  .Join(db.Clientes,
                                        cue => cue.ClienteId,
                                        cli => cli.Id,
                                        (cue, cli) => new { cue, cli })
                                  .SingleOrDefaultAsync(x => x.cue.NumCuenta == modelCuenta.NumCuenta);

                if (FoundCuenta == null)
                {
                    TempData["ECreate"] = $"La cuenta no existe.";
                    return(RedirectToAction("Index", ReturnController));
                }

                if (FoundCuenta.cli.StatusCliente == true)
                {
                    if (FoundCuenta.cue.TypeCuenta == "Colectiva")
                    {
                        var UserId = User.Identity.GetUserId();

                        var lastCorteUser = await db.CortesCajeros
                                            .Where(x => x.IdCajero == UserId)
                                            .OrderByDescending(x => x.DateTApertura).FirstOrDefaultAsync();

                        if (lastCorteUser != null)
                        {
                            var Saldo = (double.Parse(FoundCuenta.cue.SaldoCuenta) / 100).ToString("F2");

                            var SaldoNuevo = (double.Parse(Saldo) + double.Parse(modelCuenta.SaldoARecargar, new NumberFormatInfo {
                                NumberDecimalSeparator = ".", NumberGroupSeparator = ","
                            }));

                            var SaldoSend = Math.Round(SaldoNuevo, 2).ToString("F2");

                            SaldoSend = SaldoSend.Replace(",", string.Empty);
                            FoundCuenta.cue.SaldoCuenta = SaldoSend.Replace(".", string.Empty);

                            if ((double.Parse(FoundCuenta.cue.SaldoCuenta, new NumberFormatInfo {
                                NumberDecimalSeparator = ".", NumberGroupSeparator = ","
                            }) / 100) >= 100)
                            {
                                if (FoundCuenta.cue.StatusCuenta == false)
                                {
                                    FoundCuenta.cue.StatusCuenta = true;
                                }

                                List <Tags> tags = await db.Tags.Where(x => x.CuentaId == FoundCuenta.cue.Id).ToListAsync();

                                foreach (var item in tags)
                                {
                                    if (item.StatusTag == false)
                                    {
                                        item.StatusTag = true;
                                    }

                                    item.SaldoTag = FoundCuenta.cue.SaldoCuenta;
                                    db.Tags.Attach(item);
                                    db.Entry(item).State = EntityState.Modified;
                                }
                            }

                            var detalle = new OperacionesCajero
                            {
                                Concepto       = "CUENTA RECARGA",
                                DateTOperacion = DateTime.Now,
                                Numero         = FoundCuenta.cue.NumCuenta,
                                Tipo           = "CUENTA",
                                TipoPago       = "EFE",
                                Monto          = double.Parse(modelCuenta.SaldoARecargar, new NumberFormatInfo {
                                    NumberDecimalSeparator = ".", NumberGroupSeparator = ","
                                }),
                                CorteId      = lastCorteUser.Id,
                                NoReferencia = await methods.RandomNumReferencia(),
                            };

                            db.OperacionesCajeros.Add(detalle);

                            db.CuentasTelepeajes.Attach(FoundCuenta.cue);
                            db.Entry(FoundCuenta.cue).State = EntityState.Modified;

                            await db.SaveChangesAsync();

                            TempData["SCreate"] = $"Se recargó Q{modelCuenta.SaldoARecargar} a la cuenta: {FoundCuenta.cue.NumCuenta} con éxito.";

                            return(RedirectToAction("Index", ReturnController));
                        }

                        TempData["ECreate"] = $"¡Ups! ocurrio un error inesperado.";
                        return(RedirectToAction("Index", ReturnController));
                    }

                    TempData["ECreate"] = "La cuenta: " + modelCuenta.NumCuenta + " es individual o puede que este dada de baja.";
                    return(RedirectToAction("Index", ReturnController));
                }

                TempData["ECreate"] = "No se puede recargar saldo a la cuenta: " + modelCuenta.NumCuenta + " porque el cliente al que pertenece está dado de baja.";
                return(RedirectToAction("Index", "Clientes"));
            }
            catch (Exception ex)
            {
                TempData["ECreate"] = $"¡Ups! ocurrio un error inesperado, {ex.Message}";
                return(RedirectToAction("Index", ReturnController));
            }
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> CreateAjax(CuentasTelepeaje cuentasTelepeaje)
        {
            try
            {
                //ViewBag.ClienteId = new SelectList(db.Clientes, "Id", "NumCliente", cuentasTelepeaje.ClienteId);
                db.Configuration.ValidateOnSaveEnabled = false;

                Clientes cliente = await db.Clientes.FindAsync(cuentasTelepeaje.ClienteId);

                if (cliente.StatusCliente == true)
                {
                    var UserId = User.Identity.GetUserId();

                    var lastCorteUser = await db.CortesCajeros
                                        .Where(x => x.IdCajero == UserId)
                                        .OrderByDescending(x => x.DateTApertura).FirstOrDefaultAsync();

                    if (lastCorteUser != null)
                    {
                        if (cuentasTelepeaje.TypeCuenta == "Individual")
                        {
                            cuentasTelepeaje.SaldoCuenta = null;
                        }

                        cuentasTelepeaje.StatusCuenta          = true;
                        cuentasTelepeaje.StatusResidenteCuenta = false;
                        cuentasTelepeaje.DateTCuenta           = DateTime.Now;
                        cuentasTelepeaje.IdCajero = User.Identity.GetUserId();

                        ModelState.Remove("NumCuenta");
                        ModelState.Remove("IdCajero");
                        ModelState.Remove("SaldoARecargar");
                        ModelState.Remove("ConfSaldoARecargar");

                        cuentasTelepeaje.NumCuenta = RandomNumCuenta();

                        if (ModelState.IsValid)
                        {
                            var query = await db.CuentasTelepeajes.Where(x => x.NumCuenta == cuentasTelepeaje.NumCuenta).ToListAsync();

                            if (query.Count != 0)
                            {
                                while (query.Count != 0)
                                {
                                    cuentasTelepeaje.NumCuenta = RandomNumCuenta();
                                    query = await db.CuentasTelepeajes.Where(x => x.NumCuenta == cuentasTelepeaje.NumCuenta).ToListAsync();
                                }
                            }

                            var detalle = new OperacionesCajero
                            {
                                Concepto       = "CUENTA ACTIVADA",
                                DateTOperacion = DateTime.Now,
                                Numero         = cuentasTelepeaje.NumCuenta,
                                Tipo           = "CUENTA",
                                CorteId        = lastCorteUser.Id,
                                NoReferencia   = await methods.RandomNumReferencia(),
                            };

                            if (cuentasTelepeaje.TypeCuenta == "Colectiva")
                            {
                                detalle.TipoPago = "EFE";
                                detalle.Monto    = double.Parse(cuentasTelepeaje.SaldoCuenta, new NumberFormatInfo {
                                    NumberDecimalSeparator = ".", NumberGroupSeparator = ","
                                });

                                var SaldoSend = double.Parse(cuentasTelepeaje.SaldoCuenta, new NumberFormatInfo {
                                    NumberDecimalSeparator = ".", NumberGroupSeparator = ","
                                }).ToString("F2");
                                SaldoSend = SaldoSend.Replace(",", string.Empty);
                                cuentasTelepeaje.SaldoCuenta = SaldoSend.Replace(".", string.Empty);
                            }

                            db.OperacionesCajeros.Add(detalle);

                            db.CuentasTelepeajes.Add(cuentasTelepeaje);
                            await db.SaveChangesAsync();

                            return(Json(new { idCuenta = cuentasTelepeaje.Id, numcuenta = cuentasTelepeaje.NumCuenta, typecuenta = cuentasTelepeaje.TypeCuenta, success = "Se registró correctamente la cuenta: " + cuentasTelepeaje.NumCuenta + " para el cliente: " + cliente.NumCliente + " " + cliente.Nombre + " " + cliente.Apellidos + ".", error = "", }));
                        }
                    }

                    return(Json(new { success = "", error = $"¡Ups! ocurrio un error inesperado.", }));
                }

                return(Json(new { success = "", error = "El cliente no puede crear una cuenta porque esta dado de baja.", }));
            }
            catch (Exception ex)
            {
                return(Json(new { success = "", error = $"¡Ups! ocurrio un error inesperado, {ex.Message}", }));
            }
        }