public ActionResult GuardarTerminar() { List <CriteriosViewModelafp> list = new List <CriteriosViewModelafp>(); 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); } AutoEvaluacionAfp autoevaluacionAfp = db.Tb_AutoEvaluacionAfp.FirstOrDefault(a => a.Empr_Nit == AccountData.NitEmpresa && !a.Finalizada); if (autoevaluacionAfp != null) { int q = db.Tb_cumplimientoAfp.Count(c => c.Auevafp_Id == autoevaluacionAfp.Auevafp_Id); int q2 = db.Tb_ItemEstandarAfp.Count(ie => tipoEmpresa.Categoria == 0 || ie.Categoria <= tipoEmpresa.Categoria && ie.CategoriaExcepcion != tipoEmpresa.Categoria && ie.CategoriaExcepcion != tipoEmpresa.Categoria); if (q2 > q) { return(RedirectToAction("AutoevaluacionAfp", new { textError = "Esta evaluación aún no ha sido finalizada" })); } autoevaluacionAfp.Auev_Fin = DateTime.Now; autoevaluacionAfp.Finalizada = true; db.Entry(autoevaluacionAfp).State = EntityState.Modified; db.SaveChanges(); } } catch (Exception ex) { ViewBag.TextError = ex.Message; return(RedirectToAction("AutoevaluacionAfp")); } return(RedirectToAction("Index", "Home")); }
/// <summary> /// Inicializa una nueva instancia de la <see cref="AutoEvaluacionViewModelafp"/> clase. /// </summary> public AutoEvaluacionViewModelafp() { AutoEvaluacion = new AutoEvaluacionAfp(); }
public ActionResult AutoevaluacionAfp(string textError = "") { List <CicloPHVAViewModelafp> list = new List <CicloPHVAViewModelafp>(); 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.Categoria < 4 && empresa.Empr_Ttrabaja > 0); } AutoEvaluacionAfp autoevaluacion = db.Tb_AutoEvaluacionAfp.FirstOrDefault(a => a.Empr_Nit == AccountData.NitEmpresa && !a.Finalizada); if (autoevaluacion == null) { db.Tb_AutoEvaluacionAfp.Add( new AutoEvaluacionAfp { Empr_Nit = AccountData.NitEmpresa, Auev_Inicio = DateTime.Now, Auev_Nom = "Autoevaluación" }); db.SaveChanges(); } list = db.Tb_cicloPHVAAfps .Where(cp => cp.Categoria < 4) .Select(cp => new CicloPHVAViewModelafp { Id = cp.Id, Nombre = cp.Nombre, Description = cp.Description, Criteriosafp = cp.CriteriosAfp .Where(c => cp.Id == c.CicloPHVA_Id && tipoEmpresa.Categoria == 0 || c.Categoria < 4) .Select(c => new CriteriosViewModelafp { Id = c.Crit_Id, Nombre = c.Crit_Nom, Porcentaje = c.Crit_Porcentaje, Registro = c.Crit_Registro, EstandaresAfp = c.EstandarsAfp .Where(e => tipoEmpresa.Categoria == 0 || e.Categoria < 4) .Select(e => new EstandaresViewModelafp { Id = e.Esta_Id, Nombre = e.Esta_Nom, Porcentaje = e.Esta_Porcentaje, Registro = e.Esta_Registro, ElementosAfp = e.itemEstandarsAfp .Where(ie => tipoEmpresa.Categoria == 0 || ie.Categoria < 4) .Select(i => new ElementoViewModelafp { 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, CumplimientosAfp = i.CumplimientosAfp.Where(cu => cu.Empr_Nit == AccountData.NitEmpresa && !cu.AutoEvaluacionAfp.Finalizada).ToList() }).ToList() }).ToList() }).ToList() }).ToList(); } catch (Exception ex) { ViewBag.TextError = ex.Message; } return(View(list)); }
public ActionResult CumplimientoAfp([Bind(Include = "AutoEvaluacionId,Cumple,Nocumple,Justifica,Nojustifica,Id,Registro,Observaciones,ItemEstandarId,Nit")] CumplimientoViewModelafp model) { try { AutoEvaluacionAfp autoevaluacionAfp = db.Tb_AutoEvaluacionAfp.FirstOrDefault(a => a.Empr_Nit == AccountData.NitEmpresa && !a.Finalizada); CumplimientoAfp cumplimientoAfp; if (model.Id == 0) { cumplimientoAfp = new CumplimientoAfp { Cumpafp_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, Auevafp_Id = autoevaluacionAfp.Auevafp_Id, }; db.Tb_cumplimientoAfp.Add(cumplimientoAfp); } else { cumplimientoAfp = db.Tb_cumplimientoAfp.Find(model.Id); cumplimientoAfp.Cump_NoAplica = model.NoAplica; cumplimientoAfp.Cumpafp_Id = model.Id; cumplimientoAfp.Cump_Cumple = model.Cumple; cumplimientoAfp.Cump_Nocumple = model.Nocumple; cumplimientoAfp.Cump_Justifica = model.Justifica; cumplimientoAfp.Cump_Nojustifica = model.Nojustifica; cumplimientoAfp.Cump_Observ = model.Observaciones; cumplimientoAfp.Cump_Registro = DateTime.Now; cumplimientoAfp.Empr_Nit = model.Nit; cumplimientoAfp.Iest_Id = model.ItemEstandarId; cumplimientoAfp.Auevafp_Id = autoevaluacionAfp.Auevafp_Id; db.Entry(cumplimientoAfp).State = EntityState.Modified; } db.SaveChanges(); model.Id = cumplimientoAfp.Cumpafp_Id; ViewBag.TextExitoso = "Se guardaron los datos exitosamente"; } catch (Exception ex) { ViewBag.TextError = ex.Message; ItemEstandarAfp item = db.Tb_ItemEstandarAfp.Find(model.ItemEstandarId); model.ItemEstandar = new ElementoViewModelafp { 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("AutoevaluacionAfp")); }
public JsonResult ImplementacionPHVAPlanear(int Nitempresa) { TipoEmpresa tipoEmpresa = new TipoEmpresa(); if (Nitempresa != 0) { Empresa empresa = db.Tb_Empresa.Find(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); } } AutoEvaluacionAfp evaluacion = db.Tb_AutoEvaluacionAfp .Where(a => a.Empr_Nit == Nitempresa && a.CumplimientosAfp.Count > 0) .OrderByDescending(a => a.Auev_Inicio) .FirstOrDefault(); decimal[] lst = new decimal[0]; string[] labels = new string[0]; if (evaluacion != null) { var values = db.Tb_ItemEstandarAfp .Where(ie => tipoEmpresa.Categoria == 0 || (ie.Categoria <= tipoEmpresa.Categoria && ie.CategoriaExcepcion != tipoEmpresa.Categoria && ie.CategoriaExcepcion != tipoEmpresa.Categoria)) .GroupBy(a => a.EstandarAfp.CriterioAfp.CicloPHVAAfp).Select(a => new { key = a.Key.Id, value = (decimal)a.Count(), name = a.Key.Nombre }) .ToArray(); labels = values.Where(v => v.name == "1. Planear").Select(v => v.name).ToArray(); var temp = db.Tb_cumplimientoAfp .Where(a => a.Auevafp_Id == evaluacion.Auevafp_Id && (a.Cump_Cumple || a.Cump_Justifica)) .GroupBy(a => a.ItemEstandarAfp.EstandarAfp.CriterioAfp.CicloPHVAAfp).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]; lst[0] = 0; var flag = 0; for (int i = 0; i < values.Length; i++) { var val = temp.FirstOrDefault(v => v.key == values[i].key); if (val != null) { if (values[i].name == "1. Planear") { lst[0] = Decimal.Round((val.value * 100 / values[i].value), 1); flag = 1; } if (flag == 1) { lst[0 + 1] = 100 - lst[0]; flag = 2; } } } } ChartDataViewModel datos = new ChartDataViewModel { title = "1. Planear PBA", labels = labels, datasets = new List <ChartDatasetsViewModel> { new ChartDatasetsViewModel { label = "Avance porcentual %", data = lst, fill = false, borderWidth = 1 }, } }; return(Json(datos, JsonRequestBehavior.AllowGet)); }