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); }
public List <SPE_OBTIENE_VALUACION_PUESTO_Result> ObtieneDatosValuacion(int ID_TABULADOR) { TabuladoresOperaciones operaciones = new TabuladoresOperaciones(); return(operaciones.ObtenerTabuladorValuacion(ID_TABULADOR)); }