public ActionResult Edit(int id) { var comision = db.Comision.Find(id); if (comision == null) { return(HttpNotFound()); } var ViewModel = new ComisionViewModel() { importe = comision.ImpComision }; return(View(ViewModel)); }
public ActionResult AddComisionUser() { ComisionViewModel model = new ComisionViewModel(); List <SelectListItem> regionesTemp; using (SaludOcupacionalEntities db = new SaludOcupacionalEntities()) { regionesTemp = (from d in db.Region orderby d.numeroRegion select new SelectListItem { Value = d.idRegion.ToString(), Text = d.nombreRegion, }).ToList(); } model.listaDeRegiones = new SelectList(regionesTemp, "Value", "Text"); return(View(model)); }
public ActionResult Edit(ComisionViewModel viewModel) { try { if (ModelState.IsValid) { var ComisionN = db.Comision.Find(viewModel.id); var _comAuditoria = new ComisionAuditoria(); var idUser = User.Identity.GetUserId(); var usuario = db.Users.Where(x => x.Id == idUser).FirstOrDefault(); _comAuditoria.FechaAlta = ComisionN.FechaAlta; _comAuditoria.FechaModificacion = DateTime.Now; _comAuditoria.UsuarioAlta = ComisionN.Usuario; _comAuditoria.ImpComision = ComisionN.ImpComision; _comAuditoria.UsuarioModificacion = usuario.Nombre + " " + usuario.Apellido; if (viewModel.importe >= 0 && ComisionN.ImpComision != viewModel.importe) { ComisionN.ImpComision = viewModel.importe; ComisionN.Usuario = usuario.Nombre + " " + usuario.Apellido; db.Entry(ComisionN).State = EntityState.Modified; db.ComisionAuditoria.Add(_comAuditoria); db.SaveChanges(); return(RedirectToAction("Index")); } return(View()); } // TODO: Add update logic here } catch { return(View()); } return(View()); }
public ActionResult AddComisionUser(ComisionViewModel model) { List <SelectListItem> regionesTemp; using (SaludOcupacionalEntities db = new SaludOcupacionalEntities()) { regionesTemp = (from d in db.Region orderby d.numeroRegion select new SelectListItem { Value = d.idRegion.ToString(), Text = d.nombreRegion, }).ToList(); } model.listaDeRegiones = new SelectList(regionesTemp, "Value", "Text"); if (!ModelState.IsValid) { return(View(model)); } using (var db = new SaludOcupacionalEntities()) { // Revisa si el centro de trabajo existe en el sistema CentroDeTrabajo oCentroDeTrabajo = db.CentroDeTrabajo.Find(model.idCentroDeTrabajo); if (oCentroDeTrabajo == null) { ModelState.AddModelError("nombreCentroDeTrabajo", "El Centro de Trabajo no Existe"); return(View(model)); } // Revisa si el centro de trabajo ya tiene una comisión asignada. Sólo puede haber una comisión por centro de trabajo int valido = (from d in db.Comision join ct in db.CentroDeTrabajo on d.idCentroDeTrabajo equals ct.idCentroDeTrabajo where ct.idCentroDeTrabajo == model.idCentroDeTrabajo select d.idCentroDeTrabajo).Count(); if (valido != 0) { ModelState.AddModelError("nombreCentroDeTrabajo", "El Centro de Trabajo ya está asignado a otra comisión"); return(View(model)); } /* Crea el nombre de la comisión de manera predeterminada. Ej: "comisionhatillo" para el centro de trabajo "Hatillo" * Quita los espacios en blanco*/ string nombreComision = String.Concat(oCentroDeTrabajo.nombreCentroDeTrabajo.Where(c => !Char.IsWhiteSpace(c))); nombreComision = "comision" + nombreComision; /* Revisa si el nombre de la comisión ya existe. Esto es para cuentas duplicadas, centros de trabajo que se llamen igual * pero pertenezcan a diferentes regiones, lo cual es válido*/ var usernameExists = db.Cuenta.Any(x => x.nombre == nombreComision); if (usernameExists) { // En caso de repetirse, añade el número de región. Ej "comisionsanrafael2" para San Rafael de Alajuela nombreComision = nombreComision + oCentroDeTrabajo.Region.numeroRegion.ToString(); } // Quita mayúsculas y guiones del nombre nombreComision = nombreComision.ToLower(); nombreComision = Regex.Replace(nombreComision.Normalize(NormalizationForm.FormD), @"[^a-zA-z0-9 ]+", ""); // La contraseña se genera mediante una función de C#, que recibe la cantidad de caracteres y el número de caracteres no alfanuméricos string contrasena = Membership.GeneratePassword(10, 1); ViewBag.nombre = nombreComision; ViewBag.contra = contrasena; // Se encripta la contraseña contrasena = CryptoEngine.Encrypt(contrasena); Cuenta oCuenta = new Cuenta(); oCuenta.nombre = nombreComision; oCuenta.contrasena = contrasena; oCuenta.rol = 1; // Rol 1 significa "usuario" db.Cuenta.Add(oCuenta); Comision oComision = new Comision(); oComision.idCentroDeTrabajo = model.idCentroDeTrabajo; oComision.idCuenta = oCuenta.idCuenta; db.Comision.Add(oComision); db.SaveChanges(); } return(View(model)); }