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")); }
public ActionResult DeleteConfirmed(int id) { AutoEvaluacion autoEvaluacion = db.Tb_AutoEvaluacion.Find(id); db.Tb_AutoEvaluacion.Remove(autoEvaluacion); db.SaveChanges(); return(RedirectToAction("Index")); }
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)); }
// 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)); }
// 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)); }