/// <summary> /// Implementa Save_button_Click /// </summary> protected override void SaveAction() { foreach (SesionAuxiliar sesion in _lista_sesiones) { if ((sesion.OidClaseTeorica > 0 || sesion.OidClasePractica > 0 || sesion.OidClaseExtra > 0) && sesion.OidProfesor == 0) { MessageBox.Show(Resources.Messages.SESION_SIN_PROFESOR); _action_result = DialogResult.Ignore; return; } } foreach (SesionAuxiliar item in _lista_sesiones) { if (item.EEstadoClase != EEstadoClase.NoProgramada) { _generado = true; break; } } if (!_generado && _entity.Observaciones == string.Empty) { MessageBox.Show(Resources.Messages.HORARIO_NO_GENERADO); _action_result = DialogResult.Ignore; return; } if (_entity.IsNew && Horario.ExisteHorario(_entity.OidPlan, _entity.OidPromocion, _entity.FechaInicial)) { MessageBox.Show(Resources.Messages.HORARIO_EXISTENTE); _action_result = DialogResult.Ignore; return; } _action_result = SaveObject() ? DialogResult.OK : DialogResult.Ignore; }
/// <summary> /// Asigna los datos de origen para controles que dependen de otros /// </summary> /// <param name="controlName"></param> protected override void SetDependentControlSource(string controlName) { switch (controlName) { case "Plan_CB": { if (Datos_Planes.Current != null) { ResetSesiones(true); Datos_Promociones.DataSource = _combo_planes.GetFilteredChilds(((ComboBoxSource)Plan_CB.SelectedItem).Oid); Entity.OidPlan = ((ComboBoxSource)Plan_CB.SelectedItem).Oid; } Globals.Instance.Timer.Record("Plan_CB"); } break; case "Promocion_CB": { if (Promocion_CB.SelectedItem != null) { Entity.OidPromocion = ((ComboBoxSource)Promocion_CB.SelectedItem).Oid; } if (Entity.OidPromocion != 0) { /*PgMng.Reset(10, 1, Resources.Messages.UPDATING_PROMOCION_HORARIO, this); * _back_job = BackJob.Promociones; * PgMng.StartBackJob(this); * PgMng.FillUp();*/ DoPromociones(); } } break; case "Fecha_DTP": { if (Promocion_CB.SelectedItem == null || Plan_CB.SelectedItem == null) { break; } if (((ComboBoxSource)Promocion_CB.SelectedItem).Oid != 0 && ((ComboBoxSource)Plan_CB.SelectedItem).Oid != 0) { try { PgMng.Reset(5, 1, Resources.Messages.UPDATING_INSTRUCTORES_HORARIO, this); DoSetFecha(); } finally { PgMng.FillUp(); } if (Horario.ExisteHorario(((ComboBoxSource)Plan_CB.SelectedItem).Oid, ((ComboBoxSource)Promocion_CB.SelectedItem).Oid, _entity.FechaInicial)) { MessageBox.Show(Resources.Messages.HORARIO_EXISTENTE); _action_result = DialogResult.Ignore; return; } } } break; } }
protected void DoNuevoHorario() { try { PgMng.Reset(10, 1, Resources.Messages.CREANDO_HORARIO, this); if (this is HorarioAddForm && Horario.ExisteHorario(Entity.OidPlan, Entity.OidPromocion, Entity.FechaInicial)) { MessageBox.Show("Ya existe un horario para la promoción y fecha indicadas, si lo desea modifique el que ya existe."); PgMng.FillUp(); return; } profesores_encargados.GetEncargados(Entity.OidPlan, Entity.OidPromocion); PgMng.Grow(); _combo_clases = Submodulo.GetComboClases(_teoricas, ClasePracticaList.Merge(_practicas[1], _practicas[2]), _extras); Datos_Clases.DataSource = _combo_clases; PgMng.Grow(); _instructores_asignados = Sesion.CargaSesionesProfesores(Entity.FechaInicial, Entity.OidPromocion); PgMng.Grow(); if (_profesores == null) { _profesores = InstructorList.GetInstructoresHorariosList(EntityInfo.OidPromocion, EntityInfo.FechaInicial, EntityInfo.FechaFinal); } PgMng.Grow(); CleanAction(); PgMng.Grow(string.Empty, "CleanAction"); if (_generado) { ResetNoConfirmadas(); } PgMng.Grow(string.Empty, "ResetNoConfirmadas"); if (_lista_sesiones == null) { _lista_sesiones = new ListaSesiones(Entity.FechaInicial); } if (!Entity.FechaInicial.Date.Equals(_lista_sesiones[0].Fecha.Date)) { DateTime fecha = Entity.FechaInicial; for (int i = 0; i < 70; i += 14) { _lista_sesiones[i].Fecha = fecha; _lista_sesiones[i + 1].Fecha = fecha; _lista_sesiones[i + 2].Fecha = fecha; _lista_sesiones[i + 3].Fecha = fecha; _lista_sesiones[i + 4].Fecha = fecha; _lista_sesiones[i + 5].Fecha = fecha; _lista_sesiones[i + 6].Fecha = fecha; _lista_sesiones[i + 7].Fecha = fecha; _lista_sesiones[i + 8].Fecha = fecha; _lista_sesiones[i + 9].Fecha = fecha; _lista_sesiones[i + 10].Fecha = fecha; _lista_sesiones[i + 11].Fecha = fecha; _lista_sesiones[i + 12].Fecha = fecha; _lista_sesiones[i + 13].Fecha = fecha; fecha = fecha.AddDays(1); } for (int i = 70; i < 75; i++) { _lista_sesiones[i].Fecha = fecha; } } _lista_sesiones = Entity.SetSesionesActivas(_lista_sesiones); PgMng.Grow(string.Empty, "Entity.SetSesionesActivas"); decimal n_practicas = 11; if (Practicas_CB.Checked) { n_practicas = NPracticas.Value; } HorarioController controlador = new HorarioController(_entity, _lista_sesiones, _teoricas, _practicas, _extras, _profesores, profesores_encargados, _instructores_asignados, _disponibilidades, n_practicas, DiasSuplente.Value); controlador.Rules[(int)TRule.MismoInstructorMismaSesion] = !MismoInstructorMismaSesion_CB.Checked; controlador.Rules[(int)TRule.MismoInstructorMismoDia] = !MismoInstructorMismoDia_CB.Checked; controlador.GeneraHorario(_no_asignables); PgMng.Grow(string.Empty, "Generación de horario"); RellenaCasillas(); PgMng.Grow(string.Empty, "Rellenar Casillas"); Completar_BT.Enabled = false; Marcar_BT.Enabled = true; Clean_BT.Enabled = true; if (this is HorarioEditForm) { Confirmar_BT.Enabled = true; } _generado = true; } catch (Exception ex) { throw ex; } finally { PgMng.FillUp(); } }