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();
            }
        }
        /// <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;
        }
 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(), "");
     }
 }
        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(), "");
            }
        }
 /// <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(), "");
     }
 }
        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(), "");
            }
        }
Esempio n. 7
0
        protected void _gridHorario_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            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
            _btnGuardarHorario.Enabled = true;
            _controladorHorario = new ControladorHorario();
            if ((int)ViewState["filaEditada"] > -1) // Verificar si hay alguna celda editada para guardar lo que hay en esta
            {
                String textoTurnoViejo =  ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[1]).Text;
                String textoTurnoNuevo = ((TextBox)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[3]).Text;
                int idTurno = -1;
                if ((textoTurnoViejo.Equals("")) && (!textoTurnoNuevo.Equals(""))) // Un turno nuevo
                {
                    char dia = ' ';
                    switch ((int)ViewState["columnaEditada"])
                    {
                        case 2:   // Lunes
                            dia = 'L';
                            break;
                        case 3:   // Martes
                            dia = 'K';
                            break;
                        case 4:   // Miércoles
                            dia = 'M';
                            break;
                        case 5:   // Jueves
                            dia = 'J';
                            break;
                        case 6:   // Viernes
                            dia = 'V';
                            break;
                        case 7:   // Sábado
                            dia = 'S';
                            break;
                        case 8:   // Domingo
                            dia = 'D';
                            break;
                    }
                    String hora = ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[1].Controls[1]).Text;
                    String[] horas = hora.Split(' ');
                    _realizoCambio = _controladorHorario.insertarTurno(dia, horas[0], horas[2], textoTurnoNuevo, (int)ViewState["idHorario"]);
                    if (_realizoCambio)
                    {
                        _lblMensaje.Text = "Se ha insertado con éxito el turno";
                        _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
                        _lblMensaje.Visible = true;
                        _imgMensaje.Visible = true;
                    }
                    else
                    {
                        _lblMensaje.Text = "Error al crear el nuevo turno";
                        _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                        _lblMensaje.Visible = true;
                        _imgMensaje.Visible = true;
                    }
                }
                else if ((!textoTurnoNuevo.Equals(textoTurnoViejo)) && (!textoTurnoNuevo.Equals(""))) // Si cambio el dato del turno
                {
                    String hola = ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[5]).Text;
                    idTurno = Convert.ToInt32(hola);
                    _realizoCambio = _controladorHorario.modificarTurno(idTurno, textoTurnoNuevo);
                    if (_realizoCambio)
                    {
                        _lblMensaje.Text = "Se ha cambiado el turno con éxito";
                        _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
                        _lblMensaje.Visible = true;
                        _imgMensaje.Visible = true;
                    }
                    else
                    {
                        _lblMensaje.Text = "Error al modificar el turno";
                        _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                        _lblMensaje.Visible = true;
                        _imgMensaje.Visible = true;
                    }
                }
                else if ((!textoTurnoViejo.Equals("")) && (textoTurnoNuevo.Equals(""))) // Si elminó el dato del turno
                {
                    idTurno = Convert.ToInt32(((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[5]).Text);
                    _realizoCambio = _controladorHorario.borrarTurno(idTurno);
                    if (_realizoCambio)
                    {
                        _lblMensaje.Text = "Se ha borrado el turno con éxito";
                        _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
                        _lblMensaje.Visible = true;
                        _imgMensaje.Visible = true;
                    }
                    else
                    {
                        _lblMensaje.Text = "Error al intentar borrar el turno";
                        _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                        _lblMensaje.Visible = true;
                        _imgMensaje.Visible = true;
                    }
                }
                ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[1]).Text = textoTurnoNuevo;
                _gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[1].Visible = true;
                _gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[3].Visible = false;
            }
            // 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 = ((Label)controlDesplegable).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
            if (controlEditable is TextBox)
            {
                ((TextBox)controlEditable).Attributes.Add("onfocus", "this.select()");
            }
            ViewState["filaEditada"] = fila; // Guardas la fila de la celda que se editó
            ViewState["columnaEditada"] = columna; // Guardar la columna de la celda que se editó
        }
Esempio n. 8
0
 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);
         _controladorHorario = new ControladorHorario();
         String grupoUsuario = _sesion.obtenerGrupoUsuario(_cookieActual);
         if ((grupoUsuario.Equals("prof")) || (grupoUsuario.Equals("users")) || (grupoUsuario.Equals("ests")) ||
                 (grupoUsuario.Equals("operadores"))) // Reportar si un usuario autenticado intenta hacer ingreso a una página que no tiene permiso
         {
             Notificacion notificacion = new Notificacion(); // Enviar correo informando de la intrusión
             notificacion.enviarCorreo("Se ha intentado realizar un acceso no permitido por parte del usuario " + _sesion.obtenerLoginUsuario(_cookieActual) + " a la página de CrearHorario.aspx", "*****@*****.**", "Violación de Seguridad");
             Response.Redirect("../Compartido/AccesoDenegado.aspx");
         }
         ViewState["filaEditada"] = -1;
         ViewState["columnaEditada"] = -1;
         ViewState["idHorario"] = -1;
         _tablaTurnos = new DataTable();
         _listaLugares = _controladorHorario.consultarLugares(); // Obtener los lugares
         if (_listaLugares != null)
         {
             if (_listaLugares.Count == 0)
             {
                 _lblMensaje.Text = "No hay lugares registrados en el sistema";
                 _imgMensaje.ImageUrl = "~/Imagenes/Advertencia.png";
                 _lblMensaje.Visible = true;
                 _imgMensaje.Visible = true;
             }
             else
             {
                 _ddlLugar.Items.Add("Seleccionar");
                 for (int i = 0; i < _listaLugares.Count; i++) // Cargar los lugares
                     _ddlLugar.Items.Add(_listaLugares.ElementAt(i).ElementAt(1));
             }
         }
         else
         {
             _lblMensaje.Text = "Se ha presentado un error al cargar la información de los lugares";
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
         _listaSemestres = _controladorHorario.consultarSemestres(); // Obtener los semestres
         if (_listaSemestres != null)
         {
             if (_listaSemestres.Count == 0)
             {
                 _lblMensaje.Text = "No hay semestres registrados en el sistema";
                 _lblMensaje.Visible = true;
                 _imgMensaje.Visible = true;
             }
             else
             {
                 _ddlSemestre.Items.Add("Seleccionar");
                 for (int i = 0; i < _listaSemestres.Count; i++) // Cargar los semestres
                     _ddlSemestre.Items.Add(_listaSemestres.ElementAt(i).ElementAt(1));
             }
         }
         else
         {
             _lblMensaje.Text = "Se ha presentado un error al cargar la información de los semestres";
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
         int horarioHabilitado = _controladorHorario.consultarHorarioActivo();
         if (horarioHabilitado != -1)
         {
             if (horarioHabilitado == 0) // No hay horarios habilitados
             {
                 _btnHorarioDisponibilidad.Enabled = true;
                 _btnDeshabilitarHorarioDisponibilidad.Enabled = false;
             }
             else // Hay horarios habilitados
             {
                 _btnHorarioDisponibilidad.Enabled = false;
                 _btnDeshabilitarHorarioDisponibilidad.Enabled = true;
             }
         }
         else // Si hubo un error al encontrar un horario de disponibilidad habilitado
         {
             _lblMensaje.Text = "Error al determinar si hay horarios de disponibilidad habilitados";
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
     }
 }
Esempio n. 9
0
 /// <summary>
 /// Método para manejar el evento del botón _btnHorarioDisponibilidad
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void _btnHorarioDisponibilidad_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);
     _controladorHorario = new ControladorHorario();
     Boolean resultado = _controladorHorario.crearHorarioDisponibilidad(); // Enviar al controlador la petición
     if (resultado)
     {
         _lblMensaje.Text = "Se ha creado con éxito el horario";
         _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
         _lblMensaje.Visible = true;
         _imgMensaje.Visible = true;
         _btnHorarioDisponibilidad.Enabled = false;
         _btnDeshabilitarHorarioDisponibilidad.Enabled = true;
     }
     else
     {
         _lblMensaje.Text = "Se ha presentado un error al crear el horario";
         _lblMensaje.Visible = true;
         _imgMensaje.Visible = true;
     }
 }
Esempio n. 10
0
 /// <summary>
 /// Método que se encarga de cargar el horario de acuerdo a un lugar escogido
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void _ddlLugar_SelectedIndexChanged(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);
     ViewState["filaEditada"] = -1;
     ViewState["columnaEditada"] = -1;
     _btnCrearHorario.Enabled = true;
     _controladorHorario = new ControladorHorario();
     if (_ddlLugar.SelectedIndex != 0)
     {
         ViewState["idHorario"] = _controladorHorario.consultarHorario(Convert.ToInt32(_listaLugares[_ddlLugar.SelectedIndex - 1][0]), Convert.ToInt32(_listaSemestres[_ddlSemestre.SelectedIndex - 1][0]));
         if ((int)ViewState["idHorario"] != -1)
         {
             if ((int)ViewState["idHorario"] != 0)
             {
                 _listaTurnos = _controladorHorario.consultarTurnosHorario(Convert.ToInt32(_listaLugares[_ddlLugar.SelectedIndex - 1][0]), Convert.ToInt32(_listaSemestres[_ddlSemestre.SelectedIndex - 1][0]));
                 if (_listaTurnos == null)
                 {
                     _lblMensaje.Text = "Ha habido un error al obtener los turnos del horario";
                     _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
                     _lblMensaje.Visible = true;
                     _imgMensaje.Visible = true;
                 }
                 else if (_listaTurnos.Count != 0) // Hay turno
                     llenarTabla(1); // Llenar las tablas
                 else // No hay turnos
                     llenarTabla(0); // Llenar las tablas
                 _btnCrearHorario.Enabled = false;
                 _gridHorario.Visible = true;
                 _lblMensaje.Visible = false;
                 _imgMensaje.Visible = false;
             }
             else
             {
                 _btnCrearHorario.Enabled = true;
                 _gridHorario.Visible = false;
             }
         }
         else if ((int)ViewState["idHorario"] == -1)
         {
             _lblMensaje.Text = "Ha habido un error al obtener el horario";
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
     }
     else
         _btnCrearHorario.Enabled = false;
 }
Esempio n. 11
0
 protected void _btnGuardarHorario_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);
     _controladorHorario = new ControladorHorario();
     String textoTurnoViejo = ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[1]).Text;
     String textoTurnoNuevo = ((TextBox)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[3]).Text;
     int idTurno = -1;
     if ((textoTurnoViejo.Equals("")) && (!textoTurnoNuevo.Equals(""))) // Un turno nuevo
     {
         char dia = ' ';
         switch ((int)ViewState["columnaEditada"])
         {
             case 2:   // Lunes
                 dia = 'L';
                 break;
             case 3:   // Martes
                 dia = 'K';
                 break;
             case 4:   // Miércoles
                 dia = 'M';
                 break;
             case 5:   // Jueves
                 dia = 'J';
                 break;
             case 6:   // Viernes
                 dia = 'V';
                 break;
             case 7:   // Sábado
                 dia = 'S';
                 break;
             case 8:   // Domingo
                 dia = 'D';
                 break;
         }
         String hora = ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[1].Controls[1]).Text;
         String[] horas = hora.Split(' ');
         _realizoCambio = _controladorHorario.insertarTurno(dia, horas[0], horas[2], textoTurnoNuevo, (int)ViewState["idHorario"]);
         if (_realizoCambio)
         {
             _lblMensaje.Text = "Se ha insertado con éxito el turno";
             _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
         else
         {
             _lblMensaje.Text = "Error al crear el nuevo turno";
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
     }
     else if ((!textoTurnoNuevo.Equals(textoTurnoViejo)) && (!textoTurnoNuevo.Equals(""))) // Si cambio el dato del turno
     {
         idTurno = Convert.ToInt32(((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[5]).Text);
         _realizoCambio = _controladorHorario.modificarTurno(idTurno, textoTurnoNuevo);
         if (_realizoCambio)
         {
             _lblMensaje.Text = "Se ha cambiado el turno con éxito";
             _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
         else
         {
             _lblMensaje.Text = "Error al modificar el turno";
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
     }
     else if ((!textoTurnoViejo.Equals("")) && (textoTurnoNuevo.Equals(""))) // Si elminó el dato del turno
     {
         idTurno = Convert.ToInt32(((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[5]).Text);
         _realizoCambio = _controladorHorario.borrarTurno(idTurno);
         if (_realizoCambio)
         {
             _lblMensaje.Text = "Se ha borrado el turno con éxito";
             _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
         else
         {
             _lblMensaje.Text = "Error al intentar borrar el turno";
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
     }
     ((Label)_gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[1]).Text = textoTurnoNuevo;
     _gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[1].Visible = true;
     _gridHorario.Rows[(int)ViewState["filaEditada"]].Cells[(int)ViewState["columnaEditada"]].Controls[3].Visible = false;
     _btnGuardarHorario.Enabled = false;
 }
Esempio n. 12
0
 protected void _btnExportar_Click(object sender, EventArgs e)
 {
     _controladorHorario = new ControladorHorario();
     int idHorario = _controladorHorario.consultarHorarioDisDeshabilitado();
     if (idHorario != -1)
     {
         DataTable tabla = new DataTable();
         // Crear las columnas de la tabla
         tabla.Columns.Add(new DataColumn("Turno"));
         tabla.Columns.Add(new DataColumn("Lunes"));
         tabla.Columns.Add(new DataColumn("Martes"));
         tabla.Columns.Add(new DataColumn("Miércoles"));
         tabla.Columns.Add(new DataColumn("Jueves"));
         tabla.Columns.Add(new DataColumn("Viernes"));
         tabla.Columns.Add(new DataColumn("Sábado"));
         tabla.Columns.Add(new DataColumn("Domingo"));
         // Llenar la tabla, solo con la columna de turno con valor
         tabla.Rows.Add("7:30 a.m - 11:30 a.m", "", "", "", "", "", "");
         tabla.Rows.Add("11:30 a.m - 3:30 p.m", "", "", "", "", "", "");
         tabla.Rows.Add("3:30 p.m - 7:30 p.m", "", "", "", "", "", "");
         tabla.Rows.Add("7:30 p.m - 10:30 p.m", "", "", "", "", "", "");
         List<List<object>> turnos = _controladorHorario.obtenerTurnosDisponibilidad(idHorario);
         if (turnos.Count > 0)
             ordenarTurnos(tabla, turnos);
         DataTable dtTemp = new DataTable(); // Crear una tabla temporal
         // Creando los encabezados de las filas
         dtTemp.Columns.Add("<b>Turno</b>");
         dtTemp.Columns.Add("<b>Lunes</b>");
         dtTemp.Columns.Add("<b>Martes</b>");
         dtTemp.Columns.Add("<b>Miercoles</b>");
         dtTemp.Columns.Add("<b>Jueves</b>");
         dtTemp.Columns.Add("<b>Viernes</b>");
         dtTemp.Columns.Add("<b>Sabado</b>");
         dtTemp.Columns.Add("<b>Domingo</b>");
         DataRow fila;
         for (int i = 0; i < tabla.Rows.Count; i++)
         {
             fila = dtTemp.NewRow();
             fila[0] = tabla.Rows[i][0].ToString(); // Turno
             fila[1] = tabla.Rows[i][1].ToString(); // Lunes
             fila[2] = tabla.Rows[i][2].ToString(); // Martes
             fila[3] = tabla.Rows[i][3].ToString(); // Miércoles
             fila[4] = tabla.Rows[i][4].ToString(); // Jueves
             fila[5] = tabla.Rows[i][5].ToString(); // Viernes
             fila[6] = tabla.Rows[i][6].ToString(); // Sábado
             fila[7] = tabla.Rows[i][7].ToString(); // Domingo
             dtTemp.Rows.Add(fila);
         }
         // Grid temporal
         DataGrid dg = new DataGrid { DataSource = dtTemp };
         dg.DataBind();
         Boolean resultado = ExportToExcel("Horario Disponibilidad.xls", dg); // Exportar
         if (!resultado)
         {
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Text = "No se ha podido exportar el archivo";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
         dg = null;
         dg.Dispose();
     }
     else
     {
         _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
         _lblMensaje.Text = "No se ha podido obtener el horario de disponiblidad vigente";
         _lblMensaje.Visible = true;
         _imgMensaje.Visible = true;
     }
 }
Esempio n. 13
0
 /// <summary>
 /// Método que se encarga de manejar el evento del botón _btnCrearHorario
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void _btnCrearHorario_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 ((_ddlSemestre.SelectedIndex != 0) && (_ddlLugar.SelectedIndex != 0))
     {
         _controladorHorario = new ControladorHorario();
         ViewState["idHorario"] = _controladorHorario.crearHorario(Convert.ToInt32(_listaLugares[_ddlLugar.SelectedIndex-1][0]), Convert.ToInt32(_listaSemestres[_ddlSemestre.SelectedIndex-1][0]));
         if ((int)ViewState["idHorario"] != -1)
         {
             _lblMensaje.Text = "Se ha creado el horario con éxito";
             _imgMensaje.ImageUrl = "~/Imagenes/ok.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
             _btnCrearHorario.Enabled = false;
             llenarTabla(0);
             _gridHorario.Visible = true;
         }
         else
         {
             _lblMensaje.Text = "Ha habido un error al crear el horario";
             _imgMensaje.ImageUrl = "~/Imagenes/Error.png";
             _lblMensaje.Visible = true;
             _imgMensaje.Visible = true;
         }
     }
 }
Esempio n. 14
0
 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;
     }
 }
Esempio n. 15
0
 /// <summary>
 /// Método que se encarga de exportar un DataTable a un documento de excel
 /// </summary>
 /// <param name="nombreArchivo"></param>
 /// <param name="dg"></param>
 /// <returns></returns>
 private Boolean ExportToExcel(string nombreArchivo, DataGrid dg)
 {
     try
     {
         Response.ClearContent();
         Response.AddHeader("content-disposition", "attachment; filename=" + nombreArchivo);
         Response.ContentType = "application/excel";
         var sw = new System.IO.StringWriter();
         var htw = new HtmlTextWriter(sw);
         dg.RenderControl(htw);
         Response.Write(sw.ToString());
         Response.End();
         return true;
     }
     catch (Exception e)
     {
         _controladorHorario = new ControladorHorario();
         _controladorHorario.insertarBitacoraError(e.ToString(), "");
         return false;
     }
 }
Esempio n. 16
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;
                }
            }
        }
Esempio n. 17
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
     {
         int columna = 0; // Para saber en cual columna (dia) se encuentra el turno
         foreach (List<object> turno in turnos)
         {
             switch (Convert.ToChar(turno[0])) // Se busca primero el día en el que se encuentra el turno
             {
                 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;
             }
             if (turno[1].ToString().Equals("07:30:00")) // Se revisa la hora de inicio del turno y se agrega el nombre al horario
                 horario.Rows[0][columna] = horario.Rows[0][columna].ToString() + turno[2].ToString() + "<br/>";
             else if (turno[1].ToString().Equals("11:30:00"))
                 horario.Rows[1][columna] = horario.Rows[1][columna].ToString() + turno[2].ToString() + "<br/>";
             else if (turno[1].ToString().Equals("15:30:00"))
                 horario.Rows[2][columna] = horario.Rows[2][columna].ToString() + turno[2].ToString() + "<br/>";
             else if (turno[1].ToString().Equals("19:30:00"))
                 horario.Rows[3][columna] = horario.Rows[3][columna].ToString() + turno[2].ToString() + "<br/>";
         }
     }
     catch (Exception ex)
     {
         _controladorHorario = new ControladorHorario();
         _controladorHorario.insertarBitacoraError(ex.ToString(), "");
     }
 }