protected void pgCompetencias_CellDataBound(object sender, Telerik.Web.UI.PivotGridCellDataBoundEventArgs e) { int vNoValorCompetencia; if (e.Cell is PivotGridColumnHeaderCell) { E_COMPARACION_COMPETENCIA vEmpleado = ComparacionCompetencias.Where(t => t.CL_EMPLEADO.Equals(e.Cell.DataItem.ToString())).FirstOrDefault(); if (vEmpleado != null) { e.Cell.ToolTip = vEmpleado.NB_EMPLEADO; e.Cell.Text = String.Format("<a href='#' onclick='OpenInventario({1})'>{0}</a>", vEmpleado.CL_EMPLEADO, vEmpleado.ID_EMPLEADO); oListaEmpleados.Add(e.Cell.DataItem.ToString()); } } if (e.Cell is PivotGridRowHeaderCell) { if (e.Cell.Controls.Count > 1) { (e.Cell.Controls[0] as Button).Visible = false; } } else if (e.Cell is PivotGridDataCell) { PivotGridDataCell celda = (PivotGridDataCell)e.Cell; if (celda.IsGrandTotalCell) { celda.Text = "<div style=\"text-align: center;\">" + obtenerPromedio(oListaEmpleados[celda.ColumnIndex]).ToString() + "</div>"; } else { System.Web.UI.HtmlControls.HtmlGenericControl divColor = celda.FindControl("divColorComparacion") as System.Web.UI.HtmlControls.HtmlGenericControl; System.Web.UI.HtmlControls.HtmlGenericControl divPromedio = celda.FindControl("divPromedio") as System.Web.UI.HtmlControls.HtmlGenericControl; System.Web.UI.HtmlControls.HtmlGenericControl divNa = celda.FindControl("divNa") as System.Web.UI.HtmlControls.HtmlGenericControl; System.Web.UI.HtmlControls.HtmlGenericControl divNc = celda.FindControl("divNc") as System.Web.UI.HtmlControls.HtmlGenericControl; if (e.Cell.DataItem != null) { if ((decimal)e.Cell.DataItem == Convert.ToDecimal(-1)) { //e.Cell.Text = "<div style=\"text-align: center;\">N/C</div>"; //e.Cell.CssClass = "PotencialNC"; divNa.Style.Add("display", "none"); divNc.Style.Add("display", "block"); divPromedio.Style.Add("display", "none"); divColor.Style.Add("background-color", "gray"); } else if (celda.ParentRowIndexes[2].ToString() == "Total de elementos en común:") { divNa.Style.Add("display", "none"); divNc.Style.Add("display", "none"); divPromedio.Style.Add("display", "block"); divPromedio.Style.Add(" font-weight", "bold"); divColor.Style.Add("background-color", "white"); } else { vNoValorCompetencia = Convert.ToInt32((decimal)e.Cell.DataItem); if (vNoValorCompetencia == 0) { //e.Cell.CssClass = "PotencialPuestoBajo"; this.rtmInfoEmpleados.TargetControls.Add(celda.ClientID, oListaEmpleados[celda.ColumnIndex], true); divNa.Style.Add("display", "none"); divNc.Style.Add("display", "none"); divPromedio.Style.Add("display", "none"); divColor.Style.Add("background-color", "red"); } else if (vNoValorCompetencia == 1) { //e.Cell.CssClass = "PotencialPuestoAlto"; divNa.Style.Add("display", "none"); divNc.Style.Add("display", "none"); divPromedio.Style.Add("display", "none"); divColor.Style.Add("background-color", "green"); this.rtmInfoEmpleados.TargetControls.Add(celda.ClientID, oListaEmpleados[celda.ColumnIndex], true); } else if (vNoValorCompetencia < 70) { //e.Cell.CssClass = "PotencialBajo"; divNa.Style.Add("display", "none"); divNc.Style.Add("display", "none"); divPromedio.Style.Add("display", "block"); divColor.Style.Add("background-color", "red"); } else if (vNoValorCompetencia >= 70 & vNoValorCompetencia <= 90) { //e.Cell.CssClass = "PotencialIntermedio"; divNa.Style.Add("display", "none"); divNc.Style.Add("display", "none"); divPromedio.Style.Add("display", "block"); divColor.Style.Add("background-color", "gold"); } else if (vNoValorCompetencia > 90) { //e.Cell.CssClass = "PotencialAlto"; divNa.Style.Add("display", "none"); divNc.Style.Add("display", "none"); divPromedio.Style.Add("display", "block"); divColor.Style.Add("background-color", "green"); } } } else { divNa.Style.Add("display", "none"); divNc.Style.Add("display", "block"); divPromedio.Style.Add("display", "none"); divColor.Style.Add("background-color", "gray"); } } } }
public List <E_COMPARACION_COMPETENCIA> obtieneComparacionCompetenciasPlanSucesion(string XML_EMPLEADOS, int?ID_PUESTO) { using (contexto = new SistemaSigeinEntities()) { var listaCompetencias = contexto.SPE_OBTIENE_COMPARACION_COMPETENCIAS_PLAN_SUCESION(XML_EMPLEADOS, ID_PUESTO).ToList(); var listaPuestos = contexto.SPE_OBTIENE_COMPARACION_PUESTOS_PLAN_SUCESION(ID_PUESTO, XML_EMPLEADOS).ToList(); int maximo; if (listaCompetencias.Count() > 0) { maximo = listaCompetencias.Max(t => t.NO_ORDEN) + 1; } else { maximo = 1; } var source = (from a in listaCompetencias select new E_COMPARACION_COMPETENCIA { ID_PUESTO = a.ID_PUESTO, CL_PUESTO = a.CL_PUESTO, NB_PUESTO = a.NB_PUESTO, ID_EMPLEADO = a.ID_EMPLEADO, CL_EMPLEADO = a.CL_EVALUADO, NB_EMPLEADO = a.NB_EVALUADO, ID_COMPETENCIA = a.ID_COMPETENCIA, NB_COMPETENCIA = a.NB_COMPETENCIA, DS_COMPETENCIA = a.DS_COMPETENCIA, //NO_VALOR_NIVEL = a.NO_VALOR_NIVEL, //NO_RESULTADO_PROMEDIO = a.NO_RESULTADO_PROMEDIO, PR_COMPATIBILIDAD = a.PR_COMPATIBILIDAD.ToString(), PR_NO_COMPATIBILIDAD = a.PR_COMPATIBILIDAD, CL_COLOR = a.CL_COLOR, NO_ORDEN = a.NO_ORDEN, NO_ACIERTO = a.NO_CONTADOR, CL_TIPO_REGISTRO = "C" }).ToList(); foreach (SPE_OBTIENE_COMPARACION_PUESTOS_PLAN_SUCESION_Result item in listaPuestos) { E_COMPARACION_COMPETENCIA e = new E_COMPARACION_COMPETENCIA(); int vContador = listaCompetencias.Where(w => w.CL_EVALUADO == item.CL_EMPLEADO).Sum(s => s.NO_CONTADOR); e.CL_EMPLEADO = item.CL_EMPLEADO; e.NB_COMPETENCIA = item.CL_ITEM; e.DS_COMPETENCIA = string.IsNullOrEmpty(item.DS_ITEM) ? "" : item.DS_ITEM; e.NO_ORDEN = maximo; e.CL_COLOR = "#F5F5F5"; e.CL_TIPO_REGISTRO = "P"; switch (item.ID_ITEM) { case 1: e.PR_NO_COMPATIBILIDAD = item.FG_CUMPLE_EDAD; e.NO_ACIERTO = item.FG_CUMPLE_EDAD; e.PR_COMPATIBILIDAD = item.NO_EDAD; break; case 2: e.PR_NO_COMPATIBILIDAD = item.FG_GENERO; e.NO_ACIERTO = item.FG_GENERO; e.PR_COMPATIBILIDAD = item.NB_GENERO; break; case 3: e.PR_NO_COMPATIBILIDAD = item.FG_ESTADO_CIVIL; e.NO_ACIERTO = item.FG_ESTADO_CIVIL; e.PR_COMPATIBILIDAD = item.CL_ESTADO_CIVIL; break; case 4: e.PR_NO_COMPATIBILIDAD = item.FG_PROFESIONAL; e.NO_ACIERTO = item.FG_PROFESIONAL; e.PR_COMPATIBILIDAD = item.NB_PROFESIONAL; break; case 5: e.PR_NO_COMPATIBILIDAD = item.FG_POSTGRADO; e.NO_ACIERTO = item.FG_POSTGRADO; e.PR_COMPATIBILIDAD = item.NB_POSTGRADO; break; case 6: e.PR_NO_COMPATIBILIDAD = item.FG_SUELDO; e.NO_ACIERTO = item.FG_SUELDO; e.PR_COMPATIBILIDAD = item.MN_SUELDO.ToString(); break; case 7: e.PR_NO_COMPATIBILIDAD = item.TOTAL + vContador; e.NO_ACIERTO = 0; e.PR_COMPATIBILIDAD = item.TOTAL.ToString(); break; default: break; } source.Add(e); } return(source); } }