private void ResultadosActividad()
    {
        Programa.Areas AREA = (Programa.Areas)Enum.Parse(typeof(Programa.Areas), HiddenField_ID_AREA.Value);

        tools _tools = new tools();

        Decimal ID_ACTIVIDAD = Convert.ToDecimal(HiddenField_ID_ACTIVIDAD.Value);
        Decimal ID_DETALLE = Convert.ToDecimal(HiddenField_ID_DETALLE.Value);

        Decimal PRESUPUESTO_FINAL = Convert.ToDecimal(TextBox_PresupuestoFinal.Text);
        Int32 PERSONAL_FINAL = Convert.ToInt32(TextBox_PersonalFinal.Text);

        Int32 PUNTUACION_LOG_BUENA = 0;
        Int32 PUNTUACION_LOG_REGULAR = 0;
        Int32 PUNTUACION_LOG_MALA = 0;

        Int32 PUNTUACION_INSTRUCTOR_BUENA = 0;
        Int32 PUNTUACION_INSTRUCTOR_REGULAR = 0;
        Int32 PUNTUACION_INSTRUCTOR_MALA = 0;

        Int32 PUNTUACION_INSTALACIONES_BUENA = 0;
        Int32 PUNTUACION_INSTALACIONES_REGULAR = 0;
        Int32 PUNTUACION_INSTALACIONES_MALA = 0;

        try { PUNTUACION_LOG_BUENA = Convert.ToInt32(TextBox_LogisticaBuena.Text); }
        catch { PUNTUACION_LOG_BUENA = 0; }

        try { PUNTUACION_LOG_REGULAR = Convert.ToInt32(TextBox_LogisticaRegular.Text); }
        catch { PUNTUACION_LOG_REGULAR = 0; }

        try { PUNTUACION_LOG_MALA = Convert.ToInt32(TextBox_LogisticaMala.Text); }
        catch { PUNTUACION_LOG_MALA = 0; }

        try { PUNTUACION_INSTRUCTOR_BUENA = Convert.ToInt32(TextBox_InstructorBuena.Text); }
        catch { PUNTUACION_INSTRUCTOR_BUENA = 0; }

        try { PUNTUACION_INSTRUCTOR_REGULAR = Convert.ToInt32(TextBox_InstructorRegular.Text); }
        catch { PUNTUACION_INSTRUCTOR_REGULAR = 0; }

        try { PUNTUACION_INSTRUCTOR_MALA = Convert.ToInt32(TextBox_InstructorMala.Text); }
        catch { PUNTUACION_INSTRUCTOR_MALA = 0; }

        try { PUNTUACION_INSTALACIONES_BUENA = Convert.ToInt32(TextBox_InstalacionesBuena.Text); }
        catch { PUNTUACION_INSTALACIONES_BUENA = 0; }

        try { PUNTUACION_INSTALACIONES_REGULAR = Convert.ToInt32(TextBox_InstalacionesRegular.Text); }
        catch { PUNTUACION_INSTALACIONES_REGULAR = 0; }

        try { PUNTUACION_INSTALACIONES_MALA = Convert.ToInt32(TextBox_InstalacionesMala.Text); }
        catch { PUNTUACION_INSTALACIONES_MALA = 0; }

        Int32 TotalLogistica = PUNTUACION_LOG_BUENA + PUNTUACION_LOG_MALA + PUNTUACION_LOG_REGULAR;
        Int32 TotalInstructor = PUNTUACION_INSTRUCTOR_BUENA + PUNTUACION_INSTRUCTOR_MALA + PUNTUACION_INSTRUCTOR_REGULAR;
        Int32 TotalInstalaciones = PUNTUACION_INSTALACIONES_BUENA + PUNTUACION_INSTALACIONES_MALA + PUNTUACION_INSTALACIONES_REGULAR;

        if (TotalLogistica > PERSONAL_FINAL)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El número de encuestas totales de LOGISTICA (" + TotalLogistica.ToString() + ") no puede superar el número de participantes (" + PERSONAL_FINAL.ToString() + ") de la encuesta", Proceso.Advertencia);
        }
        else
        {
            if (TotalInstructor > PERSONAL_FINAL)
            {
                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El número de encuestas totales de INSTRUCTOR (" + TotalInstructor.ToString() + ") no puede superar el número de participantes (" + PERSONAL_FINAL.ToString() + ") de la encuesta", Proceso.Advertencia);
            }
            else
            {
                if (TotalInstalaciones > PERSONAL_FINAL)
                {
                    Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El número de encuestas totales de INSTALACIONES (" + TotalInstalaciones.ToString() + ") no puede superar el número de participantes (" + PERSONAL_FINAL.ToString() + ") de la encuesta", Proceso.Advertencia);
                }
                else
                {
                    Byte[] ARCHIVO_ENCUESTA = null;
                    Int32 ARCHIVO_ENCUESTA_TAMANO = 0;
                    String ARCHIVO_ENCUESTA_EXTENSION = null;
                    String ARCHIVO_ENCUESTA_TYPE = null;
                    if (FileUpload_ArchivoEncuesta.HasFile == true)
                    {
                        using (BinaryReader reader = new BinaryReader(FileUpload_ArchivoEncuesta.PostedFile.InputStream))
                        {
                            ARCHIVO_ENCUESTA = reader.ReadBytes(FileUpload_ArchivoEncuesta.PostedFile.ContentLength);
                            ARCHIVO_ENCUESTA_TAMANO = FileUpload_ArchivoEncuesta.PostedFile.ContentLength;
                            ARCHIVO_ENCUESTA_TYPE = FileUpload_ArchivoEncuesta.PostedFile.ContentType;
                            ARCHIVO_ENCUESTA_EXTENSION = _tools.obtenerExtensionArchivo(FileUpload_ArchivoEncuesta.PostedFile.FileName);
                        }
                    }

                    List<Asistencia> listaAsistencia = new List<Asistencia>();

                    for (int i = 0; i < GridView_ControlAsistencia.Rows.Count; i++)
                    {
                        CheckBox check = GridView_ControlAsistencia.Rows[i].FindControl("CheckBox_Asistencia") as CheckBox;

                        if (check.Checked == true)
                        {
                            Decimal ID_EMPLEADO = Convert.ToDecimal(GridView_ControlAsistencia.DataKeys[i].Values["ID_EMPLEADO"]);
                            Decimal ID_SOLICITUD = Convert.ToDecimal(GridView_ControlAsistencia.DataKeys[i].Values["ID_SOLICITUD"]);

                            Asistencia _asistenciaParaLista = new Asistencia();

                            _asistenciaParaLista.ID_EMPLEADO = ID_EMPLEADO;
                            _asistenciaParaLista.ID_SOLICITUD = ID_SOLICITUD;
                            _asistenciaParaLista.ID_DETALLE = ID_DETALLE;

                            listaAsistencia.Add(_asistenciaParaLista);
                        }
                    }

                    if ((listaAsistencia.Count <= 0) && (HiddenField_SECCIONES_HABILITADAS.Value.Contains("Control Asistencia") == true))
                    {
                        Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "Para porder continuar debe diligenciar la asistencia de los colaboradores.", Proceso.Advertencia);
                    }
                    else
                    {
                        Byte[] ARCHIVO_ASISTENCIA = null;
                        Int32 ARCHIVO_ASISTENCIA_TAMANO = 0;
                        String ARCHIVO_ASISTENCIA_EXTENSION = null;
                        String ARCHIVO_ASISTENCIA_TYPE = null;
                        if (FileUpload_ArchivoAsistencia.HasFile == true)
                        {
                            using (BinaryReader reader = new BinaryReader(FileUpload_ArchivoAsistencia.PostedFile.InputStream))
                            {
                                ARCHIVO_ASISTENCIA = reader.ReadBytes(FileUpload_ArchivoAsistencia.PostedFile.ContentLength);
                                ARCHIVO_ASISTENCIA_TAMANO = FileUpload_ArchivoAsistencia.PostedFile.ContentLength;
                                ARCHIVO_ASISTENCIA_TYPE = FileUpload_ArchivoAsistencia.PostedFile.ContentType;
                                ARCHIVO_ASISTENCIA_EXTENSION = _tools.obtenerExtensionArchivo(FileUpload_ArchivoAsistencia.PostedFile.FileName);
                            }
                        }

                        String RESULTADOS_ENCUESTA = "";

                        RESULTADOS_ENCUESTA = Programa.TemasEncuesta.LOGISTICA.ToString() + ":" + Programa.CalificacionesTemasEncuesta.BUENA.ToString() + "=" + PUNTUACION_LOG_BUENA.ToString();
                        RESULTADOS_ENCUESTA += "*" + Programa.TemasEncuesta.LOGISTICA.ToString() + ":" + Programa.CalificacionesTemasEncuesta.REGULAR.ToString() + "=" + PUNTUACION_LOG_REGULAR.ToString();
                        RESULTADOS_ENCUESTA += "*" + Programa.TemasEncuesta.LOGISTICA.ToString() + ":" + Programa.CalificacionesTemasEncuesta.MALA.ToString() + "=" + PUNTUACION_LOG_MALA.ToString();

                        RESULTADOS_ENCUESTA += "*" + Programa.TemasEncuesta.INSTRUCTOR.ToString() + ":" + Programa.CalificacionesTemasEncuesta.BUENA.ToString() + "=" + PUNTUACION_INSTRUCTOR_BUENA.ToString();
                        RESULTADOS_ENCUESTA += "*" + Programa.TemasEncuesta.INSTRUCTOR.ToString() + ":" + Programa.CalificacionesTemasEncuesta.REGULAR.ToString() + "=" + PUNTUACION_INSTRUCTOR_REGULAR.ToString();
                        RESULTADOS_ENCUESTA += "*" + Programa.TemasEncuesta.INSTRUCTOR.ToString() + ":" + Programa.CalificacionesTemasEncuesta.MALA.ToString() + "=" + PUNTUACION_INSTRUCTOR_MALA.ToString();

                        RESULTADOS_ENCUESTA += "*" + Programa.TemasEncuesta.INSTALACIONES.ToString() + ":" + Programa.CalificacionesTemasEncuesta.BUENA.ToString() + "=" + PUNTUACION_INSTALACIONES_BUENA.ToString();
                        RESULTADOS_ENCUESTA += "*" + Programa.TemasEncuesta.INSTALACIONES.ToString() + ":" + Programa.CalificacionesTemasEncuesta.REGULAR.ToString() + "=" + PUNTUACION_INSTALACIONES_REGULAR.ToString();
                        RESULTADOS_ENCUESTA += "*" + Programa.TemasEncuesta.INSTALACIONES.ToString() + ":" + Programa.CalificacionesTemasEncuesta.MALA.ToString() + "=" + PUNTUACION_INSTALACIONES_MALA.ToString();

                        Boolean correcto = true;

                        if (HiddenField_SECCIONES_HABILITADAS.Value.Contains("Resultados Encuesta") == true)
                        {
                            correcto = VerificarEstandarEncuesta(PUNTUACION_LOG_BUENA, PUNTUACION_LOG_REGULAR, PUNTUACION_LOG_MALA, PUNTUACION_INSTRUCTOR_BUENA, PUNTUACION_INSTRUCTOR_REGULAR, PUNTUACION_INSTRUCTOR_MALA, PUNTUACION_INSTALACIONES_BUENA, PUNTUACION_INSTALACIONES_REGULAR, PUNTUACION_INSTALACIONES_MALA);
                        }

                        if (correcto == true)
                        {
                            List<EntidadColaboradora> listaEntidadesColaboradoras = new List<EntidadColaboradora>();
                            for (int i = 0; i < GridView_EntidadesColaboradoras.Rows.Count; i++)
                            {
                                EntidadColaboradora entidadParaLista = new EntidadColaboradora();

                                DropDownList dropGrilla = GridView_EntidadesColaboradoras.Rows[i].FindControl("DropDownList_EntidadesColoboradoras") as DropDownList;

                                TextBox texto = GridView_EntidadesColaboradoras.Rows[i].FindControl("TextBox_DescripcionEntidad") as TextBox;

                                entidadParaLista.DESCRIPCION = texto.Text.Trim();
                                entidadParaLista.ID_ENTIDAD = Convert.ToDecimal(dropGrilla.SelectedValue);
                                entidadParaLista.ID_ENTIDAD_COLABORA = Convert.ToDecimal(GridView_EntidadesColaboradoras.DataKeys[i].Values["ID_ENTIDAD_COLABORA"]);

                                listaEntidadesColaboradoras.Add(entidadParaLista);
                            }

                            List<MaestraCompromiso> listaCompromisos = new List<MaestraCompromiso>();
                            for (int i = 0; i < GridView_Compromisos.Rows.Count; i++)
                            {
                                GridViewRow filaGrilla = GridView_Compromisos.Rows[i];

                                MaestraCompromiso compromisoParaLista = new MaestraCompromiso();

                                Decimal ID_MAESTRA_COMPROMISO = Convert.ToDecimal(GridView_Compromisos.DataKeys[i].Values["ID_MAESTRA_COMPROMISO"]);

                                Decimal ID_ACTIVIDAD_GENERA = Convert.ToDecimal(HiddenField_ID_DETALLE.Value);

                                String NOMBRE_ACTIVIDAD_GENERA = DropDownList_IdActividad.SelectedItem.Text;

                                String TIPO_GENERA = Programa.TiposGeneraCompromiso.ACTIVIDAD.ToString();

                                TextBox textoCompromiso = filaGrilla.FindControl("TextBox_Compromiso") as TextBox;
                                String COMPROMISO = textoCompromiso.Text.Trim();

                                DropDownList dropGrilla = filaGrilla.FindControl("DropDownList_ResponsableCompromiso") as DropDownList;
                                String USU_LOG_RESPONSABLE = dropGrilla.SelectedValue;

                                TextBox textoFechaP = filaGrilla.FindControl("TextBox_FechaCompromiso") as TextBox;
                                DateTime FECHA_P = new DateTime();
                                try
                                {
                                    FECHA_P = Convert.ToDateTime(textoFechaP.Text);
                                }
                                catch
                                {
                                    FECHA_P = new DateTime();
                                }

                                DateTime FECHA_EJECUCION = new DateTime();

                                TextBox textoObservaciones = filaGrilla.FindControl("TextBox_ObservacionesCompromiso") as TextBox;
                                String OBSERVACIONES = textoObservaciones.Text.Trim();

                                Label textoEstado = filaGrilla.FindControl("Label_EstadoCompromiso") as Label;
                                String ESTADO = "CERRADO";
                                if (USU_LOG_RESPONSABLE.ToUpper() != "CLIENTE")
                                {
                                    ESTADO = textoEstado.Text;
                                }

                                compromisoParaLista.COMPROMISO = COMPROMISO;
                                compromisoParaLista.ESTADO = ESTADO;
                                compromisoParaLista.FECHA_EJECUCION = FECHA_EJECUCION;
                                compromisoParaLista.FECHA_P = FECHA_P;
                                compromisoParaLista.ID_ACTIVIDAD_GENERA = ID_ACTIVIDAD_GENERA;
                                compromisoParaLista.ID_MAESTRA_COMPROMISO = ID_MAESTRA_COMPROMISO;
                                compromisoParaLista.NOMBRE_ACTIVIDAD_GENERA = NOMBRE_ACTIVIDAD_GENERA;
                                compromisoParaLista.OBSERVACIONES = OBSERVACIONES;
                                compromisoParaLista.USU_LOG_RESPONSABLE = USU_LOG_RESPONSABLE;
                                compromisoParaLista.TIPO_GENERA = TIPO_GENERA;

                                listaCompromisos.Add(compromisoParaLista);
                            }

                            String CONCLUSION_ACTIVIDAD = TextBox_ConclusionesActividad.Text.Trim();
                            String DIRECCION_IMAGEN_REPRESENTATIVA = null;
                            if (FileUpload_ImagenRepresentativa.HasFile == false)
                            {
                                DIRECCION_IMAGEN_REPRESENTATIVA = null;
                            }
                            else
                            {
                                String[] extensionesImagenPermitidas = ConfigurationManager.AppSettings["extensionesImagenesPermitidas"].ToLower().Split(',');
                                String ext = System.IO.Path.GetExtension(FileUpload_ImagenRepresentativa.PostedFile.FileName).ToLower();
                                Boolean isValidFile = false;
                                for (int i = 0; i < extensionesImagenPermitidas.Length; i++)
                                {
                                    if (ext == "." + extensionesImagenPermitidas[i])
                                    {
                                        isValidFile = true;
                                        break;
                                    }
                                }

                                if (isValidFile == true)
                                {
                                    Guid id = Guid.NewGuid();

                                    String nombreUnicoParaImagen = id.ToString();

                                    String filePath = "~/imagenes/imgRepresentativasActividad/" + nombreUnicoParaImagen + ext;

                                    FileUpload_ImagenRepresentativa.SaveAs(MapPath(filePath));

                                    DIRECCION_IMAGEN_REPRESENTATIVA = filePath;

                                    FileUpload_ImagenRepresentativa.Dispose();
                                }
                            }

                            Programa _programa = new Programa(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

                            Boolean verificado = _programa.TerminarProgDetallesActividad(ID_DETALLE, PRESUPUESTO_FINAL, PERSONAL_FINAL, Programa.EstadosDetalleActividad.TERMINADA, RESULTADOS_ENCUESTA, listaAsistencia, ARCHIVO_ENCUESTA, ARCHIVO_ENCUESTA_TAMANO, ARCHIVO_ENCUESTA_EXTENSION, ARCHIVO_ENCUESTA_TYPE, ARCHIVO_ASISTENCIA, ARCHIVO_ASISTENCIA_TAMANO, ARCHIVO_ASISTENCIA_EXTENSION, ARCHIVO_ASISTENCIA_TYPE, listaEntidadesColaboradoras, CONCLUSION_ACTIVIDAD, DIRECCION_IMAGEN_REPRESENTATIVA, listaCompromisos, AREA);

                            if (verificado == false)
                            {
                                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _programa.MensajeError, Proceso.Advertencia);
                            }
                            else
                            {
                                Ocultar(Acciones.Inicio);
                                Desactivar(Acciones.Inicio);
                                Mostrar(Acciones.Inicio);
                                Cargar(Acciones.Inicio);

                                Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "Los Resultados de la Actividad fueron registrados correctamente.", Proceso.Correcto);
                            }
                        }
                    }
                }
            }
        }
    }