/// <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); } }
/// <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); } }
/// <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); } }
/// <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); } }