示例#1
0
        /// <summary>
        /// Para cuando se hace click en cambiar horario
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cambiarHorarioButton_Click(object sender, EventArgs e)
        {
            try
            {
                if (asignadoTable.SelectedRows.Count == 0)
                {
                    throw new NoSeleccionoFilaException();
                }

                //Obtengo las celdas de la fila seleccionada
                DataGridViewCellCollection celdas = asignadoTable.SelectedRows[0].Cells;

                //La quinta celda corresponde al valor de confirmacion
                if (celdas[5].Value.ToString().Equals("NO"))
                {
                    throw new CambioHorarioInvalidoException();
                }

                //Procedo a armar el turnoDTO
                HorarioHabitualDTO turno = new HorarioHabitualDTO();
                turno.Area       = celdas[0].Value.ToString();
                turno.Dia        = celdas[1].Value.ToString();
                turno.Ingreso    = new Horario(celdas[2].Value.ToString());
                turno.Egreso     = new Horario(celdas[3].Value.ToString());
                turno.Duracion   = new Horario(celdas[4].Value.ToString());
                turno.Confirmado = celdas[5].Value.ToString();

                //Registro la solicitud para el admin
                GestorHorarios horarioDAO = new GestorHorarios();
                horarioDAO.registrarSolicitudCambioHorario(this.usuario, turno);

                //Mensajito
                MessageBox.Show("Solicitud de cambio registrada con éxito.", "Éxito",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (CambioHorarioInvalidoException ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (NoSeleccionoFilaException ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#2
0
        /// <summary>
        /// Elimina el horario seleccionado solo si no esta confirmado
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void eliminarButton_Click(object sender, EventArgs e)
        {
            try
            {
                if (asignadoTable.SelectedRows.Count == 0)
                {
                    throw new NoSeleccionoFilaException();
                }

                //Obtengo las celdas de la fila seleccionada
                DataGridViewCellCollection celdas = asignadoTable.SelectedRows[0].Cells;

                //La quinta celda corresponde al valor de confirmacion
                if (celdas[5].Value.ToString().Equals("SI"))
                {
                    throw new EliminacionInvalidaException();
                }

                //Si esta NO confiramda procedo a armar el turnoDTO
                HorarioHabitualDTO turno = new HorarioHabitualDTO();
                turno.Area       = celdas[0].Value.ToString();
                turno.Dia        = celdas[1].Value.ToString();
                turno.Ingreso    = new Horario(celdas[2].Value.ToString());
                turno.Egreso     = new Horario(celdas[3].Value.ToString());
                turno.Duracion   = new Horario(celdas[4].Value.ToString());
                turno.Confirmado = celdas[5].Value.ToString();

                //Elimino el horario de la BD
                GestorHorarios turnoDAO = new GestorHorarios();
                turnoDAO.eliminarHorariosHabitual(usuario, turno);

                //Carga los horarios restantes en la tabla
                turnos = turnoDAO.horariosHabitualesRegistrados(this.usuario);
                asignadoTable.DataSource = null;
                foreach (HorarioHabitualDTO t in turnos)
                {
                    this.agregarColumna(t);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#3
0
        /// <summary>
        /// Carga los datos iniciales necesarios
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void loadform(object sender, EventArgs e)
        {
            GestorUsuarios usuarioDAO = new GestorUsuarios();
            GestorHorarios turnoDAO   = new GestorHorarios();

            //Obtiene las areas a las que pertenece el usuario
            List <string> areas = usuarioDAO.getAreasFromUsuario(this.usuario);

            foreach (string area in areas)
            {
                areaCombo.Items.Add(area);
            }

            //Obtiene los horarios ya asignados
            turnos = turnoDAO.horariosHabitualesRegistrados(this.usuario);

            foreach (HorarioHabitualDTO t in turnos)
            {
                this.agregarColumna(t);
            }
        }
示例#4
0
        /// <summary>
        /// Valida el horario ingresado y lo guarda en la base de datos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void guardarButton_Click(object sender, EventArgs e)
        {
            if (areaCombo.SelectedIndex == -1)
            {
                MessageBox.Show("No se seleccionó un área", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (diaCombo.SelectedIndex == -1)
            {
                MessageBox.Show("No se seleccionó un día", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            try
            {
                //este constructor verifica la integridad
                Horario ingreso = new Horario(ingresoText.Text);
                Horario egreso  = new Horario(egresoText.Text);

                //el constructor verifica la integridad
                RangoHorario rango = new RangoHorario(ingreso, egreso);

                //el tamaño minimo es 59 minutos
                if (rango.rangoMenor(0, 59))
                {
                    throw new RangoMinimoException();
                }

                //armo la entidad turno DTO
                HorarioHabitualDTO turno = new HorarioHabitualDTO();
                turno.Area       = areaCombo.Text;
                turno.Dia        = diaCombo.Text;
                turno.Ingreso    = ingreso;
                turno.Egreso     = egreso;
                turno.Duracion   = rango.getDuracion();
                turno.Confirmado = "NO";

                //hay que validar que no se superponga a otros horarios

                foreach (HorarioHabitualDTO t in turnos)
                {
                    if (Fecha.getNumeroDia(t.Dia) == Fecha.getNumeroDia(turno.Dia))
                    {
                        RangoHorario r1 = new RangoHorario(t.Ingreso, t.Egreso);

                        if (r1.rangoSuperpuesto(rango))
                        {
                            throw new TurnoSuperpuestoException();
                        }
                    }
                }

                //y finalmente guardo el horario
                GestorHorarios gestor = new GestorHorarios();
                gestor.crearHorarioHabitual(this.usuario, turno);

                // y si anda todo bien agrego la columna a la tabla
                this.agregarColumna(turno);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }