/// <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": { //moleQule.Library.Timer t = new moleQule.Library.Timer(); if (Datos_Planes.Current != null && Plan_CB.SelectedItem != null) { Datos_Promociones.DataSource = _combo_planes.GetFilteredChilds(((ComboBoxSource)Plan_CB.SelectedItem).Oid); Generar_BT.Enabled = true; } // t.Record("Plan_CB"); //MessageBox.Show(t.GetCronos()); } break; case "Promocion_CB": { //moleQule.Library.Timer t = new moleQule.Library.Timer(); if (Datos_Promociones.Current != null) { if (Promocion_CB.SelectedItem != null) { _entity.OidPromocion = ((ComboBoxSource)Promocion_CB.SelectedItem).Oid; } Generar_BT.Enabled = true; } //t.Record("Promocion_CB"); //MessageBox.Show(t.GetCronos()); } break; case "Semana_GB": { PromocionInfo promo = null; if (Promocion_CB.SelectedItem != null) { promo = PromocionInfo.Get(((ComboBoxSource)Promocion_CB.SelectedItem).Oid, true); } if (promo != null) { CLB_1.Items[0] = "08:00 - 9:00"; CLB_1.Items[1] = "09:00 - 10:00"; CLB_1.Items[2] = "10:00 - 11:00"; CLB_1.Items[3] = "11:00 - 12:00"; CLB_1.Items[4] = "12:00 - 13:00"; CLB_1.Items[5] = "13:00 - 14:00"; CLB_1.Items[6] = "14:00 - 15:00"; CLB_1.Items[7] = "15:00 - 16:00"; CLB_2.Items[0] = "16:00 - 17:00"; CLB_2.Items[1] = "17:00 - 18:00"; CLB_2.Items[2] = "18:00 - 19:00"; CLB_2.Items[3] = "19:00 - 20:00"; CLB_2.Items[4] = "20:00 - 21:00"; CLB_2.Items[5] = "21:00 - 22:00"; CLB_1.SetItemChecked(0, promo.H8AM); CLB_1.SetItemChecked(1, promo.H0); CLB_1.SetItemChecked(2, promo.H1); CLB_1.SetItemChecked(3, promo.H2); CLB_1.SetItemChecked(4, promo.H3); CLB_1.SetItemChecked(5, promo.H4); CLB_1.SetItemChecked(6, promo.H5); CLB_1.SetItemChecked(7, promo.H6); CLB_2.SetItemChecked(0, promo.H7); CLB_2.SetItemChecked(1, promo.H8); CLB_2.SetItemChecked(2, promo.H9); CLB_2.SetItemChecked(3, promo.H10); CLB_2.SetItemChecked(4, promo.H11); CLB_2.SetItemChecked(5, promo.H12); _entity.Configuracion = Sesiones_Promociones.NewChildList(); foreach (Sesion_PromocionInfo item in promo.Sesiones) { Sesion_Promocion copia_conf = Sesion_Promocion.NewChild(_entity); copia_conf.HoraInicio = item.HoraInicio; copia_conf.Sabado = item.Sabado; copia_conf.NHoras = item.NHoras; copia_conf.Hora = item.Hora; _entity.Configuracion.AddItem(copia_conf); } Datos_Sesiones.DataSource = _entity.Configuracion; } } break; case "Sabado_GB": { PromocionInfo promo = null; if (Promocion_CB.SelectedItem != null) { promo = _promociones.GetItem(((ComboBoxSource)Promocion_CB.SelectedItem).Oid); } if (promo != null) { CLB_3.Items[0] = "09:00 - 10:00"; CLB_3.Items[1] = "10:00 - 11:00"; CLB_3.Items[2] = "11:00 - 12:00"; CLB_3.Items[3] = "12:00 - 13:00"; CLB_3.Items[4] = "13:00 - 14:00"; CLB_3.SetItemChecked(0, promo.HS0); CLB_3.SetItemChecked(1, promo.HS1); CLB_3.SetItemChecked(2, promo.HS2); CLB_3.SetItemChecked(3, promo.HS3); CLB_3.SetItemChecked(4, promo.HS4); } } break; } }
private void DoGeneraCronograma() { PgMng.Reset(10, 1, Resources.Messages.GENERANDO_CRONOGRAMA, this); try { int clases_dia = 0; int clases_sabado = 0; int total_dias = 5; PgMng.Grow(); List <bool> activas_dia = new List <bool>(); if (CLB_1.CheckedIndices.Contains(0)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_1.CheckedIndices.Contains(1)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_1.CheckedIndices.Contains(2)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_1.CheckedIndices.Contains(3)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_1.CheckedIndices.Contains(4)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_1.CheckedIndices.Contains(5)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_1.CheckedIndices.Contains(6)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_1.CheckedIndices.Contains(7)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_2.CheckedIndices.Contains(0)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_2.CheckedIndices.Contains(1)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_2.CheckedIndices.Contains(2)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_2.CheckedIndices.Contains(3)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_2.CheckedIndices.Contains(4)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } if (CLB_2.CheckedIndices.Contains(5)) { clases_dia++; activas_dia.Add(true); } else { activas_dia.Add(false); } PgMng.Grow(); List <bool> activas_sabado = new List <bool>(); if (CLB_3.CheckedIndices.Contains(0)) { clases_sabado++; activas_sabado.Add(true); } else { activas_sabado.Add(false); } if (CLB_3.CheckedIndices.Contains(1)) { clases_sabado++; activas_sabado.Add(true); } else { activas_sabado.Add(false); } if (CLB_3.CheckedIndices.Contains(2)) { clases_sabado++; activas_sabado.Add(true); } else { activas_sabado.Add(false); } if (CLB_3.CheckedIndices.Contains(3)) { clases_sabado++; activas_sabado.Add(true); } else { activas_sabado.Add(false); } if (CLB_3.CheckedIndices.Contains(4)) { clases_sabado++; activas_sabado.Add(true); } else { activas_sabado.Add(false); } PgMng.Grow(); if (clases_sabado > 0) { total_dias = 6; } _entity.Configuracion = Sesiones_Promociones.NewChildList(); for (int row_index = 0; row_index < Datos_Sesiones.List.Count; row_index++) { Sesion_Promocion sp = Sesion_Promocion.NewChild(_entity); Sesion_Promocion sp_row = ((Sesion_Promocion)Datos_Sesiones.List[row_index]); sp.Hora = sp_row.Hora; sp.HoraInicio = sp_row.HoraInicio; sp.NHoras = sp_row.NHoras; _entity.Configuracion.Add(sp); } moleQule.Library.Timer t = new moleQule.Library.Timer(); //t.Start(); //t.Record("inicio"); PromocionInfo promocion = PromocionInfo.Get(_entity.OidPromocion, false); PlanEstudiosInfo plan = PlanEstudiosInfo.Get(_entity.OidPlan, false); if (promocion != null) { if (_entity.GeneraCronograma(promocion.Oid != 0 ? promocion.FechaInicio : plan.Fecha, DateTime.MaxValue, (int)Semana_NUD.Value, clases_dia, clases_sabado, total_dias, (int)Practicas_NUD.Value, t, activas_dia, activas_sabado)) { //t.Record("fin"); //MessageBox.Show(t.GetCronos()); //t.Record("GeneraCronograma"); //MessageBox.Show("Cronograma generado con éxito"); _generado = true; } else { MessageBox.Show("No se ha podido generar el cronograma.\n" + "Compruebe que no se hayan eliminado clases que ya estuvieran planificadas."); _generado = false; } } else { MessageBox.Show("No se ha podido generar el cronograma.\n" + "Seleccione una promoción."); _generado = false; } //Generar_BT.Enabled = false; PgMng.Grow(); } finally { PgMng.FillUp(); } if (_generado) { PgMng.ShowInfoException(Resources.Messages.CRONOGRAMA_GENERADO_CON_EXITO); Submit_BT.PerformClick(); } }