protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { PeriodoDesempenoNegocio nDesempeno = new PeriodoDesempenoNegocio(); vListaPeriodos = new List <E_SELECCION_PERIODOS_DESEMPENO>(); if (Request.Params["ID_EVALUADO"] != null) { vIdEvaluado = int.Parse(Request.Params["ID_EVALUADO"].ToString()); } if (Request.Params["ID_EMPLEADO"] != null) { vIdEmpleado = int.Parse(Request.Params["ID_EMPLEADO"].ToString()); } if (Request.Params["CL_ORIGEN"] != null) { if (Request.Params["CL_ORIGEN"] == "GLOBAL") { if (ContextoPeriodos.oLstPeriodos != null) { int i = 1; foreach (E_SELECCION_PERIODOS_DESEMPENO item in ContextoPeriodos.oLstPeriodos.OrderBy(s => s.idPeriodo)) { vListaPeriodos.Add(new E_SELECCION_PERIODOS_DESEMPENO { numPeriodo = i, idPeriodo = item.idPeriodo, idEvaluado = vIdEvaluado, nbPeriodo = item.nbPeriodo }); i++; } } } } else { if (ContextoPeriodos.oLstPeriodosPersonal != null) { int i = 1; foreach (E_SELECCION_PERIODOS_DESEMPENO item in ContextoPeriodos.oLstPeriodosPersonal.OrderBy(s => s.idPeriodo)) { vListaPeriodos.Add(new E_SELECCION_PERIODOS_DESEMPENO { numPeriodo = i, idPeriodo = item.idPeriodo, idEvaluado = item.idEvaluado, nbPeriodo = item.nbPeriodo } ); i++; } } } var vXelements = vListaPeriodos.Select(x => new XElement("PERIODOS", new XAttribute("ID_PERIODO", x.idPeriodo), new XAttribute("ID_EVALUADO", x.idEvaluado))); SELECCIONPERIODOS = new XElement("SELECCIONADOS", vXelements); //GRÁFICA List <E_META> vMetasGrafica = nDesempeno.ObtenerMetasGrafica(SELECCIONPERIODOS.ToString(), vIdEmpleado).Select(s => new E_META { NO_META = s.NO_META.ToString(), DS_META = s.DS_META, PR_CUMPLIMIENTO = s.PR_CUMPLIMIENTO_META, COLOR_NIVEL = s.COLOR_NIVEL, NB_PERIODO = s.NB_PERIODO }).ToList(); vMetas = new List <E_METAS_PERIODOS>(); rhcCumplimientoPersonal.PlotArea.Series.Clear(); rhcCumplimientoPersonal.PlotArea.YAxis.LabelsAppearance.DataFormatString = "{0:N2}%"; vRow = 1; foreach (E_META item in vMetasGrafica.OrderBy(o => o.DS_META)) { bool exists = vMetas.Exists(element => element.DS_META == item.DS_META); if (!exists) { E_METAS_PERIODOS f = new E_METAS_PERIODOS { NO_META_EVALUA = vRow, NO_META = item.NO_META, DS_META = item.DS_META, NB_PERIODO = item.NB_PERIODO, PR_CUMPLIMIENTO = item.PR_CUMPLIMIENTO, COLOR_NIVEL = item.COLOR_NIVEL }; vMetas.Add(f); vRow++; } } foreach (var Metas in vMetas.OrderBy(o => o.DS_META)) { rhcCumplimientoPersonal.PlotArea.XAxis.Items.Add("Meta " + Metas.NO_META_EVALUA); } List <E_SELECCION_PERIODOS_DESEMPENO> vListaPeriodosGraf = new List <E_SELECCION_PERIODOS_DESEMPENO>(); vListaPeriodosGraf = vListaPeriodos.OrderBy(o => o.idPeriodo).ToList(); foreach (var items in vListaPeriodosGraf.OrderBy(o => o.idPeriodo).ToList()) { List <E_META> vGraficaTemas = nDesempeno.ObtieneMetasEvaluados(pIdPeriodo: items.idPeriodo, idEvaluado: items.idEvaluado, FgEvaluar: true, idEmpleado: vIdEmpleado).Select(s => new E_META { NO_META = s.NO_META.ToString(), DS_META = s.DS_META, PR_CUMPLIMIENTO = s.PR_CUMPLIMIENTO_META, COLOR_NIVEL = s.COLOR_NIVEL }).ToList(); ColumnSeries vSerie = new ColumnSeries(); // vSerie.Name = (items.nbPeriodo); vSerie.TooltipsAppearance.ClientTemplate = items.nbPeriodo; vListaMetasEvalPeriodo = new List <E_METAS_EVALUADO_PERIODO>(); foreach (var item in vGraficaTemas.OrderBy(o => o.ID_PERIODO).ToList()) { foreach (var Metas in vMetas) { if (item.DS_META == Metas.DS_META) { bool exists = vListaMetasEvalPeriodo.Exists(element => element.DS_META == Metas.DS_META); bool value = vListaMetasEvalPeriodo.Exists(element => element.DS_META == Metas.DS_META && element.PR_CUMPLIMIENTO != 0); if (!exists) { vListaMetasEvalPeriodo.Add(new E_METAS_EVALUADO_PERIODO { DS_META = Metas.DS_META, PR_CUMPLIMIENTO = item.PR_CUMPLIMIENTO }); } else if (exists && !value) { var itemToRemove = vListaMetasEvalPeriodo.Single(r => r.DS_META == Metas.DS_META); vListaMetasEvalPeriodo.Remove(itemToRemove); vListaMetasEvalPeriodo.Add(new E_METAS_EVALUADO_PERIODO { DS_META = Metas.DS_META, PR_CUMPLIMIENTO = item.PR_CUMPLIMIENTO }); } } else { bool exists = vListaMetasEvalPeriodo.Exists(element => element.DS_META == Metas.DS_META); bool value = vListaMetasEvalPeriodo.Exists(element => element.DS_META == Metas.DS_META && element.PR_CUMPLIMIENTO != 0); if (!exists) { vListaMetasEvalPeriodo.Add(new E_METAS_EVALUADO_PERIODO { DS_META = Metas.DS_META, PR_CUMPLIMIENTO = 0 }); } } } } foreach (var item in vListaMetasEvalPeriodo.OrderBy(o => o.DS_META)) { vSerie.SeriesItems.Add(new CategorySeriesItem(item.PR_CUMPLIMIENTO, System.Drawing.ColorTranslator.FromHtml(GeneraColor(items.numPeriodo)))); vSerie.LabelsAppearance.Visible = false; // vSerie.TooltipsAppearance.ClientTemplate = item.PR_CUMPLIMIENTO.ToString(); } rhcCumplimientoPersonal.PlotArea.Series.Add(vSerie); } var vEmpleado = nDesempeno.ObtieneEvaluados(pIdPeriodo: null, pIdEvaluado: vIdEvaluado, pIdEvaluador: null).FirstOrDefault(); vIdEmpleado = vEmpleado.ID_EMPLEADO; txtClEmpleado.InnerText = vEmpleado.CL_EMPLEADO; txtNbEmpleado.InnerText = vEmpleado.NB_EMPLEADO_COMPLETO; PintarReporte(); PintarResultadosGrafica(); } if (SELECCIONPERIODOS == null) { var vXelements = vListaPeriodos.Select(x => new XElement("PERIODOS", new XAttribute("ID_PERIODO", x.idPeriodo), new XAttribute("ID_EVALUADO", x.idEvaluado))); SELECCIONPERIODOS = new XElement("SELECCIONADOS", vXelements); } vClUsuario = ContextoUsuario.oUsuario.CL_USUARIO; vNbPrograma = ContextoUsuario.nbPrograma; }
public DataTable ObtieneMetasComparativaGrafica(string vXmlPeriodos, ref List <E_PERIODOS_COMPARAR> vListaPeriodos) { PeriodoDesempenoNegocio oPeriodo = new PeriodoDesempenoNegocio(); List <E_PERIODOS_COMPARAR> vListaPeriodosGrafica = new List <E_PERIODOS_COMPARAR>(); vListaPeriodosGrafica = oPeriodo.ObtenerDesempenoComparacion(vXmlPeriodos).ToList(); DataTable vDtPivot = new DataTable(); vDtPivot.Columns.Add("NO_META_EVALUA", typeof(string)); vDtPivot.Columns.Add("DS_META", typeof(string)); List <E_METAS_PERIODO_COMPARACION> vListaMetasGrafica = new List <E_METAS_PERIODO_COMPARACION>(); List <E_METAS_PERIODO_COMPARACION> vListaMetasGraficaFinal = new List <E_METAS_PERIODO_COMPARACION>(); foreach (var item in vListaPeriodosGrafica) { //item.NB_PERIODO_ENCABEZADO = item.NB_PERIODO; //if (vDtPivot.Columns.Contains(item.NB_PERIODO_ENCABEZADO)) //{ // item.NB_PERIODO_ENCABEZADO = item.NB_PERIODO_ENCABEZADO + "1"; //} vDtPivot.Columns.Add(item.NB_PERIODO_ENCABEZADO, typeof(string)); vListaMetasGrafica = oPeriodo.ObtieneMetasComparacion(idEvaluadoMeta: null, pIdPeriodo: item.ID_PERIODO, idEvaluado: vIdEvaluado).ToList(); foreach (E_METAS_PERIODO_COMPARACION items in vListaMetasGrafica) { vListaMetasGraficaFinal.Add(new E_METAS_PERIODO_COMPARACION { ID_EVALUADO_META = items.ID_EVALUADO_META, ID_PERIODO = items.ID_PERIODO, ID_EVALUADO = items.ID_EVALUADO, NO_META = items.NO_META, DS_FUNCION = items.DS_FUNCION, NB_INDICADOR = items.NB_INDICADOR, DS_META = items.DS_META, CL_TIPO_META = items.CL_TIPO_META, FG_VALIDA_CUMPLIMIENTO = items.FG_VALIDA_CUMPLIMIENTO, FG_EVALUAR = items.FG_EVALUAR, NB_CUMPLIMIENTO_ACTUAL = items.NB_CUMPLIMIENTO_ACTUAL, NB_CUMPLIMIENTO_MINIMO = items.NB_CUMPLIMIENTO_MINIMO, NB_CUMPLIMIENTO_SATISFACTORIO = items.NB_CUMPLIMIENTO_SATISFACTORIO, NB_CUMPLIMIENTO_SOBRESALIENTE = items.NB_CUMPLIMIENTO_SOBRESALIENTE, PR_META = items.PR_META, NB_RESULTADO = items.NB_RESULTADO, PR_RESULTADO = items.PR_RESULTADO, CL_NIVEL = items.CL_NIVEL, PR_CUMPLIMIENTO_META = items.PR_CUMPLIMIENTO_META, FG_EVIDENCIA = items.FG_EVIDENCIA, PR_EVALUADO = items.PR_EVALUADO, NIVEL_ALZANZADO = items.NIVEL_ALZANZADO, COLOR_NIVEL = items.COLOR_NIVEL } ); } } List <E_META> vMetasGrafica = oPeriodo.ObtenerMetasGrafica(SELECCIONPERIODOS.ToString(), vIdEmpleado).Select(s => new E_META { NO_META = s.NO_META.ToString(), DS_META = s.DS_META, PR_CUMPLIMIENTO = s.PR_CUMPLIMIENTO_META, COLOR_NIVEL = s.COLOR_NIVEL, NB_PERIODO = s.NB_PERIODO }).ToList(); vMetas = new List <E_METAS_PERIODOS>(); vRow = 1; foreach (E_META item in vMetasGrafica.OrderBy(o => o.DS_META)) { bool exists = vMetas.Exists(element => element.DS_META == item.DS_META); if (!exists) { E_METAS_PERIODOS f = new E_METAS_PERIODOS { NO_META_EVALUA = vRow, NO_META = item.NO_META, DS_META = item.DS_META, NB_PERIODO = item.NB_PERIODO, PR_CUMPLIMIENTO = item.PR_CUMPLIMIENTO, COLOR_NIVEL = item.COLOR_NIVEL }; vMetas.Add(f); vRow++; } } foreach (var vPues in vMetas.OrderBy(o => o.DS_META)) { DataRow vDr = vDtPivot.NewRow(); vDr["NO_META_EVALUA"] = vPues.NO_META_EVALUA; vDr["DS_META"] = vPues.DS_META; foreach (var vCom in vListaPeriodosGrafica.OrderBy(o => o.ID_PERIODO)) { var vResultado = vListaMetasGraficaFinal.OrderBy(o => o.ID_PERIODO).Where(t => t.ID_PERIODO == vCom.ID_PERIODO && t.DS_META == vPues.DS_META).FirstOrDefault(); if (vResultado != null) { if (vResultado.PR_CUMPLIMIENTO_META != null) { vDr[vCom.NB_PERIODO_ENCABEZADO.ToString()] = vResultado.PR_CUMPLIMIENTO_META + "%"; } else { vDr[vCom.NB_PERIODO_ENCABEZADO.ToString()] = "0.00%"; } } else { vDr[vCom.NB_PERIODO_ENCABEZADO.ToString()] = "N/A"; } } vDtPivot.Rows.Add(vDr); } return(vDtPivot); }