protected void obtenerColorAmarillo(string valor)
        {
            string color;

            valor = BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.PARAMETRO_SISTEMA.AMARILLO.ToString();
            color = BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.ParametroSistemaporValorColor(valor);
            BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.VALOR_COLOR = color;
        }
        protected int obtenerParametroCompetenciaDesarrollada(string valor)
        {
            int parametro;

            valor     = BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.PARAMETRO_SISTEMA.DESARROLLADAS.ToString();
            parametro = BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.ParametroSistemaporValor(valor);
            return(BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.VALOR = parametro);
        }
        protected void obtenervalor(string valor)
        {
            int parametro;

            valor     = BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.PARAMETRO_SISTEMA.DESARROLLADAS.ToString();
            parametro = BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.ParametroSistemaporValor(valor);
            BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.VALOR = parametro;
        }
        protected int obtenervalorparametroindicador()
        {
            int    parametro;
            string valor;

            valor     = BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.PARAMETRO_SISTEMA.INDICADOR_DESARROLLO_TRANSVERSALES.ToString();
            parametro = BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.ParametroSistemaporValor(valor);
            return(BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.VALOR = parametro);
        }
        protected void CalcularIndicadorEmpresa(string idNodo, string nivel)
        {
            List <BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES> oListaEvaluacionesIndicador = new List <BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES>();
            BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES        BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES = new BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES();

            oListaEvaluacionesIndicador = BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.CalcularIndicadorporEmpresa(Guid.Parse(idNodo), Int32.Parse(nivel));

            List <object[]> lstPersonalCompetencias = oListaEvaluacionesIndicador
                                                      /* Group the list by the element at position 0 in each item */
                                                      .GroupBy(o => o.PERSONAL_ID)
                                                      /* Project the created grouping into a new object[]: */
                                                      .Select(i => new object[]
            {
                i.Key,
                i.Average(x => x.PORCENTAJE * 100)
            })
                                                      .ToList();

            decimal contadorGerencia       = 0;
            decimal contadorTotalRegistros = 0;

            //obtener indicador de color para competencias desarrolladas
            int parametroCompetenciasDesarrolladas = obtenervalorparametroindicador();

            decimal indicador         = 0;
            decimal totalEvaluaciones = 0;
            //Obtener valor de competencia desarrollada = 80
            string  valor           = string.Empty;
            int     valorDesarrollo = obtenerParametroCompetenciaDesarrollada(valor);
            decimal valorCompetenciaDesarrollada = (decimal)valorDesarrollo;

            contadorTotalRegistros = lstPersonalCompetencias.Count;

            foreach (var itemPersonas in lstPersonalCompetencias)
            {
                decimal itemEvaluacion      = (decimal)itemPersonas[1];
                decimal itemTotalEvaluacion = decimal.Round(itemEvaluacion, 0);
                totalEvaluaciones += itemTotalEvaluacion;
            }
            if (totalEvaluaciones > 0 && contadorTotalRegistros > 0)
            {
                indicador = (totalEvaluaciones / contadorTotalRegistros);
            }


            this.lblIndicadorEmpresa.Text = Decimal.Round(indicador, 0).ToString() + "%";

            if (indicador >= parametroCompetenciasDesarrolladas)
            {
                this.lblIndicadorEmpresa.ForeColor = System.Drawing.Color.Green;
            }
            if (indicador < parametroCompetenciasDesarrolladas)
            {
                this.lblIndicadorEmpresa.ForeColor = System.Drawing.Color.Red;
            }
        }
Exemplo n.º 6
0
        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            if (rgImportarTransversales.Items.Count > 0)
            {
                try
                {
                    System.Threading.Thread.Sleep(2000);
                    rgImportarTransversales.AllowPaging = false;
                    rgImportarTransversales.Rebind();
                    string msjerror = "los siguientes códigos de usuarios no fueron encontrados: ";

                    foreach (GridDataItem item in rgImportarTransversales.MasterTableView.Items)
                    {
                        BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES OBE_COMPE_TRANS          = new BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES();
                        BL_IMPORTAR_EVALUACIONES_TRANSVERSALES     BL_IMPORTAR_EVALUACIONES = new BL_IMPORTAR_EVALUACIONES_TRANSVERSALES();
                        BE_PERSONAL OBE_PERSONAL = new BE_PERSONAL();
                        string      porcentaje;
                        string      Codigo          = item["user_id"].Text;
                        string      Codigo_personal = Codigo.Remove(0, 6);
                        OBE_PERSONAL                     = BL_IMPORTAR_EVALUACIONES.SeleccionarPersonalporCodigo(Codigo_personal);
                        OBE_COMPE_TRANS.CODIGO           = Codigo_personal;
                        OBE_COMPE_TRANS.PERSONAL_ID      = OBE_PERSONAL.ID;
                        OBE_COMPE_TRANS.PUESTO_ID        = OBE_PERSONAL.PUESTO_ID;
                        OBE_COMPE_TRANS.USUARIO_CREACION = USUARIO;
                        OBE_COMPE_TRANS.ANIO             = Convert.ToInt32(rcbFecha.SelectedValue);
                        string Codigo_competencia = item["cod_competencia"].Text;


                        OBE_COMPE_TRANS.COMPETENCIA_TRANSVERSAL_ID = Guid.Parse(BL_IMPORTAR_EVALUACIONES_TRANSVERSALES.seleccionarporCodigo(Codigo_competencia));
                        porcentaje = item["evaluacion"].Text;

                        decimal valor = Convert.ToDecimal(porcentaje);
                        valor.ToString("0.##");



                        OBE_COMPE_TRANS.PORCENTAJE = valor;

                        bool Existe_Evaluacion = BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.ExisteEvaluacionTransversal(OBE_COMPE_TRANS);
                        if (Existe_Evaluacion == true)
                        {
                            BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.ActualizacionEvaluacionTransversal(OBE_COMPE_TRANS);
                        }
                        else
                        if (OBE_COMPE_TRANS.PERSONAL_ID != Guid.Empty && OBE_COMPE_TRANS.COMPETENCIA_TRANSVERSAL_ID != Guid.Empty)
                        {
                            BL_IMPORTAR_EVALUACIONES_TRANSVERSALES.InsertarEvaluacionTransversales(OBE_COMPE_TRANS);
                        }
                        else
                        {
                            if (msjerror.Contains(Codigo_personal) == false)
                            {
                                msjerror += Codigo_personal + " - ";
                            }

                            lblMensaje.Text = msjerror;
                        }
                    }

                    if (lblMensaje.Text != String.Empty)
                    {
                        lblRegistro.Text = "Las evaluaciones fueron importadas con éxito, sin embargo " + lblMensaje.Text;
                    }
                    else
                    {
                        lblRegistro.Text = "Las evaluaciones fueron importadas con éxito";
                    }

                    lblMensaje.Text = String.Empty;

                    rgImportarTransversales.AllowPaging = true;
                    rgImportarTransversales.Rebind();
                }
                catch (Exception ex)
                {
                    lblError.Text = "Error al Importar Evaluaciones :" + ex.ToString();
                }
            }

            else
            {
                lblRegistro.Text = "Datos Incompletos no a Cargado el archivo a Importar";
            }
        }
        protected void CalcularIndicador(string idNodo, string nivel)
        {
            List <BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES> oListaEvaluacionesTransversales = new List <BE_EVALUACIONES_COMPETENCIAS_TRANSVERSALES>();

            BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES = new BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES();

            if (Session["PERFIL_ID"].ToString() == "2")
            {
                oListaEvaluacionesTransversales = BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.SeleccionarEvaluacionesTransversalesPorJerarquia(Guid.Parse(idNodo), Int32.Parse(nivel), USUARIO, USUARIO_GRUPO_ORGANIZACIONAL);
            }
            else
            {
                oListaEvaluacionesTransversales = BL_EVALUACIONES_COMPETENCIAS_TRANSVERSALES.SeleccionarEvaluacionesTransversalesPorJerarquia(Guid.Parse(idNodo), Int32.Parse(nivel));
            }

            List <object[]> lstPersonalCompetencias = oListaEvaluacionesTransversales
                                                      /* Group the list by the element at position 0 in each item */
                                                      .GroupBy(o => o.PERSONAL_ID)
                                                      /* Project the created grouping into a new object[]: */
                                                      .Select(i => new object[]
            {
                i.Key,
                i.Average(x => x.PORCENTAJE * 100)
                //i.Average(x => x.PORCENTAJE)
            })
                                                      .ToList();

            decimal contadorCompetenciasDesarrolladas = 0;
            decimal contadorTotalRegistros            = 0;

            //Indicador utilizado para el color
            int parametroCompetenciasDesarrolladas = obtenervalorparametroindicador();

            decimal indicador         = 0;
            decimal totalEvaluaciones = 0;

            //valor de Competencia Desarrollada = 80;
            string  valor           = string.Empty;
            int     valorDesarrollo = obtenerParametroCompetenciaDesarrollada(valor);
            decimal valorCompetenciaDesarrollada = (decimal)valorDesarrollo;

            contadorTotalRegistros = lstPersonalCompetencias.Count;

            foreach (var itemPersonas in lstPersonalCompetencias)
            {
                decimal itemEvaluacion      = (decimal)itemPersonas[1];
                decimal itemTotalEvaluacion = Decimal.Round(itemEvaluacion, 0);
                totalEvaluaciones += itemTotalEvaluacion;
            }

            if (totalEvaluaciones > 0 && contadorTotalRegistros > 0)
            {
                indicador = (totalEvaluaciones / contadorTotalRegistros);
            }

            this.lblIndicador.Text = Decimal.Round(indicador, 0).ToString() + "%";
            if (indicador >= parametroCompetenciasDesarrolladas)
            {
                this.lblIndicador.ForeColor = System.Drawing.Color.Green;
            }
            if (indicador < parametroCompetenciasDesarrolladas)
            {
                this.lblIndicador.ForeColor = System.Drawing.Color.Red;
            }
        }