public ActionResult GuardarTerminar()
        {
            List <CriteriosViewModel> list = new List <CriteriosViewModel>();

            try
            {
                Empresa     empresa     = db.Tb_Empresa.Find(AccountData.NitEmpresa);
                TipoEmpresa tipoEmpresa = empresa.TipoEmpresa;
                if (empresa.Empr_Ttrabaja > 0 && (tipoEmpresa == null || tipoEmpresa.Categoria < 3))
                {
                    tipoEmpresa = db.Tb_TipoEmpresa.FirstOrDefault(t => t.RangoMinimoTrabajadores <= empresa.Empr_Ttrabaja && t.RangoMaximoTrabajadores >= empresa.Empr_Ttrabaja);
                }
                AutoEvaluacion autoevaluacion = db.Tb_AutoEvaluacion.FirstOrDefault(a => a.Empr_Nit == AccountData.NitEmpresa && !a.Finalizada);
                if (autoevaluacion != null)
                {
                    int q  = db.Tb_Cumplimiento.Count(c => c.Auev_Id == autoevaluacion.Auev_Id);
                    int q2 = db.Tb_ItemEstandar.Count(ie => tipoEmpresa.Categoria == 0 || ie.Categoria <= tipoEmpresa.Categoria && ie.CategoriaExcepcion != tipoEmpresa.Categoria && ie.CategoriaExcepcion != tipoEmpresa.Categoria);
                    if (q2 > q)
                    {
                        return(RedirectToAction("AutoevaluacionSST", new { textError = "Esta evaluación aún no ha sido finalizada" }));
                    }
                    autoevaluacion.Auev_Fin        = DateTime.Now;
                    autoevaluacion.Finalizada      = true;
                    db.Entry(autoevaluacion).State = EntityState.Modified;
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ViewBag.TextError = ex.Message;
                return(RedirectToAction("AutoevaluacionSST"));
            }

            return(RedirectToAction("Index", "Home"));
        }
Пример #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            AutoEvaluacion autoEvaluacion = db.Tb_AutoEvaluacion.Find(id);

            db.Tb_AutoEvaluacion.Remove(autoEvaluacion);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #3
0
 public ActionResult Edit([Bind(Include = "Auev_Id,Auev_Nom,Auev_Inicio,Auev_Fin,Empr_Nit")] AutoEvaluacion autoEvaluacion)
 {
     if (ModelState.IsValid)
     {
         db.Entry(autoEvaluacion).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Empr_Nit = new SelectList(db.Tb_Empresa, "Empr_Nit", "Empr_Nom", autoEvaluacion.Empr_Nit);
     return(View(autoEvaluacion));
 }
Пример #4
0
        // GET: AutoEvaluaciones/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AutoEvaluacion autoEvaluacion = db.Tb_AutoEvaluacion.Find(id);

            if (autoEvaluacion == null)
            {
                return(HttpNotFound());
            }
            return(View(autoEvaluacion));
        }
Пример #5
0
        // GET: AutoEvaluaciones/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AutoEvaluacion autoEvaluacion = db.Tb_AutoEvaluacion.Find(id);

            if (autoEvaluacion == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Empr_Nit = new SelectList(db.Tb_Empresa, "Empr_Nit", "Empr_Nom", autoEvaluacion.Empr_Nit);
            return(View(autoEvaluacion));
        }
        public ActionResult AutoevaluacionSST(string textError = "")
        {
            List <CicloPHVAViewModel> list = new List <CicloPHVAViewModel>();

            try
            {
                ViewBag.TextError = textError;
                Empresa     empresa     = db.Tb_Empresa.Find(AccountData.NitEmpresa);
                TipoEmpresa tipoEmpresa = empresa.TipoEmpresa;
                if (empresa.Empr_Ttrabaja > 0 && (tipoEmpresa == null || tipoEmpresa.Categoria < 3))
                {
                    tipoEmpresa = db.Tb_TipoEmpresa.FirstOrDefault(t => t.RangoMinimoTrabajadores <= empresa.Empr_Ttrabaja && t.RangoMaximoTrabajadores >= empresa.Empr_Ttrabaja);
                }
                AutoEvaluacion autoevaluacion = db.Tb_AutoEvaluacion.FirstOrDefault(a => a.Empr_Nit == AccountData.NitEmpresa && !a.Finalizada);
                if (autoevaluacion == null)
                {
                    db.Tb_AutoEvaluacion.Add(
                        new AutoEvaluacion
                    {
                        Empr_Nit    = AccountData.NitEmpresa,
                        Auev_Inicio = DateTime.Now,
                        Auev_Nom    = "Autoevaluación"
                    });
                    db.SaveChanges();
                }
                list =
                    db.Tb_CicloPHVA
                    .Where(cp => tipoEmpresa.Categoria == 0 || cp.Categoria == 0 || cp.Categoria <= tipoEmpresa.Categoria)
                    .Select(cp =>
                            new CicloPHVAViewModel
                {
                    Id          = cp.Id,
                    Nombre      = cp.Nombre,
                    Description = cp.Description,
                    Criterios   = cp.Criterios
                                  .Where(c => cp.Id == c.CicloPHVA_Id && tipoEmpresa.Categoria == 0 || c.Categoria == 0 || (c.Categoria <= tipoEmpresa.Categoria && c.CategoriaExcepcion != tipoEmpresa.Categoria))
                                  .Select(c =>
                                          new CriteriosViewModel
                    {
                        Id         = c.Crit_Id,
                        Nombre     = c.Crit_Nom,
                        Porcentaje = c.Crit_Porcentaje,
                        Registro   = c.Crit_Registro,
                        Estandares =
                            c.Estandars
                            .Where(e => tipoEmpresa.Categoria == 0 || e.Categoria == 0 || (e.Categoria <= tipoEmpresa.Categoria && e.CategoriaExcepcion != tipoEmpresa.Categoria))
                            .Select(e =>
                                    new EstandaresViewModel
                        {
                            Id         = e.Esta_Id,
                            Nombre     = e.Esta_Nom,
                            Porcentaje = e.Esta_Porcentaje,
                            Registro   = e.Esta_Registro,
                            Elementos  =
                                e.itemEstandars
                                .Where(ie => tipoEmpresa.Categoria == 0 || (ie.Categoria <= tipoEmpresa.Categoria && ie.CategoriaExcepcion != tipoEmpresa.Categoria))
                                .Select(i =>
                                        new ElementoViewModel
                            {
                                Id             = i.Iest_Id,
                                Descripcion    = i.Iest_Desc,
                                Observaciones  = i.Iest_Observa,
                                Porcentaje     = i.Iest_Porcentaje,
                                Recurso        = i.Iest_Recurso,
                                Registro       = i.Iest_Registro,
                                Reursob        = i.Iest_Rescursob,
                                Verificar      = i.Iest_Verificar,
                                Video          = i.Iest_Video,
                                Periodo        = i.Iest_Peri,
                                MasInformacion = i.Iest_MasInfo,
                                Dependencia    = i.Iest_Norma,
                                Cumplimientos  = i.Cumplimientos.Where(cu => cu.Empr_Nit == AccountData.NitEmpresa && !cu.AutoEvaluacion.Finalizada).ToList()
                            }).ToList()
                        }).ToList()
                    }).ToList()
                }).ToList();
            }
            catch (Exception ex)
            {
                ViewBag.TextError = ex.Message;
            }
            return(View(list));
        }
        public ActionResult Cumplimiento([Bind(Include = "AutoEvaluacionId,Cumple,Nocumple,Justifica,Nojustifica,Id,Registro,Observaciones,ItemEstandarId,Nit")] CumplimientoViewModel model)
        {
            try
            {
                AutoEvaluacion autoevaluacion = db.Tb_AutoEvaluacion.FirstOrDefault(a => a.Empr_Nit == AccountData.NitEmpresa && !a.Finalizada);
                Cumplimiento   cumplimiento;
                if (model.Id == 0)
                {
                    cumplimiento =
                        new Cumplimiento
                    {
                        Cump_Id          = model.Id,
                        Cump_NoAplica    = model.NoAplica,
                        Cump_Cumple      = model.Cumple,
                        Cump_Nocumple    = model.Nocumple,
                        Cump_Justifica   = model.Justifica,
                        Cump_Nojustifica = model.Nojustifica,
                        Cump_Observ      = model.Observaciones,
                        Cump_Registro    = DateTime.Now,
                        Empr_Nit         = model.Nit,
                        Iest_Id          = model.ItemEstandarId,
                        Auev_Id          = autoevaluacion.Auev_Id,
                    };
                    db.Tb_Cumplimiento.Add(cumplimiento);
                }
                else
                {
                    cumplimiento = db.Tb_Cumplimiento.Find(model.Id);
                    cumplimiento.Cump_NoAplica    = model.NoAplica;
                    cumplimiento.Cump_Id          = model.Id;
                    cumplimiento.Cump_Cumple      = model.Cumple;
                    cumplimiento.Cump_Nocumple    = model.Nocumple;
                    cumplimiento.Cump_Justifica   = model.Justifica;
                    cumplimiento.Cump_Nojustifica = model.Nojustifica;
                    cumplimiento.Cump_Observ      = model.Observaciones;
                    cumplimiento.Cump_Registro    = DateTime.Now;
                    cumplimiento.Empr_Nit         = model.Nit;
                    cumplimiento.Iest_Id          = model.ItemEstandarId;
                    cumplimiento.Auev_Id          = autoevaluacion.Auev_Id;
                    db.Entry(cumplimiento).State  = EntityState.Modified;
                }
                db.SaveChanges();
                model.Id            = cumplimiento.Cump_Id;
                ViewBag.TextExitoso = "Se guardaron los datos exitosamente";
            }
            catch (Exception ex)
            {
                ViewBag.TextError = ex.Message;
                ItemEstandar item = db.Tb_ItemEstandar.Find(model.ItemEstandarId);
                model.ItemEstandar =
                    new ElementoViewModel
                {
                    Id             = item.Iest_Id,
                    Descripcion    = item.Iest_Desc,
                    Observaciones  = item.Iest_Observa,
                    Porcentaje     = item.Iest_Porcentaje,
                    Recurso        = item.Iest_Recurso,
                    Registro       = item.Iest_Registro,
                    Reursob        = item.Iest_Rescursob,
                    Verificar      = item.Iest_Verificar,
                    Video          = item.Iest_Video,
                    Periodo        = item.Iest_Peri,
                    MasInformacion = item.Iest_MasInfo
                };
                return(View(model));
            }

            return(RedirectToAction("AutoevaluacionSST"));
        }
 /// <summary>
 /// Inicializa una nueva instancia de la <see cref="AutoEvaluacionViewModel"/> clase.
 /// </summary>
 public AutoEvaluacionViewModel()
 {
     AutoEvaluacion = new AutoEvaluacion();
 }
        public JsonResult PromedioAutoevaluaciones()
        {
            TipoEmpresa tipoEmpresa = new TipoEmpresa();

            if (AccountData.NitEmpresa != 0)
            {
                Empresa empresa = db.Tb_Empresa.Find(AccountData.NitEmpresa);
                tipoEmpresa = empresa.TipoEmpresa;
                if (empresa.Empr_Ttrabaja > 0 && (tipoEmpresa == null || tipoEmpresa.Categoria < 3))
                {
                    tipoEmpresa = db.Tb_TipoEmpresa.FirstOrDefault(t => t.RangoMinimoTrabajadores <= empresa.Empr_Ttrabaja && t.RangoMaximoTrabajadores >= empresa.Empr_Ttrabaja);
                }
            }
            AutoEvaluacion evaluacion =
                db.Tb_AutoEvaluacion
                .Where(a => a.Empr_Nit == AccountData.NitEmpresa && a.Cumplimientos.Count > 0 && a.Finalizada)
                .OrderByDescending(a => a.Auev_Inicio)
                .FirstOrDefault();

            decimal[] lst    = new decimal[0];
            string[]  labels = new string[0];
            if (evaluacion != null)
            {
                var values =
                    db.Tb_ItemEstandar
                    .Where(ie => tipoEmpresa.Categoria == 0 || (ie.Categoria <= tipoEmpresa.Categoria && ie.CategoriaExcepcion != tipoEmpresa.Categoria && ie.CategoriaExcepcion != tipoEmpresa.Categoria))
                    .GroupBy(a => a.Estandar.Criterio.CicloPHVA).Select(a => new { key = a.Key.Id, value = (decimal)a.Count(), name = a.Key.Nombre })
                    .ToArray();
                labels = values.Select(v => v.name).ToArray();
                var temp =
                    db.Tb_Cumplimiento
                    .Where(a => a.Auev_Id == evaluacion.Auev_Id && (a.Cump_Cumple || a.Cump_Justifica))
                    .GroupBy(a => a.ItemEstandar.Estandar.Criterio.CicloPHVA).Select(a => new { key = a.Key.Id, value = (decimal)a.Where(e => e.Cump_Cumple || e.Cump_Justifica).Count() })
                    .ToArray();
                lst = new decimal[values.Length];
                for (int i = 0; i < values.Length; i++)
                {
                    var val = temp.FirstOrDefault(v => v.key == values[i].key);
                    if (val != null)
                    {
                        lst[i] = Decimal.Round((val.value * 100 / values[i].value), 1);
                    }
                }
            }
            ChartDataViewModel datos =
                new ChartDataViewModel
            {
                title    = "Medición del ciclo PHVA",
                labels   = labels,
                datasets =
                    new List <ChartDatasetsViewModel> {
                    new ChartDatasetsViewModel
                    {
                        label       = "Avance porcentual %",
                        data        = lst,
                        fill        = false,
                        borderWidth = 1
                    }
                },
            };

            return(Json(datos, JsonRequestBehavior.AllowGet));
        }
        public JsonResult UltimaAutoevaluacion()
        {
            TipoEmpresa tipoEmpresa = new TipoEmpresa();

            if (AccountData.NitEmpresa != 0)
            {
                Empresa empresa = db.Tb_Empresa.Find(AccountData.NitEmpresa);
                tipoEmpresa = empresa.TipoEmpresa;
                if (empresa.Empr_Ttrabaja > 0 && (tipoEmpresa == null || tipoEmpresa.Categoria < 3))
                {
                    tipoEmpresa = db.Tb_TipoEmpresa.FirstOrDefault(t => t.RangoMinimoTrabajadores <= empresa.Empr_Ttrabaja && t.RangoMaximoTrabajadores >= empresa.Empr_Ttrabaja);
                }
            }
            decimal total =
                db.Tb_ItemEstandar
                .Where(ie => tipoEmpresa.Categoria == 0 || (ie.Categoria <= tipoEmpresa.Categoria && ie.CategoriaExcepcion != tipoEmpresa.Categoria && ie.CategoriaExcepcion != tipoEmpresa.Categoria)).Count();
            decimal terminadas = 0;

            if (AccountData.NitEmpresa > 0)
            {
                AutoEvaluacion evaluacion =
                    db.Tb_AutoEvaluacion
                    .Where(a => a.Empr_Nit == AccountData.NitEmpresa && a.Cumplimientos.Count > 0 && a.Finalizada)
                    .OrderByDescending(a => a.Auev_Inicio)
                    .FirstOrDefault();

                if (evaluacion != null)
                {
                    terminadas =
                        db.Tb_Cumplimiento
                        .Count(a => a.Auev_Id == evaluacion.Auev_Id && (a.Cump_Cumple || a.Cump_Justifica));
                }
            }

            ChartDataViewModel datos =
                new ChartDataViewModel
            {
                title  = "Cumplimiento SG-SST",
                labels = new string[2] {
                    "Cumplido", "No cumplido"
                },
                datasets =
                    new List <ChartDatasetsViewModel> {
                    new ChartDatasetsViewModel {
                        label = "Estado actividades %",
                        data  = new string[2] {
                            String.Format("{0:0}", Convert.ToInt32((terminadas * 100) / total)), String.Format("{0:0}", Convert.ToInt32(((total - terminadas) * 100) / total))
                        },
                        fill            = true,
                        borderWidth     = 1,
                        backgroundColor = new string[2] {
                            "#6DB52D", "#AE2429"
                        },
                        borderColor = new string[2] {
                            "#6DB52D", "#AE2429"
                        }
                    }
                }
            };

            return(Json(datos, JsonRequestBehavior.AllowGet));
        }