示例#1
0
        private ControladorHorario _controlador;  //Controlador de la Interfaz

        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                _sesion       = new Sesion();
                _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
                if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
                {
                    Response.Redirect("../Autentificacion/Login.aspx"); //
                }
                else // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
                {
                    Response.SetCookie(_cookieActual);
                }
                _controlador = new ControladorHorario();
                string grupoUsuario = _sesion.obtenerGrupoUsuario(Request.Cookies["PS"]);
                if ((grupoUsuario.Equals("prof")) || (grupoUsuario.Equals("users")) || (grupoUsuario.Equals("ests")) || (grupoUsuario.Equals("soporte")) ||
                    (grupoUsuario.Equals("jefeti")))
                {
                    _controlador.insertarBitacoraError("Se ha intentado realizar un acceso no permitido por parte del usuario " + _sesion.obtenerLoginUsuario(Request.Cookies["PS"]) + " a la página de RegistroUsoLaboratorio.aspx", "");
                    Response.Redirect("../Compartido/AccesoDenegado.aspx");
                }
                ViewState["FE"]         = -1;                                            //ultima fila editada en el grid
                ViewState["CE"]         = -1;                                            //ultima columna editada en el grid
                ViewState["IH"]         = _controlador.consultarHorarioDisponibilidad(); //Id del horario de disponibilidad, guardado en el viewState
                _gridHorario.DataSource = cargarHorarioDisponibilidad((int)ViewState["IH"]);
                _gridHorario.DataBind();
            }
        }
示例#2
0
        protected void _btnConsultarHorario_Click(object sender, EventArgs e)
        {
            _sesion       = new Sesion();
            _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
            if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
            {
                Response.Redirect("../Autentificacion/Login.aspx"); //
            }
            else // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
            {
                Response.SetCookie(_cookieActual);
            }

            if (_ddlLugar.SelectedIndex > 0)
            {
                if ((int)ViewState["SA"] > 0)
                {
                    _controladorHorario = new ControladorHorario();
                    _listaTurnos        = _controladorHorario.consultarTurnosHorario(Convert.ToInt32(_listaLugares[_ddlLugar.SelectedIndex - 1][0]), (int)ViewState["SA"]);
                    if ((_listaTurnos != null) && (_listaTurnos.Count > 0))
                    {
                        llenarTabla(1); // Llenar las tablas
                        _lblMensaje.Visible  = false;
                        _imgMensaje.Visible  = false;
                        _gridHorario.Visible = true;
                        _btnExportar.Enabled = true;
                    }
                    else if (_listaTurnos == null)
                    {
                        _lblMensaje.Text     = "Ha habido un error al obtener el horario";
                        _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                        _lblMensaje.Visible  = true;
                        _imgMensaje.Visible  = true;
                        _gridHorario.Visible = false;
                        _btnExportar.Enabled = false;
                    }
                    else
                    {
                        _lblMensaje.Text     = "No existe un horario para el lugar indicado";
                        _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                        _lblMensaje.Visible  = true;
                        _imgMensaje.Visible  = true;
                        _gridHorario.Visible = false;
                        _btnExportar.Enabled = false;
                    }
                }
                else
                {
                    _lblMensaje.Text     = "No hay semestres habilitados para consulta";
                    _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                    _lblMensaje.Visible  = true;
                    _imgMensaje.Visible  = true;
                    _gridHorario.Visible = false;
                    _btnExportar.Enabled = false;
                }
            }
        }
示例#3
0
        protected void _gridHorario_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                _sesion       = new Sesion();
                _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
                if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
                {
                    Response.Redirect("../Autentificacion/Login.aspx"); //
                }
                else // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
                {
                    Response.SetCookie(_cookieActual);
                }
                Control controlDesplegable; //Label que se encuentra en cada celda del grid, se utiliza para lo que se va a desplegar en la celda
                Control controlEditable;    //Textbox que se enceuntra en cada celda del grid, se utiliza para poder editar la celda

                //Verificar si hay alguna celda editada para guardar lo que hay en esta
                if ((int)ViewState["FE"] > -1)
                {
                    controlDesplegable = _gridHorario.Rows[(int)ViewState["FE"]].Cells[(int)ViewState["CE"]].Controls[1];
                    controlEditable    = _gridHorario.Rows[(int)ViewState["FE"]].Cells[(int)ViewState["CE"]].Controls[3];
                    ((Label)controlDesplegable).Text = ((TextBox)controlEditable).Text; //Copiar lo que hay en el controlEditable
                    controlDesplegable.Visible       = true;                            //Mostrar el controlDesplegable
                    controlEditable.Visible          = false;                           //Ocultar el controlEditable
                }

                // Obtener la fila y columna de la celda
                int fila    = int.Parse(e.CommandArgument.ToString());
                int columna = int.Parse(Request.Form["__EVENTARGUMENT"]);

                // Obtener el label de la celda (control desplegable) y ocultarlo
                controlDesplegable         = _gridHorario.Rows[fila].Cells[columna].Controls[1];
                controlDesplegable.Visible = false;
                // Obtener el textbox de la celda (control editable) y hacelo visible, para que se pueda utilizar
                controlEditable = _gridHorario.Rows[fila].Cells[columna].Controls[3];
                ((TextBox)controlEditable).Text = ((TextBox)controlEditable).Text.Replace("<br/>", " ");
                controlEditable.Visible         = true;

                // Setear el foco al control editable
                ClientScript.RegisterStartupScript(GetType(), "SetFocus", "<script>document.getElementById('" + controlEditable.ClientID + "').focus();</script>");
                // Seleccionar el texto del control desplegable, esto para que este en foco
                ((TextBox)controlEditable).Attributes.Add("onfocus", "this.select()");
                ViewState["FE"] = fila;    // Guardas la fila de la celda que se edito
                ViewState["CE"] = columna; //Guardar la columna de la celda que se edito
            }
            catch (Exception ex)
            {
                _controlador = new ControladorHorario();
                _controlador.insertarBitacoraError(ex.ToString(), "");
            }
        }
示例#4
0
        /// <summary>
        /// Método que se encarga de cargar el horario de disponibiliadad
        /// </summary>
        /// <returns>Un datatable con el horario</returns>
        public DataTable cargarHorarioDisponibilidad(int idHorario)
        {
            DataTable resultado = new DataTable();

            try
            {
                if (idHorario == 0)
                {
                    _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                    _lblMensaje.Text     = "Por el momento no hay horarios de disponibilidad habilitados.";
                    _imgMensaje.Visible  = true;
                    _lblMensaje.Visible  = true;
                    _btnHorario.Visible  = false;
                    _btnGuardar.Visible  = false;
                }
                else
                {
                    _controlador = new ControladorHorario();
                    //Crear las columnas de la tabla
                    resultado.Columns.Add(new DataColumn("Turno"));
                    resultado.Columns.Add(new DataColumn("Lunes"));
                    resultado.Columns.Add(new DataColumn("Martes"));
                    resultado.Columns.Add(new DataColumn("Miércoles"));
                    resultado.Columns.Add(new DataColumn("Jueves"));
                    resultado.Columns.Add(new DataColumn("Viernes"));
                    resultado.Columns.Add(new DataColumn("Sábado"));

                    //Llenar la tabla, solo con la columna de turno con valor
                    resultado.Rows.Add("7:30 a.m - 11:30 a.m", "", "", "", "", "", "");
                    resultado.Rows.Add("11:30 a.m - 3:30 p.m", "", "", "", "", "", "");
                    resultado.Rows.Add("3:30 p.m - 7:30 p.m", "", "", "", "", "", "");
                    resultado.Rows.Add("7:30 p.m - 10:30 p.m", "", "", "", "", "", "");

                    List <List <object> > turnos = _controlador.obtenerTurnosDisponibilidad(idHorario);
                    if (turnos.Count > 0)
                    {
                        ordenarTurnos(resultado, turnos);
                    }
                }
            }
            catch (Exception ex)
            {
                _controlador = new ControladorHorario();
                _controlador.insertarBitacoraError(ex.ToString(), "");
            }
            return(resultado);
        }
示例#5
0
        private static List <List <Object> > _listaTurnos;  // Lista de los turnos del horario

        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                return;
            }
            _sesion       = new Sesion();
            _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
            if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
            {
                Response.Redirect("../Autentificacion/Login.aspx"); //
            }
            else // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
            {
                Response.SetCookie(_cookieActual);
            }
            _controladorHorario = new ControladorHorario();
            ViewState["SA"]     = _controladorHorario.consultarSemestreActivo(); //Semestre que se encuentra activo, se guarda en un ViewState para mayor facilidad
            _listaLugares       = _controladorHorario.consultarLugares();        // Obtener los lugares
            if (_listaLugares != null)
            {
                if (_listaLugares.Count == 0)
                {
                    _lblMensaje.Text    = "No hay lugares registrados en el sistema";
                    _lblMensaje.Visible = true;
                    _imgMensaje.Visible = true;
                }
                else
                {
                    _ddlLugar.Items.Add("Seleccionar");
                    for (int t = 0; t < _listaLugares.Count; t++)
                    {
                        var temp = new ListItem(_listaLugares[t][1].ToString(), _listaLugares[t][1].ToString());
                        _ddlLugar.Items.Add(temp);
                    }
                }
            }
            else
            {
                _lblMensaje.Text    = "Se ha presentado un error al cargar la información de los lugares";
                _lblMensaje.Visible = true;
                _imgMensaje.Visible = true;
            }
        }
示例#6
0
        protected void _btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                _sesion       = new Sesion();
                _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
                if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
                {
                    Response.Redirect("../Autentificacion/Login.aspx"); //
                }
                else // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
                {
                    Response.SetCookie(_cookieActual);
                }
                Control controlEditable;    //Textbox que se enceuntra en cada celda del grid, se utiliza para poder editar la celda
                List <List <object> > turnos = new List <List <object> >();
                List <object>         turno;
                for (int k = 0; k < _gridHorario.Rows.Count; k++)
                {
                    for (int i = 2; i < _gridHorario.Rows[k].Cells.Count; i++)
                    {
                        controlEditable = _gridHorario.Rows[k].Cells[i].Controls[3];
                        if (!((TextBox)controlEditable).Text.Equals(""))
                        {
                            turno = new List <object>();
                            turno.Add((int)ViewState["IH"]);  //Obtener el PK del horario
                            // Obtener el día
                            switch (i)
                            {
                            case 2:
                                turno.Add('L');
                                break;

                            case 3:
                                turno.Add('K');
                                break;

                            case 4:
                                turno.Add('M');
                                break;

                            case 5:
                                turno.Add('J');
                                break;

                            case 6:
                                turno.Add('V');
                                break;

                            case 7:
                                turno.Add('S');
                                break;
                            }
                            //Obtener las hora
                            switch (k)
                            {
                            case 0:
                                turno.Add("7:30");
                                turno.Add("11:30");
                                break;

                            case 1:
                                turno.Add("11:30");
                                turno.Add("15:30");
                                break;

                            case 2:
                                turno.Add("15:30");
                                turno.Add("19:30");
                                break;

                            case 3:
                                turno.Add("19:30");
                                turno.Add("22:30");
                                break;
                            }
                            turno.Add(((TextBox)controlEditable).Text);                    //Obtener el nombre
                            turno.Add(_sesion.obtenerLoginUsuario(Request.Cookies["PS"])); //Obtener el login
                            turnos.Add(turno);                                             //Agregar el turno a la lista de turnos
                        }
                    }
                }
                // Se revisa que haya al menos un turno en el horario
                if (turnos.Count > 0)
                {
                    _controlador = new ControladorHorario();
                    bool completado = _controlador.insertarTurnosDisponibilidad(turnos);
                    if (completado)
                    {
                        _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
                        _lblMensaje.Text     = "Se ha guardado su horario con exito.";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                    }
                    else
                    {
                        _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                        _lblMensaje.Text     = "No se pudo guardar su horario. Por favor buelva a intentar más tarde.";
                        _imgMensaje.Visible  = true;
                        _lblMensaje.Visible  = true;
                    }
                    Session["turnosUsuari"] = new List <List <object> >();  //Limpiar los turnos para que no los buelva a cargar
                    _gridHorario.DataSource = cargarHorarioDisponibilidad((int)ViewState["IH"]);
                    _gridHorario.DataBind();
                    _btnHorario.Enabled = true;
                    _btnGuardar.Enabled = false;
                }
            }
            catch (Exception ex)    // Si algo falla se reporta el error en la Bitácora de Errores del sistema
            {
                _controlador = new ControladorHorario();
                _controlador.insertarBitacoraError(ex.ToString(), "");
            }
        }
示例#7
0
        protected void _btnHorario_Click(object sender, EventArgs e)
        {
            try
            {
                _sesion       = new Sesion();
                _cookieActual = _sesion.verificarValidez(Request.Cookies["PS"]);
                if (_cookieActual == null)                              // Si la cookie expira redirecciona a la pantalla de Login
                {
                    Response.Redirect("../Autentificacion/Login.aspx"); //
                }
                else // Volver a crear la cookie en el cliente, con el nuevo tiempo de expiración
                {
                    Response.SetCookie(_cookieActual);
                }
                _gridHorario.Enabled = true;
                _imgMensaje.Visible  = false;
                _lblMensaje.Visible  = false;
                DataTable limpia = new DataTable(); // Tabla en limpio para que el usuario ingrese sus turnos

                //Crear las columnas de la tabla
                limpia.Columns.Add(new DataColumn("Turno"));
                limpia.Columns.Add(new DataColumn("Lunes"));
                limpia.Columns.Add(new DataColumn("Martes"));
                limpia.Columns.Add(new DataColumn("Miércoles"));
                limpia.Columns.Add(new DataColumn("Jueves"));
                limpia.Columns.Add(new DataColumn("Viernes"));
                limpia.Columns.Add(new DataColumn("Sábado"));

                //Llenar la tabla, solo con la columna de turno con valor
                limpia.Rows.Add("7:30 a.m - 11:30 a.m", "", "", "", "", "", "");
                limpia.Rows.Add("11:30 a.m - 3:30 p.m", "", "", "", "", "", "");
                limpia.Rows.Add("3:30 p.m - 7:30 p.m", "", "", "", "", "", "");
                limpia.Rows.Add("7:30 p.m - 10:30 p.m", "", "", "", "", "", "");
                ordenarTurnos(limpia, ((List <List <object> >)Session["turnosUsuari"]));
                _gridHorario.DataSource = limpia;
                _gridHorario.DataBind();

                _btnGuardar.Enabled = true;  //Habilitar boton guardar
                _btnHorario.Enabled = false; //Deshabilitar boton ingresar horario disponibilidad

                // Habilitar el click en los campos del gridview
                foreach (GridViewRow fila in _gridHorario.Rows)
                {
                    // Obtener el LinkButton de la primera celda
                    LinkButton boton = (LinkButton)fila.Cells[0].Controls[0];
                    // Obtner el javascript que utiliza el LinkButton
                    string jsBoton = ClientScript.GetPostBackClientHyperlink(boton, "");

                    // Añadir los eventos a todas las celdas que se pueden editar
                    int primeraCeldaEditar = 2; //desde cual celda se va a empesar a añadir los eventos
                    for (int i = primeraCeldaEditar; i < fila.Cells.Count; i++)
                    {
                        // Verificar que no se pueda poner un turno el sabado en la noche
                        if ((((Label)fila.Cells[1].Controls[1]).Text.Equals("7:30 p.m - 10:30 p.m")) && (i == 7))
                        {
                            continue;
                        }
                        else
                        {
                            // Añadir el indice de la columna como parametro para el evento
                            string js = jsBoton.Insert(jsBoton.Length - 2, i.ToString());
                            // Añadir el script anterior al atributo onclick de la celda
                            fila.Cells[i].Attributes["onclick"] = js;
                            // Añadir el estilo del cursor a la celda
                            fila.Cells[i].Attributes["style"] += "cursor:pointer;cursor:hand;";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _controlador = new ControladorHorario();
                _controlador.insertarBitacoraError(ex.ToString(), "");
            }
        }
示例#8
0
        /// <summary>
        /// Método que se encarga de llenar el horario con los turnos que ya se han realizado
        /// </summary>
        /// <param name="horario">DataTable que contendra el horario</param>
        /// <param name="turnos">Lista de listas de objetos que contiene los turnos, la lista contienen (Dia, HoraInicio, Nombre, Login)</param>
        public void ordenarTurnos(DataTable horario, List <List <object> > turnos)
        {
            try
            {
                _sesion = new Sesion();
                string loginUsuario = _sesion.obtenerLoginUsuario(Request.Cookies["PS"]);
                List <List <object> > turnoUsuario = new List <List <object> >();
                int columna = 0;    //Para saber en cual columna (dia) se encuentra el turno
                foreach (List <object> turno in turnos)
                {
                    //Se busca primero el día en el que se encuentra el turno
                    switch (Convert.ToChar(turno[0]))
                    {
                    case 'L':       //Lunes
                        columna = 1;
                        break;

                    case 'K':       //Martes
                        columna = 2;
                        break;

                    case 'M':       //Miercoles
                        columna = 3;
                        break;

                    case 'J':       //Jueves
                        columna = 4;
                        break;

                    case 'V':       //Viernes
                        columna = 5;
                        break;

                    case 'S':       //Sabado
                        columna = 6;
                        break;
                    }
                    //Se revisa la hora de inicio del turno y se agrega el nombre al horario
                    if (turno[1].ToString().Equals("07:30:00"))
                    {
                        horario.Rows[0][columna] = horario.Rows[0][columna].ToString() + turno[2].ToString() + "<br/>";
                        // Verificar si el turno pertence al usuario
                        if (turno[3].ToString().Equals(loginUsuario))
                        {
                            // Si pertenece lo agrega a la lista que contiene los turnos que el usuario posee
                            turnoUsuario.Add(turno);
                        }
                    }
                    else if (turno[1].ToString().Equals("11:30:00"))
                    {
                        horario.Rows[1][columna] = horario.Rows[1][columna].ToString() + turno[2].ToString() + "<br/>";
                        // Verificar si el turno pertence al usuario
                        if (turno[3].ToString().Equals(loginUsuario))
                        {
                            // Si pertenece lo agrega a la lista que contiene los turnos que el usuario posee
                            turnoUsuario.Add(turno);
                        }
                    }
                    else if (turno[1].ToString().Equals("15:30:00"))
                    {
                        horario.Rows[2][columna] = horario.Rows[2][columna].ToString() + turno[2].ToString() + "<br/>";
                        // Verificar si el turno pertence al usuario
                        if (turno[3].ToString().Equals(loginUsuario))
                        {
                            // Si pertenece lo agrega a la lista que contiene los turnos que el usuario posee
                            turnoUsuario.Add(turno);
                        }
                    }
                    else if (turno[1].ToString().Equals("19:30:00"))
                    {
                        horario.Rows[3][columna] = horario.Rows[3][columna].ToString() + turno[2].ToString() + "<br/>";
                        // Verificar si el turno pertence al usuario
                        if (turno[3].ToString().Equals(loginUsuario))
                        {
                            // Si pertenece lo agrega a la lista que contiene los turnos que el usuario posee
                            turnoUsuario.Add(turno);
                        }
                    }
                }
                Session["turnosUsuari"] = turnoUsuario;     //Turnos que el usuario haya ingresado previamente, se guardan en un session
            }
            catch (Exception ex)
            {
                _controlador = new ControladorHorario();
                _controlador.insertarBitacoraError(ex.ToString(), "");
            }
        }