Ejemplo n.º 1
0
        public DataTable ObtieneTabuladorValuacion(int ID_TABULADOR, ref List <E_VALUACION> vLstValuacion)
        {
            TabuladoresOperaciones operaciones = new TabuladoresOperaciones();
            //return operaciones.ObtenerTabuladorValuacion(ID_TABULADOR_VALUACION, ID_TABULADOR, ID_PUESTO, ID_COMPETENCIA);
            List <SPE_OBTIENE_VALUACION_PUESTO_Result> vListaValuacion = new List <SPE_OBTIENE_VALUACION_PUESTO_Result>();
            List <E_VALUACION> vListaFactorsValuacion = new List <E_VALUACION>();

            DataTable vDtPivot = new DataTable();

            vListaValuacion = operaciones.ObtenerTabuladorValuacion(ID_TABULADOR);
            vLstValuacion   = vListaValuacion.Select(s => new E_VALUACION
            {
                CL_PUESTO              = s.CL_PUESTO,
                ID_COMPETENCIA         = s.ID_COMPETENCIA,
                ID_PUESTO              = s.ID_PUESTO,
                ID_TABULADOR_FACTOR    = s.ID_TABULADOR_FACTOR,
                ID_TABULADOR_PUESTO    = s.ID_TABULADOR_PUESTO,
                ID_TABULADOR_VALUACION = s.ID_TABULADOR_VALUACION,
                NB_COMPETENCIA         = s.NB_COMPETENCIA,
                DS_COMPETENCIA         = s.DS_COMPETENCIA,
                NB_PUESTO              = s.NB_PUESTO,
                //NB_TIPO_COMPETENCIA = s.NB_TIPO_COMPETENCIA,
                NO_VALOR = s.NO_VALOR,
                NO_PROMEDIO_VALUACION = s.NO_PROMEDIO_VALUACION,
                NO_NIVEL = s.NO_NIVEL
                , CL_TIPO_COMPETENCIA = s.CL_TIPO_COMPETENCIA
            }).ToList();

            vDtPivot.Columns.Add("ID_PUESTO", typeof(int));
            vDtPivot.Columns.Add("ID_TABULADOR_PUESTO", typeof(int));
            //vDtPivot.Columns.Add("ID_TABULADOR_FACTOR", typeof(int));
            vDtPivot.Columns.Add("NB_PUESTO", typeof(string));

            var vLstCompetencias = (from a in vListaValuacion select new { a.ID_COMPETENCIA, a.NB_COMPETENCIA, a.ID_TABULADOR_FACTOR, a.CL_TIPO_COMPETENCIA }).Distinct().OrderBy(t => t.ID_COMPETENCIA);

            var vLstPuestos = (from a in vListaValuacion
                               select new
            {
                a.CL_PUESTO,
                a.NB_PUESTO,
                a.ID_TABULADOR_PUESTO,
                a.ID_PUESTO,
                a.NO_PROMEDIO_VALUACION,
                a.NO_NIVEL
            }).Distinct().OrderByDescending(o => o.NO_PROMEDIO_VALUACION).OrderBy(t => t.NO_NIVEL);

            //foreach (var item in vlstcompetencias)
            //{
            //    vdtpivot.columns.add(item.id_tabulador_factor.tostring() + "f");
            //}

            foreach (var item in vLstCompetencias.Where(t => t.CL_TIPO_COMPETENCIA == "GEN"))
            {
                E_VALUACION f = new E_VALUACION
                {
                    ID_COMPETENCIA      = item.ID_COMPETENCIA,
                    NB_COMPETENCIA      = item.NB_COMPETENCIA,
                    ID_TABULADOR_FACTOR = item.ID_TABULADOR_FACTOR,
                    CL_TIPO_COMPETENCIA = item.CL_TIPO_COMPETENCIA
                };
                vListaFactorsValuacion.Add(f);
            }

            foreach (var item in vLstCompetencias.Where(t => t.CL_TIPO_COMPETENCIA == "ESP"))
            {
                E_VALUACION f = new E_VALUACION
                {
                    ID_COMPETENCIA      = item.ID_COMPETENCIA,
                    NB_COMPETENCIA      = item.NB_COMPETENCIA,
                    ID_TABULADOR_FACTOR = item.ID_TABULADOR_FACTOR,
                    CL_TIPO_COMPETENCIA = item.CL_TIPO_COMPETENCIA
                };
                vListaFactorsValuacion.Add(f);
            }

            foreach (var item in vLstCompetencias.Where(t => t.CL_TIPO_COMPETENCIA == "FACTOR"))
            {
                E_VALUACION f = new E_VALUACION
                {
                    ID_COMPETENCIA      = item.ID_COMPETENCIA,
                    NB_COMPETENCIA      = item.NB_COMPETENCIA,
                    ID_TABULADOR_FACTOR = item.ID_TABULADOR_FACTOR,
                    CL_TIPO_COMPETENCIA = item.CL_TIPO_COMPETENCIA
                };
                vListaFactorsValuacion.Add(f);
            }


            foreach (var item in vListaFactorsValuacion)
            {
                vDtPivot.Columns.Add(item.ID_COMPETENCIA.ToString() + "E" + "," + item.ID_TABULADOR_FACTOR.ToString() + "F");
            }

            //vDtPivot.Columns.Add("ID_COMPETENCIA", typeof(int));
            vDtPivot.Columns.Add("NO_PROMEDIO_VALUACION", typeof(decimal));
            vDtPivot.Columns.Add("NO_NIVEL", typeof(int));


            foreach (var vPues in vLstPuestos)
            {
                DataRow vDr = vDtPivot.NewRow();
                vDr["ID_PUESTO"]             = vPues.ID_PUESTO;
                vDr["ID_TABULADOR_PUESTO"]   = vPues.ID_TABULADOR_PUESTO;
                vDr["NB_PUESTO"]             = vPues.NB_PUESTO;
                vDr["NO_PROMEDIO_VALUACION"] = vPues.NO_PROMEDIO_VALUACION;
                vDr["NO_NIVEL"] = vPues.NO_NIVEL;


                foreach (var vCom in vListaFactorsValuacion)
                {
                    var vResultado = vListaValuacion.Where(t => t.ID_PUESTO == vPues.ID_PUESTO & t.ID_COMPETENCIA == vCom.ID_COMPETENCIA).FirstOrDefault();
                    if (vResultado != null)
                    {
                        //vDr["ID_COMPETENCIA"] = vResultado.ID_COMPETENCIA;
                        vDr[vCom.ID_COMPETENCIA.ToString() + "E" + "," + vCom.ID_TABULADOR_FACTOR.ToString() + "F"] = vResultado.NO_VALOR;
                        //vDr[vCom.ID_TABULADOR_FACTOR.ToString() + "F"] = vResultado.ID_TABULADOR_FACTOR;
                    }
                    //else {
                    //    vDr["ID_COMPETENCIA"] = vResultado.ID_COMPETENCIA;
                    //    vDr[vCom.ID_COMPETENCIA.ToString() + "E"] = 0;
                    //}
                }


                vDtPivot.Rows.Add(vDr);
            }
            return(vDtPivot);
        }
Ejemplo n.º 2
0
        public List <SPE_OBTIENE_VALUACION_PUESTO_Result> ObtieneDatosValuacion(int ID_TABULADOR)
        {
            TabuladoresOperaciones operaciones = new TabuladoresOperaciones();

            return(operaciones.ObtenerTabuladorValuacion(ID_TABULADOR));
        }