コード例 #1
0
        public List <E_PROMEDIO> getPromedios()
        {
            vListaPuestos = new List <int>();

            if (vIdPuestoCandidato == null)
            {
                if (vIdCandidatoVsPuesto != Guid.Empty)
                {
                    E_CANDIDATO_VS_PUESTOS oCandidatoPuestos = ContextoConsultasComparativas.oCandidatoVsPuestos.Where(w => w.vIdCandidatoVsPuestos == vIdCandidatoVsPuesto).FirstOrDefault();
                    vListaPuestos = oCandidatoPuestos.vListaPuestos;
                }
            }
            else
            {
                vListaPuestos = new List <int>()
                {
                    (int)vIdPuestoCandidato
                };
            }

            var vXelements = vListaPuestos.Select(x =>
                                                  new XElement("PUESTO",
                                                               new XAttribute("ID_PUESTO", x)
                                                               ));
            XElement SELECCIONADOS =
                new XElement("PUESTOS", vXelements
                             );

            ConsultasComparativasNegocio nComparativas = new ConsultasComparativasNegocio();

            vCandidatoPuestos = nComparativas.ObtieneCandidatoPuestos(pID_CANDIDATO: vIdCandidato, pXML_PUESTOS: SELECCIONADOS.ToString(), vFgConsultaParcial: vFgConsultaParcial, vFgCalificacionCero: vFgEvaluacionesCero).Select(s => new E_GRAFICA_PUESTO_CANDIDATOS
            {
                CL_COMPETENCIA      = s.CL_COMPETENCIA,
                NB_COMPETENCIA      = s.NB_COMPETENCIA,
                NO_VALOR_NIVEL      = s.NO_VALOR_NIVEL,
                NB_CANDIDATO        = s.NB_CANDIDATO,
                NO_VALOR_CANDIDATO  = s.NO_VALOR_CANDIDATO,
                PR_CANDIDATO_PUESTO = s.PR_CANDIDATO_PUESTO,
                DS_COMPETENCIA      = s.DS_COMPETENCIA,
                ID_BATERIA          = s.ID_BATERIA,
                NB_PUESTO           = s.NB_PUESTO,
                CL_PUESTO           = s.CL_PUESTO,
                CL_COLOR            = s.CL_COLOR,
                ID_PUESTO           = s.ID_PUESTO,
                PR_TRUNCADO         = CalculaPorcentaje(s.PR_CANDIDATO_PUESTO)
            }).OrderBy(s => s.CL_COMPETENCIA).ToList();


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

            foreach (var item in vListaPuestos)
            {
                List <E_PROMEDIO> vlist = new List <E_PROMEDIO>();
                foreach (var i in vCandidatoPuestos)
                {
                    if (item == i.ID_PUESTO && i.NO_VALOR_NIVEL != 0)
                    {
                        vlist.Add(new E_PROMEDIO {
                            NB_PUESTO = i.NB_PUESTO, PORCENTAJE = i.PR_TRUNCADO
                        });
                    }
                }
                vlstPromedios.Add(new E_PROMEDIO {
                    NB_PUESTO = vlist.Select(s => s.NB_PUESTO).FirstOrDefault(), PROMEDIO = vlist.Average(s => s.PORCENTAJE)
                });
            }

            return(vlstPromedios);
        }
コード例 #2
0
        protected void CargarCandidatoPuestos()
        {
            vListaPuestos = new List <int>();

            if (vIdPuestoCandidato == null)
            {
                if (vIdCandidatoVsPuesto != Guid.Empty)
                {
                    E_CANDIDATO_VS_PUESTOS oCandidatoPuestos = ContextoConsultasComparativas.oCandidatoVsPuestos.Where(w => w.vIdCandidatoVsPuestos == vIdCandidatoVsPuesto).FirstOrDefault();
                    vListaPuestos = oCandidatoPuestos.vListaPuestos;
                }
            }
            else
            {
                vListaPuestos = new List <int>()
                {
                    (int)vIdPuestoCandidato
                };
            }

            var vXelements = vListaPuestos.Select(x =>
                                                  new XElement("PUESTO",
                                                               new XAttribute("ID_PUESTO", x)
                                                               ));
            XElement SELECCIONADOS =
                new XElement("PUESTOS", vXelements
                             );

            ConsultasComparativasNegocio nComparativas = new ConsultasComparativasNegocio();

            vCandidatoPuestos = nComparativas.ObtieneCandidatoPuestos(pID_CANDIDATO: vIdCandidato, pXML_PUESTOS: SELECCIONADOS.ToString(), vFgConsultaParcial: vFgConsultaParcial, vFgCalificacionCero: vFgEvaluacionesCero).Select(s => new E_GRAFICA_PUESTO_CANDIDATOS
            {
                CL_COMPETENCIA      = s.CL_COMPETENCIA,
                NB_COMPETENCIA      = s.NB_COMPETENCIA,
                NO_VALOR_NIVEL      = s.NO_VALOR_NIVEL,
                NB_CANDIDATO        = s.NB_CANDIDATO,
                NO_VALOR_CANDIDATO  = s.NO_VALOR_CANDIDATO,
                PR_CANDIDATO_PUESTO = s.PR_CANDIDATO_PUESTO,
                DS_COMPETENCIA      = s.DS_COMPETENCIA,
                ID_BATERIA          = s.ID_BATERIA,
                NB_PUESTO           = s.NB_PUESTO,
                CL_PUESTO           = s.CL_PUESTO,
                CL_COLOR            = s.CL_COLOR,
                ID_PUESTO           = s.ID_PUESTO,
                PR_TRUNCADO         = CalculaPorcentaje(s.PR_CANDIDATO_PUESTO),
                CL_SOLICITUD        = s.CL_SOLICITUD
            }).OrderBy(s => s.CL_COMPETENCIA).ToList();

            //if (vCandidatoPuestos.Count > 0)
            //{
            //    vs_NB_CANDIDATO = vCandidatoPuestos.FirstOrDefault().NB_CANDIDATO;
            //}

            // dvPuestos.Controls.Add(GenerarTablaPuestos(vCandidatoPuestos));

            // var vPuestoCompetencia = vCandidatoPuestos.Select(s => new { s.NO_VALOR_CANDIDATO, s.NB_CANDIDATO, s.NB_COMPETENCIA, s.CL_SOLICITUD }).Distinct().ToList();
            //ColumnSeries vCandidato = new ColumnSeries();
            //  if (vPuestoCompetencia.Count > 0)
            // lbCandidatosCom.InnerText = "(" + vPuestoCompetencia.FirstOrDefault().CL_SOLICITUD + ") " + vPuestoCompetencia.FirstOrDefault().NB_CANDIDATO;

            // GraficaCandidatoPuestos(vCandidatoPuestos);

            //List<E_PROMEDIO> vlstPromedios = new List<E_PROMEDIO>();
            //foreach (var item in vListaPuestos)
            //{
            //    List<E_PROMEDIO> vlist = new List<E_PROMEDIO>();
            //    foreach (var i in vCandidatoPuestos)
            //    {
            //        if (item == i.ID_PUESTO && i.NO_VALOR_NIVEL != 0)
            //        {
            //            vlist.Add(new E_PROMEDIO { NB_PUESTO = i.NB_PUESTO, PORCENTAJE = i.PR_TRUNCADO, PORCENTAJE_NO_TRUNCADO = i.PR_CANDIDATO_PUESTO });
            //        }
            //    }
            //    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()
            //                              ,
            //        PORCENTAJE_NO_TRUNCADO = vlist.Average(s => s.PORCENTAJE_NO_TRUNCADO)
            //    });
            //}
            //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;
            //    }
            //}
        }
コード例 #3
0
        protected void CargarCandidatoPuestos()
        {
            vListaPuestos = new List <int>();

            if (vIdPuestoCandidato == null)
            {
                if (vIdCandidatoVsPuesto != Guid.Empty)
                {
                    E_CANDIDATO_VS_PUESTOS oCandidatoPuestos = ContextoConsultasComparativas.oCandidatoVsPuestos.Where(w => w.vIdCandidatoVsPuestos == vIdCandidatoVsPuesto).FirstOrDefault();
                    vListaPuestos = oCandidatoPuestos.vListaPuestos;
                }
            }
            else
            {
                vListaPuestos = new List <int>()
                {
                    (int)vIdPuestoCandidato
                };
            }

            var vXelements = vListaPuestos.Select(x =>
                                                  new XElement("PUESTO",
                                                               new XAttribute("ID_PUESTO", x)
                                                               ));
            XElement SELECCIONADOS =
                new XElement("PUESTOS", vXelements
                             );

            ConsultasComparativasNegocio nComparativas = new ConsultasComparativasNegocio();

            vCandidatoPuestos = nComparativas.ObtieneCandidatoPuestos(pID_CANDIDATO: vIdCandidato, pXML_PUESTOS: SELECCIONADOS.ToString(), vFgConsultaParcial: vFgConsultaParcial, vFgCalificacionCero: vFgEvaluacionesCero).Select(s => new E_GRAFICA_PUESTO_CANDIDATOS
            {
                CL_COMPETENCIA      = s.CL_COMPETENCIA,
                NB_COMPETENCIA      = s.NB_COMPETENCIA,
                NO_VALOR_NIVEL      = s.NO_VALOR_NIVEL,
                NB_CANDIDATO        = s.NB_CANDIDATO,
                NO_VALOR_CANDIDATO  = s.NO_VALOR_CANDIDATO,
                PR_CANDIDATO_PUESTO = s.PR_CANDIDATO_PUESTO,
                DS_COMPETENCIA      = s.DS_COMPETENCIA,
                ID_BATERIA          = s.ID_BATERIA,
                NB_PUESTO           = s.NB_PUESTO,
                CL_PUESTO           = s.CL_PUESTO,
                CL_COLOR            = s.CL_COLOR,
                ID_PUESTO           = s.ID_PUESTO,
                PR_TRUNCADO         = CalculaPorcentaje(s.PR_CANDIDATO_PUESTO),
                CL_SOLICITUD        = s.CL_SOLICITUD
            }).OrderBy(s => s.CL_COMPETENCIA).ToList();

            if (vCandidatoPuestos.Count > 0)
            {
                vs_NB_CANDIDATO = vCandidatoPuestos.FirstOrDefault().NB_CANDIDATO;
            }

            GraficaCandidatoPuestos(vCandidatoPuestos);
            //txtPromedio.Enabled = false;
            //var promedio = vCandidatoPuestos.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 vListaPuestos)
            {
                List <E_PROMEDIO> vlist = new List <E_PROMEDIO>();
                foreach (var i in vCandidatoPuestos)
                {
                    if (item == i.ID_PUESTO && i.NO_VALOR_NIVEL != 0)
                    {
                        vlist.Add(new E_PROMEDIO {
                            NB_PUESTO = i.NB_PUESTO, PORCENTAJE = i.PR_TRUNCADO, PORCENTAJE_NO_TRUNCADO = i.PR_CANDIDATO_PUESTO
                        });
                    }
                }
                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()
                    , PORCENTAJE_NO_TRUNCADO = vlist.Average(s => s.PORCENTAJE_NO_TRUNCADO)
                });
            }
            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;
                }
            }
        }