예제 #1
0
        private void CargarPeriodo()
        {
            ConsultaGeneralNegocio neg = new ConsultaGeneralNegocio();
            SPE_OBTIENE_FYD_PERIODO_EVALUACION_Result oPeriodo = neg.ObtenerPeriodoEvaluacion(vIdPeriodo);
            string vTiposEvaluacion = "";

            if (oPeriodo != null)
            {
                // txtPeriodo.InnerText = oPeriodo.NB_PERIODO;
                txtClave.InnerText       = oPeriodo.CL_PERIODO;
                txtDescripcion.InnerText = oPeriodo.DS_PERIODO;


                if (oPeriodo.DS_NOTAS != null)
                {
                    XElement vNotas = XElement.Parse(oPeriodo.DS_NOTAS);
                    if (vNotas != null)
                    {
                        txtDsNotas.InnerHtml = validarDsNotas(oPeriodo.DS_NOTAS);
                    }
                }


                if (oPeriodo.FG_AUTOEVALUACION)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Autoevaluación" : String.Join(", ", vTiposEvaluacion, "Autoevaluacion");
                }

                if (oPeriodo.FG_SUPERVISOR)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Superior" : String.Join(", ", vTiposEvaluacion, "Superior");
                }

                if (oPeriodo.FG_SUBORDINADOS)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Subordinado" : String.Join(", ", vTiposEvaluacion, "Subordinado");
                }

                if (oPeriodo.FG_INTERRELACIONADOS)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Interrelacionado" : String.Join(", ", vTiposEvaluacion, "Interrelacionado");
                }

                if (oPeriodo.FG_OTROS_EVALUADORES)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Otros" : String.Join(", ", vTiposEvaluacion, "Otros");
                }

                txtTiposEvaluacion.InnerText = vTiposEvaluacion;

                //if (oPeriodo.CL_ESTADO_PERIODO.ToUpper() == "ABIERTO")
                //{
                //    lblAdvertencia.Visible = true;
                //}
                //else
                //{
                //    lblAdvertencia.Visible = false;
                //}
            }
        }
        protected void AgregarSeleccionados_puestos(XElement pXmlElementos)
        {
            ConsultaGeneralNegocio neg = new ConsultaGeneralNegocio();
            List <SPE_OBTIENE_EMPLEADOS_PDE_Result> lista = neg.ObtenerEmpleados_PDE(pXmlElementos);

            foreach (SPE_OBTIENE_EMPLEADOS_PDE_Result item in lista)
            {
                var emp = ListaEmpleadosInf.Where(t => t.ID_PUESTO == item.M_PUESTO_ID_PUESTO_PDE).FirstOrDefault();

                if (emp == null)
                {
                    E_EMPLEADO_PDE e = new E_EMPLEADO_PDE
                    {
                        ID_EMPLEADO     = item.M_EMPLEADO_ID_EMPLEADO_PDE,
                        CL_EMPLEADO     = item.M_EMPLEADO_CL_EMPLEADO,
                        NB_EMPLEADO     = item.M_EMPLEADO_NB_EMPLEADO_COMPLETO,
                        ID_DEPARTAMENTO = item.M_DEPARTAMENTO_ID_DEPARTAMENTO_PDE,
                        ID_PUESTO       = item.M_PUESTO_ID_PUESTO_PDE,
                        NB_PUESTO       = item.M_PUESTO_NB_PUESTO,
                        NB_DEPARTAMENTO = item.M_DEPARTAMENTO_NB_DEPARTAMENTO
                    };

                    ListaEmpleadosInf.Add(e);
                }
            }

            RadGridSeleccion.Rebind();
        }
예제 #3
0
        public DataTable ConvertToDataTable <T>(IList <T> data, List <int> periodos)
        {
            ConsultaGeneralNegocio       negGen     = new ConsultaGeneralNegocio();
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
            DataTable table = new DataTable();

            foreach (PropertyDescriptor prop in properties)
            {
                table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
            }

            foreach (int itemPeriodo in periodos)
            {
                table.Columns.Add(itemPeriodo.ToString());
            }

            foreach (T item in data)
            {
                int     vIdEmpelado = 0;
                DataRow row         = table.NewRow();
                foreach (PropertyDescriptor prop in properties)
                {
                    if (prop.Name.Equals("ID_EMPLEADO"))
                    {
                        vIdEmpelado = int.Parse(prop.GetValue(item).ToString());
                    }

                    row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
                }

                table.Rows.Add(row);
            }
            return(table);
        }
예제 #4
0
        private HtmlGenericControl GeneraHtml(int?pIdEmpleado)
        {
            HtmlGenericControl vCtrlTabla = new HtmlGenericControl("table");

            if (pIdEmpleado != null && pIdEmpleado > 0)
            {
                string vDivsCeldasPo = "<table class=\"tablaColor\"> " +
                                       "<tr><td class=\"puesto\"> {0}</td> </tr>" +
                                       "<tr> " +
                                       "<td class=\"porcentaje\"> " +
                                       "<div class=\"divPorcentaje\">{1}</div> " +
                                       "</td> " +
                                       "<td class=\"color\"> " +
                                       "<div class=\"{2}\">&nbsp;</div> " +
                                       "</td> </tr>" +
                                       "</table>";

                List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result> vLstEvaluadosFoto = new List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result>();
                ConsultaIndividualNegocio neg    = new ConsultaIndividualNegocio();
                ConsultaGeneralNegocio    negGen = new ConsultaGeneralNegocio();
                vLstEvaluadosFoto = negGen.ObtenerDatosReporteGlobal(vIdPeriodo, vXmlEmpleados, vFgFoto).ToList();
                int?vMaxPuestos     = 1;
                int vTotalPromedios = 1;

                vMaxPuestos     = negGen.ObtenerDatosReporteGlobal(vIdPeriodo, vXmlEmpleados, false).FirstOrDefault().NUM_PERIODOS;
                vTotalPromedios = negGen.ObtenerDatosReporteGlobal(vIdPeriodo, vXmlEmpleados, false).Count;



                HtmlGenericControl vCtrlRow = new HtmlGenericControl("tr");


                List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result> vLstEvaluadosReporte = new List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result>();
                vLstEvaluadosReporte = negGen.ObtenerDatosReporteGlobal(vIdPeriodo, vXmlEmpleados, false).Where(w => w.ID_EMPLEADO == pIdEmpleado).ToList();

                foreach (var itemResult in vLstEvaluadosReporte)
                {
                    HtmlGenericControl vCtrlColumnaResultado = new HtmlGenericControl("td");
                    vCtrlColumnaResultado.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 11pt; width:100px; border-radius:2px");
                    HtmlGenericControl vCtrlDiv = new HtmlGenericControl("div");
                    vCtrlDiv.Attributes.Add("style", "padding: 10px");
                    vCtrlDiv.Attributes.Add("title", itemResult.NB_PUESTO);
                    vCtrlDiv.InnerHtml = String.Format(vDivsCeldasPo, String.Format("<a href=\"javascript:OpenDescriptivo({0})\">{1}</a>", itemResult.ID_PUESTO_PERIODO, itemResult.CL_PUESTO), itemResult.PR_CUMPLIMIENTO + "%", GenerarColor(itemResult.CL_COLOR_CUMPLIMIENTO));
                    vCtrlColumnaResultado.Controls.Add(vCtrlDiv);
                    vCtrlRow.Controls.Add(vCtrlColumnaResultado);
                }

                vCtrlTabla.Controls.Add(vCtrlRow);

                return(vCtrlTabla);
            }

            return(vCtrlTabla);
        }
예제 #5
0
        private void CargarDatos()
        {
            if (ContextoReportes.oReporteGlobal != null)
            {
                vIdPeriodo = ContextoReportes.oReporteGlobal.Where(t => t.vIdReporteGlobal == vIdReporteGlobal).FirstOrDefault().vIdPeriodo;
                ConsultaGeneralNegocio negGen = new ConsultaGeneralNegocio();
                int?vMaxPuestos = 1;
                vMaxPuestos = negGen.ObtenerDatosReporteGlobal(vIdPeriodo, vXmlEmpleados, false).FirstOrDefault().NUM_PERIODOS;
                rdgGlobal.MasterTableView.Columns[4].HeaderStyle.Width = (Unit)(vMaxPuestos * 100);

                CargarPeriodo();
                CrearXmlEmpleados();
            }
        }
예제 #6
0
        private string ObtenerFooter()
        {
            string vPrTotal = "0%";
            List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result> vLstEvaluadosPromedio = new List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result>();
            ConsultaGeneralNegocio negGen = new ConsultaGeneralNegocio();

            vLstEvaluadosPromedio = negGen.ObtenerDatosReporteGlobal(vIdPeriodo, vXmlEmpleados, vFgFoto).ToList();

            if (vLstEvaluadosPromedio != null && vLstEvaluadosPromedio.Count > 0)
            {
                vPrTotal = String.Format("{0:0.00}%", vLstEvaluadosPromedio.Average(w => w.PR_CUMPLIMIENTO));
            }

            return(vPrTotal);
        }
예제 #7
0
        protected void Page_Init(object sender, System.EventArgs e)
        {
            vIdRol = ContextoUsuario.oUsuario.oRol.ID_ROL;
            if (Request.Params["FgFoto"] != null)
            {
                vFgFoto = bool.Parse(Request.Params["FgFoto"].ToString());
                ConfigurarGrid();
            }

            if (Request.Params["IdReporteComparativo"] != null)
            {
                vIdReporteComparativo = Guid.Parse(Request.Params["IdReporteComparativo"].ToString());
                CargarDatos();
                ConsultaGeneralNegocio neg = new ConsultaGeneralNegocio();
                List <SPE_OBTIENE_FYD_EVALUADOS_COMPARATIVO_Result> vLstEvaluadores = neg.ObtenerEvaluadosComparativo(vIdPeriodo, vXmlPeriodos, vFgFoto, vIdRol);
                rdComparativo.DataSource = CrearDataTable(vLstEvaluadores, rdComparativo);
            }
        }
예제 #8
0
        protected DataTable CrearDataTable <T>(IList <T> pLista, RadGrid pCtrlGrid)
        {
            List <int> lista        = ContextoReportes.oReporteComparativo.Where(t => t.vIdReporteComparativo == vIdReporteComparativo).FirstOrDefault().vListaPeriodos;
            List <int> listPeriodos = new List <int>();

            listPeriodos = lista;
            bool exists = listPeriodos.Exists(element => element == vIdPeriodo);

            if (!exists)
            {
                listPeriodos.Add(vIdPeriodo);
            }

            DataTable vColumnas           = ConvertToDataTable(pLista, listPeriodos);
            ConsultaGeneralNegocio negGen = new ConsultaGeneralNegocio();
            int?vMaxPuestos = 1;

            foreach (int item in listPeriodos.OrderBy(o => o))
            {
                var vDatosReporteGlobal = negGen.ObtenerDatosReporteGlobal(item, null, false).ToList();
                if (vDatosReporteGlobal.Count > 0)
                {
                    vMaxPuestos = vDatosReporteGlobal.FirstOrDefault().NUM_PERIODOS;
                }

                SPE_OBTIENE_FYD_PERIODO_EVALUACION_Result oPeriodos = negGen.ObtenerPeriodoEvaluacion(item);
                GridTemplateColumn vBoundColumn = new GridTemplateColumn();
                vBoundColumn.DataField                   = oPeriodos.ID_PERIODO.ToString();
                vBoundColumn.UniqueName                  = oPeriodos.ID_PERIODO.ToString();
                vBoundColumn.HeaderText                  = oPeriodos.CL_PERIODO;
                vBoundColumn.HeaderStyle.Width           = (Unit)(vMaxPuestos * 110);
                vBoundColumn.ColumnGroupName             = "gcCalificacion";
                vBoundColumn.ItemTemplate                = new MyTemplate(oPeriodos.ID_PERIODO.ToString());
                vBoundColumn.FooterStyle.HorizontalAlign = HorizontalAlign.Center;
                vBoundColumn.FooterStyle.Font.Bold       = true;
                vBoundColumn.AllowFiltering              = false;
                vBoundColumn.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                rdComparativo.MasterTableView.Columns.Add(vBoundColumn);
            }

            return(vColumnas);
        }
예제 #9
0
        //protected void rdComparativo_DetailTableDataBind(object sender, Telerik.Web.UI.GridDetailTableDataBindEventArgs e)
        //{
        //    GridDataItem vDataItem = (GridDataItem)e.DetailTableView.ParentItem;

        //    switch (e.DetailTableView.Name)
        //    {
        //        case "gtvComparativo":
        //            int vIdPuestoEvaluadoPeriodo = int.Parse(vDataItem.GetDataKeyValue("ID_PUESTO").ToString());
        //            int vIdEmpleado;
        //            decimal vPrCumplimiento = decimal.Parse(vDataItem.GetDataKeyValue("PR_CUMPLIMIENTO").ToString());
        //            ConsultaGeneralNegocio neg = new ConsultaGeneralNegocio();

        //            vIdEmpleado = int.Parse(vDataItem.GetDataKeyValue("ID_EMPLEADO").ToString());

        //            //List<E_REPORTE_COMPARATIVO_DETALLE> oListaDetalleExterna = vListaDetalle.Select(t => new E_REPORTE_COMPARATIVO_DETALLE{ DS_PERIODO = t.DS_PERIODO, ID_PERIODO = t.ID_PERIODO, NB_PUESTO = t.NB_PUESTO, PR_CUMPLIMIENTO = t.PR_CUMPLIMIENTO, PR_CUMPLIMIENTO_COMPARACION = vPrCumplimiento}).ToList();
        //            e.DetailTableView.DataSource = neg.ObtenerDetalleReporteComparativo(vIdPeriodo, vIdPuestoEvaluadoPeriodo, vXmlPeriodos, vIdEmpleado, vPrCumplimiento);

        //            break;
        //        default:
        //            break;
        //    }
        //}

        protected void rdComparativo_ItemDataBound(object sender, GridItemEventArgs e)
        {
            List <int> lista        = ContextoReportes.oReporteComparativo.Where(t => t.vIdReporteComparativo == vIdReporteComparativo).FirstOrDefault().vListaPeriodos;
            List <int> listPeriodos = new List <int>();

            listPeriodos = lista;
            List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result> vLstEvaluadosReporte = new List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result>();
            ConsultaGeneralNegocio negGen = new ConsultaGeneralNegocio();

            if (e.Item is GridDataItem)
            {
                GridDataItem item        = (GridDataItem)e.Item;
                int          vIdEmpleado = int.Parse(item.GetDataKeyValue("ID_EMPLEADO").ToString());
                foreach (int oPeriodo in listPeriodos)
                {
                    HtmlGenericControl vCtrlDiv = (HtmlGenericControl)item.FindControl(oPeriodo.ToString());
                    if (vCtrlDiv != null)
                    {
                        vCtrlDiv.Controls.Add(GeneraTablaHtml(oPeriodo, vIdEmpleado));
                    }
                }
            }

            if (e.Item is GridFooterItem)
            {
                GridFooterItem footer = (GridFooterItem)e.Item;
                foreach (int oPeriodo in listPeriodos)
                {
                    var vPeriodoo = negGen.ObtenerPeriodoEvaluacion(vIdPeriodo);
                    vLstEvaluadosReporte = negGen.ObtenerDatosReporteGlobal(oPeriodo, null, false).ToList();
                    if (vLstEvaluadosReporte != null && vLstEvaluadosReporte.Count > 0)
                    {
                        footer[oPeriodo.ToString()].Text = String.Format("{0:0.00}%", vLstEvaluadosReporte.Average(a => a.PR_CUMPLIMIENTO));
                    }
                    else
                    {
                        footer[oPeriodo.ToString()].Text = "0.00%";
                    }
                }
            }
        }
        protected void AgregarSeleccionados(XElement pXmlElementos)
        {
            ConsultaGeneralNegocio neg = new ConsultaGeneralNegocio();
            List <SPE_OBTIENE_EMPLEADOS_PDE_Result> lista = neg.ObtenerEmpleados_PDE(pXmlElementos);

            foreach (SPE_OBTIENE_EMPLEADOS_PDE_Result item in lista)
            {
                E_EMPLEADO_PDE emp;
                if (vUsuarioSeleccion == "")
                {
                    emp = ListaEmpleados.Where(t => t.ID_EMPLEADO == item.M_EMPLEADO_ID_EMPLEADO_PDE).FirstOrDefault();
                }
                else
                {
                    emp = ListaEmpleados.Where(t => t.CL_EMPLEADO == item.M_EMPLEADO_CL_EMPLEADO).FirstOrDefault();
                }

                if (emp == null)
                {
                    E_EMPLEADO_PDE e = new E_EMPLEADO_PDE
                    {
                        ID_EMPLEADO     = item.M_EMPLEADO_ID_EMPLEADO_PDE,
                        CL_EMPLEADO     = item.M_EMPLEADO_CL_EMPLEADO,
                        NB_EMPLEADO     = item.M_EMPLEADO_NB_EMPLEADO_COMPLETO,
                        ID_DEPARTAMENTO = item.M_DEPARTAMENTO_ID_DEPARTAMENTO_PDE,
                        ID_PUESTO       = item.M_PUESTO_ID_PUESTO_PDE,
                        NB_PUESTO       = item.M_PUESTO_NB_PUESTO,
                        NB_DEPARTAMENTO = item.M_DEPARTAMENTO_NB_DEPARTAMENTO,
                        M_CL_USUARIO    = (item.M_CL_USUARIO == null ? null : item.M_CL_USUARIO)
                    };

                    ListaEmpleados.Add(e);
                }
            }

            grdEmpleadosSeleccionados.Rebind();
        }
예제 #11
0
        private void CargarPeriodo()
        {
            ConsultaGeneralNegocio neg = new ConsultaGeneralNegocio();
            SPE_OBTIENE_FYD_PERIODO_EVALUACION_Result oPeriodo = neg.ObtenerPeriodoEvaluacion(vIdPeriodo);
            string vTiposEvaluacion = "";

            if (oPeriodo != null)
            {
                //txtPeriodo.InnerText = oPeriodo.DS_PERIODO;
                //txtClavePeriodo.InnerText = oPeriodo.CL_PERIODO;
                txtClPeriodo.InnerText = oPeriodo.NB_PERIODO;
                txtDsPeriodo.InnerText = oPeriodo.DS_PERIODO;
                txtEstatus.InnerText   = oPeriodo.CL_ESTADO_PERIODO;

                if (oPeriodo.FG_AUTOEVALUACION)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Autoevaluación" : String.Join(", ", vTiposEvaluacion, "Autoevaluacion");
                }

                if (oPeriodo.FG_SUPERVISOR)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Superior" : String.Join(", ", vTiposEvaluacion, "Superior");
                }

                if (oPeriodo.FG_SUBORDINADOS)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Subordinado" : String.Join(", ", vTiposEvaluacion, "Subordinado");
                }

                if (oPeriodo.FG_INTERRELACIONADOS)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Interrelacionado" : String.Join(", ", vTiposEvaluacion, "Interrelacionado");
                }

                if (oPeriodo.FG_OTROS_EVALUADORES)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Otros" : String.Join(", ", vTiposEvaluacion, "Otros");
                }

                txtTipoEvaluacion.InnerText = vTiposEvaluacion;

                if (oPeriodo.DS_NOTAS != null)
                {
                    if (oPeriodo.DS_NOTAS.Contains("DS_NOTA"))
                    {
                        txtNotas.InnerHtml = Utileria.MostrarNotas(oPeriodo.DS_NOTAS);
                    }
                    else
                    {
                        XElement vNotas = XElement.Parse(oPeriodo.DS_NOTAS);
                        if (vNotas != null)
                        {
                            vNotas.Name        = vNbFirstRadEditorTagName;
                            txtNotas.InnerHtml = vNotas.ToString();
                        }
                    }
                }

                ConsultaGeneralNegocio nConsulta = new ConsultaGeneralNegocio();
                vIdEmpresa    = ContextoUsuario.oUsuario.ID_EMPRESA;
                vIdRol        = ContextoUsuario.oUsuario.oRol.ID_ROL;
                vLstEvaluados = nConsulta.ObtieneEvaluados(vIdPeriodo, vIdEmpresa, vIdRol);
                GuardarEvaluados();

                oLstPeriodos.Add(new E_PERIODO_EVALUACION
                {
                    ID_PERIODO = oPeriodo.ID_PERIODO,
                    CL_PERIODO = oPeriodo.CL_PERIODO,
                    NB_PERIODO = oPeriodo.NB_PERIODO,
                    DS_PERIODO = oPeriodo.DS_PERIODO
                });
            }

            //oListaPeriodosFuente = neg.ObtenerPeriodosEvaluacion();
            //oListaPeriodosDestino = new List<E_PERIODO_EVALUACION>();
            //rlbPeriodosDisponibles.DataSource = oListaPeriodosFuente;
            //rlbPeriodosComparar.DataSource = oListaPeriodosDestino;
            //rlbPeriodosComparar.DataBind();
            //rlbPeriodosDisponibles.DataBind();
        }
예제 #12
0
        private HtmlGenericControl GenerarReporteGlobal()
        {
            decimal vPrGlobal     = 1;
            string  vDivsCeldasPo = "<table class=\"tablaColor\"> " +
                                    "<tr><td class=\"puesto\"> {0}</td> </tr>" +
                                    "<tr> " +
                                    "<td class=\"porcentaje\"> " +
                                    "<div class=\"divPorcentaje\">{1}</div> " +
                                    "</td> " +
                                    "<td class=\"color\"> " +
                                    "<div class=\"{2}\">&nbsp;</div> " +
                                    "</td> </tr>" +
                                    "</table>";

            List <SPE_OBTIENE_FYD_EVALUADOS_CONFIGURACION_Result> vLstEvaluados     = new List <SPE_OBTIENE_FYD_EVALUADOS_CONFIGURACION_Result>();
            List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result>          vLstEvaluadosFoto = new List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result>();
            ConsultaIndividualNegocio neg    = new ConsultaIndividualNegocio();
            ConsultaGeneralNegocio    negGen = new ConsultaGeneralNegocio();

            vLstEvaluados     = neg.ObtenerEvaluados(vIdPeriodo, vIdEmpresa);
            vLstEvaluadosFoto = negGen.ObtenerDatosReporteGlobal(vIdPeriodo, vXmlEmpleados, vFgFoto).ToList();
            int?vMaxPuestos     = 1;
            int vTotalPromedios = 1;

            if (vLstEvaluados.Count > 0)
            {
                vMaxPuestos     = negGen.ObtenerDatosReporteGlobal(vIdPeriodo, vXmlEmpleados, false).FirstOrDefault().NUM_PERIODOS;
                vTotalPromedios = negGen.ObtenerDatosReporteGlobal(vIdPeriodo, vXmlEmpleados, false).Count;
            }


            HtmlGenericControl vCtrlTabla = new HtmlGenericControl("table");

            HtmlGenericControl vCtrlColumn = new HtmlGenericControl("tr");

            vCtrlColumn.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt;");

            if (vFgFoto == true)
            {
                HtmlGenericControl vCtrlThFoto = new HtmlGenericControl("th");
                vCtrlThFoto.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; width:80px; background-color:#F5F5F5; height: 50px; padding: 3px; border-top-left-radius:4px");
                vCtrlThFoto.InnerText = String.Format("{0}", "Fotografía");
                vCtrlColumn.Controls.Add(vCtrlThFoto);
            }

            HtmlGenericControl vCtrlTh = new HtmlGenericControl("th");

            vCtrlTh.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; width:100px; background-color:#F5F5F5; height: 50px; padding: 3px; border-top-left-radius:4px");
            vCtrlTh.InnerText = String.Format("{0}", "No. de empleado");
            vCtrlColumn.Controls.Add(vCtrlTh);

            HtmlGenericControl vCtrlTh2 = new HtmlGenericControl("th");

            vCtrlTh2.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; width:300px; background-color:#F5F5F5; height: 50px; padding: 3px;");
            vCtrlTh2.InnerText = String.Format("{0}", "Nombre completo");
            vCtrlColumn.Controls.Add(vCtrlTh2);

            HtmlGenericControl vCtrlTh3 = new HtmlGenericControl("th");

            vCtrlTh3.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; width:300px; background-color:#F5F5F5; height: 50px; padding: 3px; ");
            vCtrlTh3.InnerText = String.Format("{0}", "Puesto");
            vCtrlColumn.Controls.Add(vCtrlTh3);

            HtmlGenericControl vCtrlTh4 = new HtmlGenericControl("th");

            vCtrlTh4.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; text-align:center; background-color:#F5F5F5; height: 50px;  border-top-right-radius:4px");
            vCtrlTh4.Attributes.Add("colspan", vMaxPuestos.ToString());
            vCtrlTh4.InnerText = String.Format("{0}", "Calificación");
            vCtrlColumn.Controls.Add(vCtrlTh4);

            vCtrlTabla.Controls.Add(vCtrlColumn);

            foreach (var item in vLstEvaluados)
            {
                HtmlGenericControl vCtrlRow = new HtmlGenericControl("tr");

                if (vFgFoto == true)
                {
                    HtmlGenericControl vCtrlColumnaFoto = new HtmlGenericControl("td");
                    vCtrlColumnaFoto.Attributes.Add("style", "border: 1px solid gray; border-radius:2px");
                    HtmlGenericControl vCtrlDiv = new HtmlGenericControl("div");
                    vCtrlDiv.Attributes.Add("style", "padding: 2px 2px 2px 2px;");

                    var vResultado = vLstEvaluadosFoto.Where(t => t.ID_EMPLEADO == item.ID_EMPLEADO && t.FI_FOTOGRAFIA != null).FirstOrDefault();
                    if (vResultado != null)
                    {
                        vCtrlDiv.InnerHtml = String.Format("{0}", "<img id=\"profileImage\" height=\"110\" width=\"80\" src=\"data:image/jpg;base64, " + Convert.ToBase64String(vResultado.FI_FOTOGRAFIA) + "\">");
                    }
                    else
                    {
                        vCtrlDiv.InnerHtml = String.Format("{0}", "<img id=\"profileImage\" height=\"110\" width=\"80\" border=\"5\">");
                    }
                    vCtrlColumnaFoto.Controls.Add(vCtrlDiv);
                    vCtrlRow.Controls.Add(vCtrlColumnaFoto);
                }

                HtmlGenericControl vCtrlColumnaClEval = new HtmlGenericControl("td");
                vCtrlColumnaClEval.Attributes.Add("title", "Empleado: " + item.NB_EMPLEADO_COMPLETO);
                vCtrlColumnaClEval.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; text-align:center; padding: 3px; border-radius:2px");
                vCtrlColumnaClEval.InnerText = String.Format("{0}", item.CL_EMPLEADO);
                vCtrlRow.Controls.Add(vCtrlColumnaClEval);

                HtmlGenericControl vCtrlColumnaNbEval = new HtmlGenericControl("td");
                vCtrlColumnaNbEval.Attributes.Add("title", "Clave del empleado: " + item.CL_EMPLEADO);
                vCtrlColumnaNbEval.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; padding: 3px; border-radius:2px");
                vCtrlColumnaNbEval.InnerHtml = String.Format("{0}", item.NB_EMPLEADO_COMPLETO);
                vCtrlRow.Controls.Add(vCtrlColumnaNbEval);

                HtmlGenericControl vCtrlColumnaPuestoEval = new HtmlGenericControl("td");
                vCtrlColumnaPuestoEval.Attributes.Add("title", "Clave del puesto: " + item.CL_PUESTO);
                vCtrlColumnaPuestoEval.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; padding: 3px; border-radius:2px");
                vCtrlColumnaPuestoEval.InnerText = String.Format("{0}", item.NB_PUESTO);
                vCtrlRow.Controls.Add(vCtrlColumnaPuestoEval);

                List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result> vLstEvaluadosReporte = new List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result>();
                vLstEvaluadosReporte = negGen.ObtenerDatosReporteGlobal(vIdPeriodo, vXmlEmpleados, false).Where(w => w.ID_EMPLEADO == item.ID_EMPLEADO).ToList();

                foreach (var itemResult in vLstEvaluadosReporte)
                {
                    HtmlGenericControl vCtrlColumnaResultado = new HtmlGenericControl("td");
                    vCtrlColumnaResultado.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; width:100px; border-radius:2px");
                    HtmlGenericControl vCtrlDiv = new HtmlGenericControl("div");
                    vCtrlDiv.Attributes.Add("style", "padding: 10px");
                    vCtrlDiv.Attributes.Add("title", itemResult.NB_PUESTO);
                    vCtrlDiv.InnerHtml = String.Format(vDivsCeldasPo, itemResult.CL_PUESTO, itemResult.PR_CUMPLIMIENTO + "%", GenerarColor(itemResult.CL_COLOR_CUMPLIMIENTO));
                    vCtrlColumnaResultado.Controls.Add(vCtrlDiv);
                    vCtrlRow.Controls.Add(vCtrlColumnaResultado);
                    vPrGlobal = vPrGlobal + itemResult.PR_CUMPLIMIENTO;
                }

                vCtrlTabla.Controls.Add(vCtrlRow);
            }

            HtmlGenericControl vCtrlRowFooter = new HtmlGenericControl("tr");

            HtmlGenericControl vCtrlFooterTol = new HtmlGenericControl("td");

            vCtrlFooterTol.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; font-weight:bold;  text-align: right; background-color:#F5F5F5; height: 30px;  border-bottom-left-radius:4px");

            if (vFgFoto)
            {
                vCtrlFooterTol.Attributes.Add("colspan", "4");
            }
            else
            {
                vCtrlFooterTol.Attributes.Add("colspan", "3");
            }

            vCtrlFooterTol.InnerText = String.Format("{0}", "Total:");
            vCtrlRowFooter.Controls.Add(vCtrlFooterTol);

            HtmlGenericControl vCtrlFooterPr = new HtmlGenericControl("td");

            vCtrlFooterPr.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; font-weight:bold; text-align: center; border-top: 1.1px solid gray; background-color:" + ObtieneColorPromedio((vPrGlobal / vTotalPromedios)) + "; height: 30px;  border-bottom-right-radius:4px");
            vCtrlFooterPr.Attributes.Add("colspan", vMaxPuestos.ToString());
            if (vLstEvaluados.Count > 0)
            {
                vCtrlFooterPr.InnerText = String.Format("{0:0.00}%", vPrGlobal / vTotalPromedios);
            }
            else
            {
                vCtrlFooterPr.InnerText = String.Format("{0}%", 0);
            }

            vCtrlRowFooter.Controls.Add(vCtrlFooterPr);

            vCtrlTabla.Controls.Add(vCtrlRowFooter);

            return(vCtrlTabla);
        }
예제 #13
0
        public void GeneraContexto(List <int> pListaPeriodos)
        {
            string             vTiposEvaluacion = "";
            HtmlGenericControl vCtrlTabla       = new HtmlGenericControl("table");

            vCtrlTabla.Attributes.Add("style", "border: 1px solid gray;");

            HtmlGenericControl vCtrlColumn = new HtmlGenericControl("tr");

            HtmlGenericControl vCtrlTh = new HtmlGenericControl("th");

            vCtrlTh.Attributes.Add("style", "border: 1px solid gray;");
            vCtrlTh.InnerText = String.Format("{0}", "Periodo");
            vCtrlColumn.Controls.Add(vCtrlTh);

            HtmlGenericControl vCtrlTh2 = new HtmlGenericControl("th");

            vCtrlTh2.Attributes.Add("style", "border: 1px solid gray;");
            vCtrlTh2.InnerText = String.Format("{0}", "Descripción");
            vCtrlColumn.Controls.Add(vCtrlTh2);

            HtmlGenericControl vCtrlTh3 = new HtmlGenericControl("th");

            vCtrlTh3.Attributes.Add("style", "border: 1px solid gray;");
            vCtrlTh3.InnerText = String.Format("{0}", "Tipo de evaluación");
            vCtrlColumn.Controls.Add(vCtrlTh3);

            vCtrlTabla.Controls.Add(vCtrlColumn);

            ConsultaGeneralNegocio neg = new ConsultaGeneralNegocio();

            bool exists = pListaPeriodos.Exists(element => element == vIdPeriodo);

            if (!exists)
            {
                var oPeriodoOriginal = neg.ObtenerPeriodoEvaluacion(vIdPeriodo);

                HtmlGenericControl vCtrlColumnO           = new HtmlGenericControl("tr");
                HtmlGenericControl vCtrlColumnaClPeriodoO = new HtmlGenericControl("td");
                vCtrlColumnaClPeriodoO.Attributes.Add("style", "border: 1px solid gray;");
                vCtrlColumnaClPeriodoO.InnerText = String.Format("{0}", oPeriodoOriginal.CL_PERIODO);
                vCtrlColumnO.Controls.Add(vCtrlColumnaClPeriodoO);

                HtmlGenericControl vCtrlColumnaNbPeriodoO = new HtmlGenericControl("td");
                vCtrlColumnaNbPeriodoO.Attributes.Add("style", "border: 1px solid gray;");
                vCtrlColumnaNbPeriodoO.InnerHtml = String.Format("{0}", oPeriodoOriginal.DS_PERIODO);
                vCtrlColumnO.Controls.Add(vCtrlColumnaNbPeriodoO);

                if (oPeriodoOriginal.FG_AUTOEVALUACION)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Autoevaluación" : String.Join(", ", vTiposEvaluacion, "Autoevaluacion");
                }

                if (oPeriodoOriginal.FG_SUPERVISOR)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Superior" : String.Join(", ", vTiposEvaluacion, "Superior");
                }

                if (oPeriodoOriginal.FG_SUBORDINADOS)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Subordinado" : String.Join(", ", vTiposEvaluacion, "Subordinado");
                }

                if (oPeriodoOriginal.FG_INTERRELACIONADOS)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Interrelacionado" : String.Join(", ", vTiposEvaluacion, "Interrelacionado");
                }

                if (oPeriodoOriginal.FG_OTROS_EVALUADORES)
                {
                    vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Otros" : String.Join(", ", vTiposEvaluacion, "Otros");
                }

                HtmlGenericControl vCtrlColumnaTipoPeriodoO = new HtmlGenericControl("td");
                vCtrlColumnaTipoPeriodoO.Attributes.Add("style", "border: 1px solid gray;");
                vCtrlColumnaTipoPeriodoO.InnerText = String.Format("{0}", vTiposEvaluacion);
                vCtrlColumnO.Controls.Add(vCtrlColumnaTipoPeriodoO);

                vCtrlTabla.Controls.Add(vCtrlColumnO);
            }

            foreach (int item in pListaPeriodos)
            {
                HtmlGenericControl vCtrlRow = new HtmlGenericControl("tr");
                var oPeriodo = neg.ObtenerPeriodoEvaluacion(item);
                vTiposEvaluacion = "";
                if (oPeriodo != null)
                {
                    HtmlGenericControl vCtrlColumnaClPeriodo = new HtmlGenericControl("td");
                    vCtrlColumnaClPeriodo.Attributes.Add("style", "border: 1px solid gray;");
                    vCtrlColumnaClPeriodo.InnerText = String.Format("{0}", oPeriodo.CL_PERIODO);
                    vCtrlRow.Controls.Add(vCtrlColumnaClPeriodo);

                    HtmlGenericControl vCtrlColumnaNbPeriodo = new HtmlGenericControl("td");
                    vCtrlColumnaNbPeriodo.Attributes.Add("style", "border: 1px solid gray;");
                    vCtrlColumnaNbPeriodo.InnerHtml = String.Format("{0}", oPeriodo.DS_PERIODO);
                    vCtrlRow.Controls.Add(vCtrlColumnaNbPeriodo);

                    if (oPeriodo.FG_AUTOEVALUACION)
                    {
                        vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Autoevaluación" : String.Join(", ", vTiposEvaluacion, "Autoevaluacion");
                    }

                    if (oPeriodo.FG_SUPERVISOR)
                    {
                        vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Superior" : String.Join(", ", vTiposEvaluacion, "Superior");
                    }

                    if (oPeriodo.FG_SUBORDINADOS)
                    {
                        vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Subordinado" : String.Join(", ", vTiposEvaluacion, "Subordinado");
                    }

                    if (oPeriodo.FG_INTERRELACIONADOS)
                    {
                        vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Interrelacionado" : String.Join(", ", vTiposEvaluacion, "Interrelacionado");
                    }

                    if (oPeriodo.FG_OTROS_EVALUADORES)
                    {
                        vTiposEvaluacion = string.IsNullOrEmpty(vTiposEvaluacion) ? "Otros" : String.Join(", ", vTiposEvaluacion, "Otros");
                    }

                    HtmlGenericControl vCtrlColumnaTipoPeriodo = new HtmlGenericControl("td");
                    vCtrlColumnaTipoPeriodo.Attributes.Add("style", "border: 1px solid gray;");
                    vCtrlColumnaTipoPeriodo.InnerText = String.Format("{0}", vTiposEvaluacion);
                    vCtrlRow.Controls.Add(vCtrlColumnaTipoPeriodo);


                    vCtrlTabla.Controls.Add(vCtrlRow);
                    dvContexto.Controls.Add(vCtrlTabla);

                    if (oPeriodo.CL_ESTADO_PERIODO == "ABIERTO")
                    {
                        lblAdvertencia.Visible = true;
                    }
                }
            }
        }
예제 #14
0
        public HtmlGenericControl GenerarReporteComparativo()
        {
            string vDivsCeldasPo = "<table class=\"tablaColor\"> " +
                                   "<tr><td class=\"puesto\"> {0}</td> </tr>" +
                                   "<tr> " +
                                   "<td class=\"porcentaje\"> " +
                                   "<div class=\"divPorcentaje\">{1}</div> " +
                                   "</td> " +
                                   "<td class=\"color\"> " +
                                   "<div class=\"{2}\">&nbsp;</div> " +
                                   "</td> </tr>" +
                                   "</table>";


            ConsultaGeneralNegocio neg = new ConsultaGeneralNegocio();
            List <SPE_OBTIENE_FYD_EVALUADOS_COMPARATIVO_Result> vLstEvaluadores = neg.ObtenerEvaluadosComparativo(vIdPeriodo, vXmlPeriodos, vFgFoto, vIdRol);
            List <int> lista              = ContextoReportes.oReporteComparativo.Where(t => t.vIdReporteComparativo == vIdReporteComparativo).FirstOrDefault().vListaPeriodos;
            bool       exists             = lista.Exists(element => element == vIdPeriodo);
            int?       vMaxPuestosPeriodo = 1;

            if (!exists)
            {
                lista.Add(vIdPeriodo);
            }
            decimal?vPrGlobal        = 0;
            int     vTotalPromedios  = 1;
            decimal?vPromedioPeriodo = 0;


            HtmlGenericControl vCtrlTabla = new HtmlGenericControl("table");

            HtmlGenericControl vCtrlColumn = new HtmlGenericControl("tr");

            vCtrlColumn.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt;");

            if (vFgFoto == true)
            {
                HtmlGenericControl vCtrlThFoto = new HtmlGenericControl("th");
                vCtrlThFoto.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; width:80px; background-color:#F5F5F5; height: 50px; padding: 3px; border-top-left-radius:4px");
                vCtrlThFoto.InnerText = String.Format("{0}", "Fotografía");
                vCtrlColumn.Controls.Add(vCtrlThFoto);
            }

            HtmlGenericControl vCtrlTh = new HtmlGenericControl("th");

            vCtrlTh.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; width:100px; background-color:#F5F5F5; height: 50px; padding: 3px; border-top-left-radius:4px");
            vCtrlTh.InnerText = String.Format("{0}", "No. de empleado");
            vCtrlColumn.Controls.Add(vCtrlTh);

            HtmlGenericControl vCtrlTh2 = new HtmlGenericControl("th");

            vCtrlTh2.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; width:300px; background-color:#F5F5F5; height: 50px; padding: 3px;");
            vCtrlTh2.InnerText = String.Format("{0}", "Nombre completo");
            vCtrlColumn.Controls.Add(vCtrlTh2);

            HtmlGenericControl vCtrlTh3 = new HtmlGenericControl("th");

            vCtrlTh3.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; width:300px; background-color:#F5F5F5; height: 50px; padding: 3px; ");
            vCtrlTh3.InnerText = String.Format("{0}", "Puesto");
            vCtrlColumn.Controls.Add(vCtrlTh3);

            foreach (int item in lista)
            {
                vMaxPuestosPeriodo = neg.ObtenerDatosReporteGlobal(item, null, false).FirstOrDefault().NUM_PERIODOS;
                var oPeriodo = neg.ObtenerPeriodoEvaluacion(item);
                HtmlGenericControl vCtrlTh4 = new HtmlGenericControl("th");
                vCtrlTh4.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; text-align:center; background-color:#F5F5F5; height: 50px;  border-top-right-radius:4px");
                vCtrlTh4.Attributes.Add("colspan", vMaxPuestosPeriodo.ToString());
                vCtrlTh4.InnerText = String.Format("{0}", oPeriodo.CL_PERIODO);
                vCtrlColumn.Controls.Add(vCtrlTh4);
            }

            vCtrlTabla.Controls.Add(vCtrlColumn);

            foreach (var item in vLstEvaluadores)
            {
                HtmlGenericControl vCtrlRow = new HtmlGenericControl("tr");

                if (vFgFoto == true)
                {
                    HtmlGenericControl vCtrlColumnaFoto = new HtmlGenericControl("td");
                    vCtrlColumnaFoto.Attributes.Add("style", "border: 1px solid gray; border-radius:2px");
                    HtmlGenericControl vCtrlDiv = new HtmlGenericControl("div");
                    vCtrlDiv.Attributes.Add("style", "padding: 2px 2px 2px 2px;");

                    var vResultado = vLstEvaluadores.Where(t => t.ID_EMPLEADO == item.ID_EMPLEADO && t.FI_ARCHIVO != null).FirstOrDefault();
                    if (vResultado != null)
                    {
                        vCtrlDiv.InnerHtml = String.Format("{0}", "<img id=\"profileImage\" height=\"110\" width=\"80\" src=\"data:image/jpg;base64, " + Convert.ToBase64String(vResultado.FI_ARCHIVO) + "\">");
                    }
                    else
                    {
                        vCtrlDiv.InnerHtml = String.Format("{0}", "<img id=\"profileImage\" height=\"110\" width=\"80\" border=\"5\">");
                    }
                    vCtrlColumnaFoto.Controls.Add(vCtrlDiv);
                    vCtrlRow.Controls.Add(vCtrlColumnaFoto);
                }

                HtmlGenericControl vCtrlColumnaClEval = new HtmlGenericControl("td");
                vCtrlColumnaClEval.Attributes.Add("title", "Empleado: " + item.NB_EVALUADO);
                vCtrlColumnaClEval.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; text-align:center; padding: 3px; border-radius:2px");
                vCtrlColumnaClEval.InnerText = String.Format("{0}", item.CL_EVALUADO);
                vCtrlRow.Controls.Add(vCtrlColumnaClEval);

                HtmlGenericControl vCtrlColumnaNbEval = new HtmlGenericControl("td");
                vCtrlColumnaNbEval.Attributes.Add("title", "Clave del empleado: " + item.CL_EVALUADO);
                vCtrlColumnaNbEval.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; padding: 3px; border-radius:2px");
                vCtrlColumnaNbEval.InnerHtml = String.Format("{0}", item.NB_EVALUADO);
                vCtrlRow.Controls.Add(vCtrlColumnaNbEval);

                HtmlGenericControl vCtrlColumnaPuestoEval = new HtmlGenericControl("td");
                vCtrlColumnaPuestoEval.Attributes.Add("title", "Clave del puesto: " + item.CL_PUESTO);
                vCtrlColumnaPuestoEval.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; padding: 3px; border-radius:2px");
                vCtrlColumnaPuestoEval.InnerText = String.Format("{0}", item.NB_PUESTO);
                vCtrlRow.Controls.Add(vCtrlColumnaPuestoEval);


                foreach (int idPeriodo in lista)
                {
                    List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result> vLstEvaluadosReporte = new List <SPE_OBTIENE_FYD_REPORTE_GLOBAL_Result>();
                    vLstEvaluadosReporte = neg.ObtenerDatosReporteGlobal(idPeriodo, null, false).Where(w => w.ID_EMPLEADO == item.ID_EMPLEADO).ToList();

                    foreach (var itemResult in vLstEvaluadosReporte)
                    {
                        HtmlGenericControl vCtrlColumnaResultado = new HtmlGenericControl("td");
                        vCtrlColumnaResultado.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; width:100px; border-radius:2px");
                        HtmlGenericControl vCtrlDiv = new HtmlGenericControl("div");
                        vCtrlDiv.Attributes.Add("style", "padding: 10px");
                        vCtrlDiv.Attributes.Add("title", itemResult.NB_PUESTO);
                        vCtrlDiv.InnerHtml = String.Format(vDivsCeldasPo, itemResult.CL_PUESTO, itemResult.PR_CUMPLIMIENTO + "%", GenerarColor(itemResult.CL_COLOR_CUMPLIMIENTO));
                        vCtrlColumnaResultado.Controls.Add(vCtrlDiv);
                        vCtrlRow.Controls.Add(vCtrlColumnaResultado);
                    }

                    if (vLstEvaluadosReporte == null || vLstEvaluadosReporte.Count < 1)
                    {
                        vMaxPuestosPeriodo = neg.ObtenerDatosReporteGlobal(idPeriodo, null, false).FirstOrDefault().NUM_PERIODOS;
                        HtmlGenericControl vCtrlColumnaResultado = new HtmlGenericControl("td");
                        vCtrlColumnaResultado.Attributes.Add("colspan", vMaxPuestosPeriodo.ToString());
                        vCtrlColumnaResultado.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; width:100px; border-radius:2px");
                        vCtrlColumnaResultado.InnerHtml = "&nbsp;";
                        vCtrlRow.Controls.Add(vCtrlColumnaResultado);
                    }
                }

                vCtrlTabla.Controls.Add(vCtrlRow);
            }

            HtmlGenericControl vCtrlRowFooter = new HtmlGenericControl("tr");

            HtmlGenericControl vCtrlFooterTol = new HtmlGenericControl("td");

            vCtrlFooterTol.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; font-weight:bold;  text-align: right; background-color:#F5F5F5; height: 30px;  border-bottom-left-radius:4px");

            if (vFgFoto)
            {
                vCtrlFooterTol.Attributes.Add("colspan", "4");
            }
            else
            {
                vCtrlFooterTol.Attributes.Add("colspan", "3");
            }

            vCtrlFooterTol.InnerText = String.Format("{0}", "Total:");
            vCtrlRowFooter.Controls.Add(vCtrlFooterTol);

            foreach (int itemPeriodo in lista)
            {
                vMaxPuestosPeriodo = neg.ObtenerDatosReporteGlobal(itemPeriodo, null, false).FirstOrDefault().NUM_PERIODOS;
                vTotalPromedios    = neg.ObtenerDatosReporteGlobal(itemPeriodo, null, false).Count;
                vPrGlobal          = neg.ObtenerDatosReporteGlobal(itemPeriodo, null, false).Average(a => a.PR_CUMPLIMIENTO);

                HtmlGenericControl vCtrlFooterPr = new HtmlGenericControl("td");
                vCtrlFooterPr.Attributes.Add("style", "border: 1px solid gray; font-family:arial; font-size: 10pt; font-weight:bold; text-align: center; border-top: 1.1px solid gray; height: 30px;  border-bottom-right-radius:4px");
                vCtrlFooterPr.Attributes.Add("colspan", vMaxPuestosPeriodo.ToString());
                if (vLstEvaluadores.Count > 0)
                {
                    vCtrlFooterPr.InnerText = String.Format("{0:0.00}%", vPrGlobal);
                }
                else
                {
                    vCtrlFooterPr.InnerText = String.Format("{0}%", 0);
                }

                vCtrlRowFooter.Controls.Add(vCtrlFooterPr);
            }

            vCtrlTabla.Controls.Add(vCtrlRowFooter);

            return(vCtrlTabla);
        }