Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
        }