Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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));
        }