예제 #1
0
        protected void CargarPuestoCandidatos()
        {
            vListaCandidatos = new List <int>();

            if (vIdPuestoVsCandidatos != Guid.Empty)
            {
                E_PUESTO_VS_CANDIDATOS oPuestoCandidatos = ContextoConsultasComparativas.oPuestoVsCandidatos.Where(t => t.vIdPuestoVsCandidatos == vIdPuestoVsCandidatos).FirstOrDefault();
                vListaCandidatos = oPuestoCandidatos.vListaCandidatos;
            }

            var vXelements = vListaCandidatos.Select(x =>
                                                     new XElement("CANDIDATO",
                                                                  new XAttribute("ID_CANDIDATO", x)));

            XElement SELECCIONADOS =
                new XElement("CANDIDATOS", vXelements
                             );

            ConsultasComparativasNegocio nComparativas = new ConsultasComparativasNegocio();

            vPuestoCandidatos = nComparativas.ObtienePuestoCandidatos(pID_PUESTO: vIdPuesto, pXML_CANDIDATOS: SELECCIONADOS.ToString(), pFgConsultaParcial: vFgConsultaParcial, pFgCalificacionCero: vFgCalificacionCero).Select(s => new E_GRAFICA_PUESTO_CANDIDATOS
            {
                NB_COMPETENCIA     = s.NB_COMPETENCIA,
                NO_VALOR_NIVEL     = s.NO_VALOR_NIVEL,
                CL_CANDIDATO       = s.CL_CANDIDATO,
                NB_CANDIDATO       = s.NB_CANDIDATO,
                NO_VALOR_CANDIDATO = s.NO_VALOR_CANDIDATO,
                ID_CANDIDATO       = s.ID_CANDIDATO,
                DS_COMPETENCIA     = s.DS_COMPETENCIA,
                ID_BATERIA         = s.ID_BATERIA,
                CL_PUESTO          = s.CL_PUESTO,
                NB_PUESTO          = s.NB_PUESTO,
                PR_CANDIDATO       = s.PR_CANDIDATO,
                CL_COLOR           = s.CL_COLOR,
                PR_TRUNCADO        = CalculaPorcentaje(s.PR_CANDIDATO),
                CL_COMPETENCIA     = s.CL_COMPETENCIA,
                CL_SOLICITUD       = s.CL_SOLICITUD
            }).OrderBy(s => s.CL_COMPETENCIA).ToList();

            //if (vPuestoCandidatos.Count > 0)
            //{
            //    vs_NB_PUESTO = vPuestoCandidatos.FirstOrDefault().NB_PUESTO;
            //}

            //lbCandidatos.Controls.Add(GenerarTablaCandidatos(vPuestoCandidatos));

            //var vPuestoCompetencia = vPuestoCandidatos.Select(s => new { s.NO_VALOR_NIVEL, s.NB_PUESTO, s.NB_COMPETENCIA, s.CL_PUESTO }).Distinct().ToList();
            //if (vPuestoCompetencia.Count > 0)
            //lbPuestoCom.InnerText = "- (" + vPuestoCompetencia.FirstOrDefault().CL_PUESTO + ") " + vPuestoCompetencia.FirstOrDefault().NB_PUESTO;

            //GraficaPuestoCandidatos(vPuestoCandidatos);

            //txtPromedio.Enabled = false;
            //var promedio = vPuestoCandidatos.Average(s => s.PR_TRUNCADO);
            ////if (Convert.ToDouble(promedio) <= 100 && Convert.ToDouble(promedio) >= 0)
            //     txtPromedio.Value = Convert.ToDouble(promedio);
            //else if(Convert.ToDouble(promedio) > 100)
            //    txtPromedio.Value = 100;
            //else if (Convert.ToDouble(promedio) < 0)
            //    txtPromedio.Value = 0;

            //List<E_PROMEDIO> vlstPromedios = new List<E_PROMEDIO>();
            //foreach (var item in vListaCandidatos)
            //{
            //    List<E_PROMEDIO> vlist = new List<E_PROMEDIO>();
            //    foreach (var i in vPuestoCandidatos)
            //    {
            //        if (item == i.ID_CANDIDATO && i.NO_VALOR_NIVEL != 0)
            //        {
            //            vlist.Add(new E_PROMEDIO { NB_PUESTO = i.NB_CANDIDATO, PORCENTAJE = i.PR_TRUNCADO, PORCENTAJE_NO_TRUNCADO = i.PR_CANDIDATO });
            //        }
            //    }
            //    vlstPromedios.Add(new E_PROMEDIO
            //    {
            //        NB_PUESTO = vlist.Select(s => s.NB_PUESTO).FirstOrDefault(),
            //        PROMEDIO = vlist.Average(s => s.PORCENTAJE),
            //        FG_SUPERA_130 = vlist.Average(s => s.PORCENTAJE_NO_TRUNCADO) >= 130 ? true : false,
            //        PROMEDIO_TXT = vlist.Average(s => s.PORCENTAJE_NO_TRUNCADO) >= 130 ? Decimal.Round(vlist.Average(s => s.PORCENTAJE) ?? 1, 2).ToString() + "(*)" : Decimal.Round(vlist.Average(s => s.PORCENTAJE) ?? 1, 2).ToString()
            //    });
            //}
            //rgdPromedios.DataSource = vlstPromedios.Where(w => w.NB_PUESTO != null);
            //rgdPromedios.DataBind();
            //rgdPromedios.Rebind();

            //for (int i = 0; i < vlstPromedios.Count; i++)
            //{
            //    if (vlstPromedios[i].FG_SUPERA_130 == true)
            //    {
            //        divMensajeMayor130.Visible = true;
            //        i = vlstPromedios.Count;
            //    }
            //}
        }
예제 #2
0
        private void GenerarGrafica()
        {
            XElement vXelements = new XElement("CANDIDATO", new XAttribute("ID_CANDIDATO", vIdCandidato));

            XElement SELECCIONADOS = new XElement("CANDIDATOS", vXelements);

            ConsultasComparativasNegocio nComparativas = new ConsultasComparativasNegocio();

            vPuestoCandidatos = nComparativas.ObtienePuestoCandidatos(pID_PUESTO: vIdPuesto, pXML_CANDIDATOS: SELECCIONADOS.ToString(), pFgConsultaParcial: vFgConsultaParcial, pFgCalificacionCero: vFgCalificacionCero).Select(s => new E_GRAFICA_PUESTO_CANDIDATOS
            {
                NB_COMPETENCIA     = s.NB_COMPETENCIA,
                CL_PUESTO          = s.CL_PUESTO,
                CL_SOLICITUD       = s.CL_SOLICITUD,
                NO_VALOR_NIVEL     = s.NO_VALOR_NIVEL,
                NB_CANDIDATO       = s.NB_CANDIDATO,
                NO_VALOR_CANDIDATO = s.NO_VALOR_CANDIDATO,
                ID_CANDIDATO       = s.ID_CANDIDATO,
                DS_COMPETENCIA     = s.DS_COMPETENCIA,
                ID_BATERIA         = s.ID_BATERIA,
                NB_PUESTO          = s.NB_PUESTO,
                PR_CANDIDATO       = s.PR_CANDIDATO,
                CL_COLOR           = s.CL_COLOR,
                PR_TRUNCADO        = CalculaPorcentaje(s.PR_CANDIDATO)
            }).ToList();


            GraficaPuestoCandidatos(vPuestoCandidatos);

            List <E_PROMEDIO> vlstPromedios = new List <E_PROMEDIO>();

            List <E_PROMEDIO> vlist = new List <E_PROMEDIO>();

            foreach (var i in vPuestoCandidatos)
            {
                if (i.ID_CANDIDATO == vIdCandidato && i.NO_VALOR_NIVEL != 0)
                {
                    vlist.Add(new E_PROMEDIO {
                        NB_PUESTO = i.NB_CANDIDATO, PORCENTAJE = i.PR_TRUNCADO
                    });
                }
            }

            vlstPromedios.Add(new E_PROMEDIO {
                NB_PUESTO     = vlist.Select(s => s.NB_PUESTO).FirstOrDefault(),
                PROMEDIO      = vlist.Average(s => s.PORCENTAJE),
                FG_SUPERA_130 = vlist.Average(s => s.PORCENTAJE_NO_TRUNCADO) >= 130 ? true : false,
                PROMEDIO_TXT  = vlist.Average(s => s.PORCENTAJE_NO_TRUNCADO) >= 130 ? Decimal.Round(vlist.Average(s => s.PORCENTAJE) ?? 1, 2).ToString() + "(*)" : Decimal.Round(vlist.Average(s => s.PORCENTAJE) ?? 1, 2).ToString()
                                //NB_PUESTO = vlist.Select(s => s.NB_PUESTO).FirstOrDefault(), PROMEDIO = vlist.Average(s => s.PORCENTAJE)
            });

            for (int i = 0; i < vlstPromedios.Count; i++)
            {
                if (vlstPromedios[i].FG_SUPERA_130 == true)
                {
                    divMensajeMayor130.Visible = true;
                    i = vlstPromedios.Count;
                }
            }

            rgdPromedios.DataSource = vlstPromedios;
            rgdPromedios.DataBind();
            rgdPromedios.Rebind();
        }