Beispiel #1
0
        public override void RefreshSecondaryData()
        {
            Plan_TB.Text = PlanEstudiosInfo.Get(_entity.OidPlan).Nombre;
            PgMng.Grow(string.Empty, "Plan_TB");

            Promocion_TB.Text = PromocionInfo.Get(_entity.OidPromocion).Nombre;
            PgMng.Grow(string.Empty, "Promocion_TB");
        }
        protected override void MergePlanesAction()
        {
            PlanEstudiosSelectForm form = new PlanEstudiosSelectForm(true, this);

            DialogResult result = form.ShowDialog();

            if (result == DialogResult.OK)
            {
                PlanEstudiosInfo info = form.Selected as PlanEstudiosInfo;

                if (info.Oid != _entity.Oid)
                {
                    _entity.Merge(info.Oid);
                }
            }
        }
        //public override void PrintObject()
        //{
        //}

        //#endregion

        //#region Buttons

        //protected override void PrintAction()
        //{
        //    switch (TabControl.SelectedTab.Name)
        //    {
        //        case "General_TP":
        //            {
        //                PrintObject();
        //            } break;

        //        default:
        //            {
        //                PrintSelectSkinForm psform = new PrintSelectSkinForm(true);
        //                psform.EnableDetail(false);
        //                psform.ShowDialog();
        //                if (psform.DialogResult == DialogResult.Cancel) return;

        //                switch (TabControl.SelectedTab.Name)
        //                {
        //                    case "Redes_TP":
        //                        {
        //                            PrintData(Entidad.Red, psform.Source, psform.Type);
        //                        } break;

        //                }
        //            } break;
        //    }
        //}

        #endregion

        #region Buttons

        /// <summary>
        /// Implementa Save_button_Click
        /// </summary>
        protected override void SaveAction()
        {
#if TRACE
            moleQule.Library.Timer t = new moleQule.Library.Timer();
#endif
            if (!_generado)
            {
                MessageBox.Show("No se ha generado ningún cronograma");
                _action_result = DialogResult.Ignore;
                return;
            }
            else
            {
                _entity.FechaCreacion = DateTime.Today;
                if (_entity.Plan == string.Empty)
                {
                    PlanEstudiosInfo plan = PlanEstudiosInfo.Get(_entity.OidPlan, false);
                    if (plan != null)
                    {
                        _entity.Plan = plan.Nombre;
                    }
                }
                if (_entity.Promocion == string.Empty)
                {
                    PromocionInfo promocion = PromocionInfo.Get(_entity.OidPromocion, false);
                    if (promocion != null)
                    {
                        _entity.Promocion = promocion.Nombre;
                    }
                }


                foreach (Sesion_Promocion item in _entity.Configuracion)
                {
                    item.HoraInicio = DateTime.Parse(item.Hora);
                }
#if TRACE
                t.Record("FechaCreacion");
#endif
                _action_result = SaveObject() ? DialogResult.OK : DialogResult.Ignore;
            }
        }
Beispiel #4
0
 protected override void GetFormSourceData(long oid)
 {
     _entity  = PlanEstudiosInfo.Get(oid, true);
     _mf_type = ManagerFormType.MFView;
 }
        protected override void DoPromociones()
        {
            try
            {
                PgMng.Reset(15, 1, Resources.Messages.UPDATING_PROMOCION_HORARIO, this);
                DateTime hoy = DateTime.Today;

                // si la fecha del horario que se va a cargar es anterior a la del día en el que se edita
                // no se tiene en cuenta si las clases sesiones planificadas se han impartido o no para meterlas
                // en las lista, ya que de ningún modo se va a permitir modificar un horario antiguo
                if (hoy.Date >= Entity.FechaInicial)
                {
                    hoy = Entity.FechaInicial;
                }
                else
                {
                    while (hoy.DayOfWeek != DayOfWeek.Monday)
                    {
                        hoy = hoy.AddDays(-1);
                    }
                }

                for (int i = 1; i < 3; i++)
                {
                    ClasePracticaList practicas = ClasePracticaList.GetDisponiblesList(Entity.OidPlan, Entity.OidPromocion, Entity.Oid, i);
                    if (_practicas.Count <= i)
                    {
                        _practicas.Add(practicas);
                    }
                    else
                    {
                        _practicas[i] = practicas;
                    }
                    PgMng.Grow(string.Empty, "Rellena clases prácticas grupo " + i.ToString());
                }
                _teoricas = ClaseTeoricaList.GetDisponiblesList(Entity.OidPlan, Entity.OidPromocion, Entity.Oid);
                PgMng.Grow(string.Empty, "Rellena clases teóricas");
                _extras = ClaseExtraList.GetDisponiblesList(Entity.OidPromocion, Entity.Oid);
                PgMng.Grow(string.Empty, "Rellena clases extra");

                //_combo_clases = Submodulo.GetComboClases(_teoricas, ClasePracticaList.Merge(_practicas[1],_practicas[2]), _extras);
                //pmg.Grow("combo clases");

                //pmg.Grow("Rellena fecha");

                while (_day.DayOfWeek != System.DayOfWeek.Monday)
                {
                    _day = _day.AddDays(-1);
                }
                Fecha_DTP.Value = _day;
                DoSetFecha();

                if (Promocion_CB.SelectedItem != null)
                {
                    //ResetSesiones(false);
                    PgMng.Grow(string.Empty, "reset sesiones");
                    _profesores = InstructorList.GetInstructoresHorariosList(((ComboBoxSource)Promocion_CB.SelectedItem).Oid, EntityInfo.FechaInicial, EntityInfo.FechaFinal);
                }

                if (_profesores != null)
                {
                    _disponibilidades = _profesores.GetDisponibilidadesProfesores(_day);
                }
                PgMng.Grow(string.Empty, "_profesores");


                if (Entity.OidPromocion != 0)
                {
                    PromocionInfo promocion = _promociones.GetItem(Entity.OidPromocion);
                    _entity.Promocion = promocion.Nombre;
                    PlanEstudiosInfo plan = _planes.GetItem(promocion.OidPlan);
                    _entity.Plan = plan.Nombre;

                    PgMng.Grow(string.Empty, "Promociones");
                    //_profesores = InstructorList.GetInstructoresHorariosList(Entity.OidPromocion);
                    PgMng.Grow(string.Empty, "GetInstructoresHorarioList");

                    CLB_1.SetItemChecked(0, promocion.H8AM);
                    CLB_1.SetItemChecked(1, promocion.H0);
                    CLB_1.SetItemChecked(2, promocion.H1);
                    CLB_1.SetItemChecked(3, promocion.H2);
                    CLB_1.SetItemChecked(4, promocion.H3);
                    CLB_1.SetItemChecked(5, promocion.H4);
                    CLB_1.SetItemChecked(6, promocion.H5);
                    CLB_1.SetItemChecked(7, promocion.H6);
                    CLB_1.SetItemChecked(8, promocion.H7);
                    CLB_1.SetItemChecked(9, promocion.H8);
                    CLB_1.SetItemChecked(10, promocion.H9);
                    CLB_1.SetItemChecked(11, promocion.H10);
                    CLB_1.SetItemChecked(12, promocion.H11);
                    CLB_1.SetItemChecked(13, promocion.H12);

                    CLB_2.SetItemChecked(0, promocion.HS0);
                    CLB_2.SetItemChecked(1, promocion.HS1);
                    CLB_2.SetItemChecked(2, promocion.HS2);
                    CLB_2.SetItemChecked(3, promocion.HS3);
                    CLB_2.SetItemChecked(4, promocion.HS4);

                    PgMng.Grow(string.Empty, "SetItemChecked");

                    Entity.CopiaConfiguracion(promocion);
                }
                PgMng.Grow(string.Empty, "Inicializa horas disponibles");

                if (!_generado)
                {
                    Generar_BT.Enabled = true;
                }
                Instructores_BT.Enabled     = true;
                Planes_BT.Enabled           = true;
                Disponibilidades_BT.Enabled = true;

                if (_lista_sesiones == null)
                {
                    _lista_sesiones = new ListaSesiones(Entity.FechaInicial);
                }
                RellenaCasillas();
            }
            finally
            {
                PgMng.FillUp();
            }
        }
        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();
            }
        }