public ActionResult Modificar(EditUserViewModel model) { if (!ModelState.IsValid) { return(View(model)); } try { using (var db = new FinanzasEntities()) { user oUser = db.user.Find(UserF.id); string pass = Encriptador.desencriptar(oUser.password); //La contraseña no debe ser igual a la anterior if (pass.Equals(model.Password)) { TempData["smserror"] = "La nueva contraseña no debe de ser igual a la anterior, porfavor intente nuevamente."; ViewBag.smserror = TempData["smserror"]; return(View(model)); } //La contraseña no debe estar en blanco if (model.Password != null && model.Password.Trim() != "") { oUser.password = Encriptador.encriptar(model.Password); } else { TempData["smserror"] = "La contraseña no puede quedar en blanco, porfavor intente nuevamente."; ViewBag.smserror = TempData["smserror"]; return(View(model)); } db.Entry(oUser).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } TempData["sms"] = "Contraseña cambiada exitosamente"; ViewBag.sms = TempData["sms"]; return(Redirect(Url.Content("~/Home/Index"))); } catch (Exception) { TempData["smserrorc"] = "Ocurrio un Error"; ViewBag.smserrorc = TempData["smserrorc"]; return(View(model)); } }
public ActionResult DetallePrevio(PlanViewModel model) { double VAN = 0; double TCEA = 0; int idC = UserF.ci; PlanViewModel modelP = new PlanViewModel(); using (var db = new FinanzasEntities()) { compraInteligente compra = (from d in db.compraInteligente where d.id == idC select d).FirstOrDefault(); double Sfinal = Math.Round(Convert.ToDouble(compra.monto - compra.inicial), 2); List <detalle> listado = db.detalle.Where(x => x.compraId.Equals(idC)).ToList(); modelP.cuotaInicial = (float)Convert.ToDouble(compra.inicial); modelP.moneda = compra.moneda; modelP.periodo = compra.periodo_pago; modelP.Tasa = Convert.ToDouble(compra.TEA); modelP.valor = (float)Convert.ToDouble(compra.monto); modelP.carro = (from d in db.vehiculo where d.id == compra.vehiculoId select d).FirstOrDefault(); modelP.Detalle = listado; double inter, amort, cuota, TEP; double TEP2 = UserF.TEfectivaP((double)compra.TEA); double[] Flujo = new double[modelP.periodo + 1]; Flujo[0] = Sfinal; if ((model.pgP == "" || model.pgP == null) && (model.pgT == "" || model.pgT == null)) { for (int r = 1; r <= compra.periodo_pago; r++) { Flujo[r] = -Convert.ToDouble(listado[r].flujo); } } else { List <int> PGP2 = new List <int>(); List <int> PGT2 = new List <int>(); PGP2.Add(0); PGT2.Add(0); if (model.pgT != null) { string[] PGT = model.pgT.Split(','); for (int i = 0; i < PGT.Length; i++) { PGT2.Add(Convert.ToInt32(PGT[i])); } } if (model.pgP != null) { string[] PGP = model.pgP.Split(','); for (int i = 0; i < PGP.Length; i++) { PGP2.Add(Convert.ToInt32(PGP[i])); } } #region CalculoActualizado for (int i = 1; i <= modelP.periodo; i++) { detalle oDetalle = (from d in db.detalle where d.compraId == idC & d.n == i select d).FirstOrDefault(); if (PGT2.Contains(i)) { oDetalle.plazoGracia = "t"; oDetalle.saldoInicial = Convert.ToDecimal(Sfinal); inter = Convert.ToDouble((oDetalle.TEP / 100) * oDetalle.saldoInicial); oDetalle.interes = Math.Round(Convert.ToDecimal(inter), 2); oDetalle.cuota = 0; oDetalle.amortizacion = 0; oDetalle.saldoFinal = Math.Round(Convert.ToDecimal(Sfinal + inter), 2); oDetalle.flujo = oDetalle.seguroDesgrav + oDetalle.seguroRiesgo; Flujo[i] = -Convert.ToDouble(oDetalle.flujo); db.Entry(oDetalle).State = EntityState.Modified; db.SaveChanges(); Sfinal = Sfinal + inter; //Calcular con plazo de gracia total } else if (PGP2.Contains(i)) { oDetalle.plazoGracia = "p"; oDetalle.saldoInicial = Convert.ToDecimal(Sfinal); inter = Convert.ToDouble((oDetalle.TEP / 100) * oDetalle.saldoInicial); oDetalle.interes = Math.Round(Convert.ToDecimal(inter), 2); oDetalle.cuota = Math.Round(Convert.ToDecimal(inter), 2); amort = 0; oDetalle.amortizacion = 0; oDetalle.saldoFinal = Math.Round(Convert.ToDecimal(Sfinal - amort), 2); oDetalle.flujo = oDetalle.seguroDesgrav + oDetalle.seguroRiesgo + oDetalle.cuota; Flujo[i] = -Convert.ToDouble(oDetalle.flujo); db.Entry(oDetalle).State = EntityState.Modified; db.SaveChanges(); Sfinal = Sfinal - amort; //Calcular con plazo de gracia Parcial } else { oDetalle.saldoInicial = Convert.ToDecimal(Sfinal); inter = Convert.ToDouble((oDetalle.TEP / 100) * oDetalle.saldoInicial); oDetalle.interes = Math.Round(Convert.ToDecimal(inter), 2); TEP = Convert.ToDouble(oDetalle.TEP) / 100; cuota = UserF.CalcCuotaNc(TEP, modelP.periodo, i, Sfinal); oDetalle.cuota = Math.Round(Convert.ToDecimal(cuota), 2); amort = cuota - inter; oDetalle.amortizacion = Math.Round(Convert.ToDecimal(amort), 2); oDetalle.saldoFinal = Math.Round(Convert.ToDecimal(Sfinal - amort), 2); oDetalle.flujo = oDetalle.seguroDesgrav + oDetalle.seguroRiesgo + oDetalle.cuota; Flujo[i] = -Convert.ToDouble(oDetalle.flujo); db.Entry(oDetalle).State = EntityState.Modified; db.SaveChanges(); Sfinal = Sfinal - amort; //Calculo normal } } #endregion } //TCEA Y VAN double TIR = Financial.IRR(ref Flujo, 0.1); TCEA = Math.Pow((1 + TIR), 12) - 1; double VA = 0; for (int j = 1; j <= compra.periodo_pago; j++) { VA += Flujo[j] / (Math.Pow((1 + TEP2), j)); } VAN = Flujo[0] + VA; compra.TCEA = Convert.ToDecimal(TCEA) * 100; compra.VAN = Math.Round(Convert.ToDecimal(VAN), 2); db.Entry(compra).State = EntityState.Modified; db.SaveChanges(); // } return(Redirect(Url.Content("~/Home/PlanDePago"))); }
public ActionResult Recovery(RecoveryViewModel model) { string EmailOrigen = "*****@*****.**"; string Pass = "******"; using (FinanzasEntities db = new FinanzasEntities()) { var lst = from d in db.user where d.email == model.Email select d; if (lst.Count() > 0) { user oUser = lst.First(); UserF.id = oUser.id; #region //Auto Genera Contraseña - Modifica Contraseña Guid miGuid = Guid.NewGuid(); string PassAutoGenerate = Convert.ToBase64String(miGuid.ToByteArray()); PassAutoGenerate = PassAutoGenerate.Replace("=", "").Replace("+", "").Replace("/", "").Substring(0, 12); oUser.password = Encriptador.encriptar(PassAutoGenerate); db.Entry(oUser).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); #endregion UserF.password = PassAutoGenerate; } else { //Mensaje Alerta ViewBag.smsnore = "No hay una cuenta asociada a este correo"; return(View()); } } MailMessage oMailMessage = new MailMessage(EmailOrigen, model.Email, "Recuperacion de Contraseña", "<p>Correo para recuperacion de contraseña</p><br>" + "<p>Su contraseña es: " + UserF.password + "</p><br>" + "<p>Le recomendamos cambiar su contraseña</p>"); oMailMessage.IsBodyHtml = true; SmtpClient oSmtpClient = new SmtpClient("smtp.gmail.com"); oSmtpClient.EnableSsl = true; oSmtpClient.UseDefaultCredentials = false; oSmtpClient.Port = 587; oSmtpClient.Credentials = new System.Net.NetworkCredential(EmailOrigen, Pass); try { oSmtpClient.Send(oMailMessage); oSmtpClient.Dispose(); //Mensaje de Exito TempData["smsE"] = "El correo ha sido enviado, revise su bandeja de entrada"; ViewBag.smsE = TempData["smsE"]; return(Redirect(Url.Content("~/Access/Index"))); } catch (Exception) { //Mensaje de Peligro TempData["smsD"] = "Ha ocurrido un error crítico"; ViewBag.smsD = TempData["smsD"]; return(Redirect(Url.Content("~/Access/Index"))); } }