protected new SortedBindingList <AlumnoInfo> Localize(object value, string column_name) { SortedBindingList <AlumnoInfo> list = null; AlumnoList sourceList = null; switch (FilterType) { case IFilterType.None: if (List == null) { MessageBox.Show(moleQule.Face.Resources.Messages.NO_RESULTS); return(null); } sourceList = List; break; case IFilterType.Filter: if (FilteredList == null) { MessageBox.Show(moleQule.Face.Resources.Messages.NO_RESULTS); return(null); } sourceList = FilteredList; break; } FCriteria criteria = null; string related = "none"; switch (column_name) { default: { criteria = GetCriteria(column_name, value, _operation); } break; } switch (related) { case "none": { list = sourceList.GetSortedSubList(criteria); } break; } if (list.Count == 0) { MessageBox.Show(moleQule.Face.Resources.Messages.NO_RESULTS); return(sourceList.GetSortedList()); } DatosSearch.DataSource = list; DatosSearch.MoveFirst(); AddFilterLabel(column_name, value); Tabla.Focus(); return(list); }
public AlumnoSelectForm(Form parent, AlumnoList list) : base(true, parent, list) { InitializeComponent(); _view_mode = molView.Select; DialogResult = DialogResult.Cancel; }
public void SetSourceData(Examen item) { _entity = item; _alumnos = AlumnoList.GetAlumnosAdmitidosList(item.OidModulo, _entity.Desarrollo, _entity.Oid, ExamenPromocionList.GetChildList(_entity.Promociones), _entity.FechaExamen, false); _promociones = PromocionList.GetList(false);//.GetByModuloList(item.OidModulo, false); this.Text = Resources.Labels.SELECT_ALUMNOS; RefreshSecondaryData(); RefreshMainData(); }
public void SetSourceData(ExamenInfo item) { _entity = item; _alumnos = AlumnoList.GetAlumnosAdmitidosList(_entity.OidModulo, _entity.Desarrollo, true); _promociones = PromocionList.GetByModuloList(_entity.OidModulo, false); this.Text = Resources.Labels.SELECT_ALUMNOS; RefreshSecondaryData(); RefreshMainData(); }
/// <summary> /// Implementa Save_button_Click /// </summary> protected override void SubmitAction() { AlumnoInfo alumno = TodosAlumno_CkB.Checked ? null : _alumno; PromocionInfo promocion = TodosPromocion_CkB.Checked ? null : _promocion; string filtro = GetFilterValues(); AlumnoReportMng reportMng = new AlumnoReportMng(AppContext.ActiveSchema, string.Empty, filtro); AlumnoList alumnos = GetAlumnoList(alumno, promocion); PromocionList promos = GetPromocionList(promocion); if (Documentos_CLB.GetItemCheckState(0) == CheckState.Checked) { MatriculaPromocionRpt rpt = reportMng.GetMatriculaPromocionReport(alumnos, promos); if (rpt != null) { ReportViewer.SetReport(rpt); ReportViewer.ShowDialog(); } else { MessageBox.Show(moleQule.Face.Resources.Messages.NO_DATA_REPORTS); } } /*if (Documentos_CLB.GetItemCheckState(1) == CheckState.Checked) * { * MatriculaPromocionRpt rpt = reportMng.GetMatriculaPromocionReport(list, promocion); * * if (rpt != null) * { * ReportViewer.SetReport(rpt); * ReportViewer.ShowDialog(); * } * else * MessageBox.Show(moleQule.Face.Resources.Messages.NO_DATA_REPORTS); * }*/ if (Documentos_CLB.GetItemCheckState(2) == CheckState.Checked) { DocumentacionRpt rpt = reportMng.GetDocumentacionReport(alumnos, promos); if (rpt != null) { ReportViewer.SetReport(rpt); ReportViewer.ShowDialog(); } else { MessageBox.Show(moleQule.Face.Resources.Messages.NO_DATA_REPORTS); } } _action_result = DialogResult.OK; }
private void Hojas_BT_Click(object sender, EventArgs e) { PrintSource seleccion = PrintSource.All; bool alumno = false; PartesPrintSelectForm form = new PartesPrintSelectForm(seleccion); DialogResult result = form.ShowDialog(); if (result != DialogResult.Cancel) { if (form.Source == PrintSource.Selection) { alumno = true; } } CronogramaReportMng reportMng = new CronogramaReportMng(AppContext.ActiveSchema); AlumnoList lista = AlumnoList.GetListByPromocion(_entity.OidPromocion, false); foreach (ParteAsistenciaInfo item in _entity.Asistencias) { AlumnoList alumnos = null; SesionInfo sesion = null; foreach (SesionInfo ses in _entity.Sesions) { if (ses.Fecha.ToShortDateString() == item.Fecha.ToShortDateString() && ses.Hora.ToShortTimeString() == DateTime.Parse(item.HoraInicio).ToShortTimeString()) { sesion = ses; break; } } alumnos = AlumnoList.CreateAlumnosList(lista, item.Alumno_Partes); if (item.Sesiones != string.Empty && alumnos.Count > 0) { if (item.Tipo == 2 || sesion.OidClasePractica > 0) { ReportViewer.SetReport(reportMng.GetDetailPracticasReport(sesion, alumnos, item.NHoras, _teoricas, /*ClasePracticaList.Merge(_practicas[1], _practicas[2])*/ ClasePracticaList.GetClasesPlanList(_entity.OidPlan), _extras, item.Texto, _entity.OidPromocion, alumno)); } else { ReportViewer.SetReport(reportMng.GetDetailTeoricasReport(sesion, alumnos, item.NHoras, _teoricas, ClasePracticaList.Merge(_practicas[1], _practicas[2]), _extras, item.Texto, _entity.OidPromocion, alumno)); } } ReportViewer.ShowDialog(); } }
public AlumnoMngForm(bool isModal, Form parent, AlumnoList list) : base(isModal, parent, list) { InitializeComponent(); SetView(molView.Normal); // Parche para poder abrir el formulario en modo diseño y no perder la configuracion de columnas DatosLocal_BS = Datos; Tabla.DataSource = DatosLocal_BS; TablaBase = Tabla; base.SortProperty = Codigo.DataPropertyName; this.Text = Resources.Labels.ALUMNOS; }
public FaltasAlumnosMngForm(bool isModal, Form parent, AlumnoList list) : base(isModal, parent, null) { InitializeComponent(); _view_mode = molView.Select; // Parche para poder abrir el formulario en modo diseño y no perder la configuracion de columnas DatosLocal_BS = Datos; Tabla.DataSource = DatosLocal_BS; SetMainDataGridView(Tabla); Datos.DataSource = AlumnoList.NewList().GetSortedList(); base.SortProperty = NExpediente.DataPropertyName; this.Text = Resources.Labels.FALTAS_ALUMNOS_VIEW_TITLE; }
public override void UpdateList() { switch (_current_action) { case molAction.Add: if (_entity == null) { return; } List.AddItem(_entity.GetInfo(false)); if (FilterType == IFilterType.Filter) { AlumnoList listA = AlumnoList.GetList(_filter_results); listA.AddItem(_entity.GetInfo(false)); _filter_results = listA.GetSortedList(); } break; case molAction.Edit: case molAction.Lock: case molAction.Unlock: if (_entity == null) { return; } ActiveItem.CopyFrom(_entity); break; case molAction.Delete: if (ActiveItem == null) { return; } List.RemoveItem(ActiveOID); if (FilterType == IFilterType.Filter) { AlumnoList listD = AlumnoList.GetList(_filter_results); listD.RemoveItem(ActiveOID); _filter_results = listD.GetSortedList(); } break; } _entity = null; RefreshSources(); }
protected override void EditarAlumnoAction() { try { Alumno item = Alumno.GetForForm((Alumnos_Grid.CurrentRow.DataBoundItem as AlumnoInfo).Oid, true, _entity.SessionCode); item.SharedTransaction = true; AlumnoEditForm form = new AlumnoEditForm(item, true, this); form.ShowDialog(); if (form.ActionResult == DialogResult.OK) { //_entity.LoadChilds(typeof(Alumno_Promocion)); Datos_Alumnos.DataSource = Datos_Alumnos.DataSource = AlumnoList.GetListByPromocion(EntityInfo.Oid, false); } } catch { } }
/// <summary> /// Toma la lista de bancos de la base de datos y rellena la tabla. /// </summary> protected override void RefreshMainData() { PgMng.Grow(string.Empty, "Alumno"); _selected_oid = ActiveOID; switch (DataType) { case EntityMngFormTypeData.Default: List = AlumnoList.GetList(false); break; case EntityMngFormTypeData.ByParameter: _sorted_list = List.GetSortedList(); break; } PgMng.Grow(string.Empty, "Lista de Alumnos"); }
public override void RefreshSecondaryData() { PromocionList promociones = PromocionList.GetList(false); _combo_promociones = new Library.Instruction.HComboBoxSourceList(promociones); Datos_Promociones.DataSource = _combo_promociones; PgMng.Grow(); _alumnos = AlumnoList.GetList(false); _combo_promociones.Childs = new Library.Instruction.HComboBoxSourceList(_alumnos); Datos_ComboAlumnos.DataSource = _combo_promociones.Childs; PgMng.Grow(); _combo_tipo = new Library.Instruction.HComboBoxSourceList(); _combo_tipo.Add(new ComboBoxSource()); _combo_tipo.Add(new ComboBoxSource(1, "Curso")); _combo_tipo.Add(new ComboBoxSource(2, "Módulo")); Datos_Tipo.DataSource = _combo_tipo; PgMng.Grow(); }
protected AlumnoList GetAlumnoList(AlumnoInfo alumno, PromocionInfo promocion) { List <AlumnoInfo> alumnos = new List <AlumnoInfo>(); AlumnoList list; if (alumno != null) { alumnos.Add(alumno); list = AlumnoList.GetList(alumnos); } else { if (promocion != null) { list = AlumnoList.GetListByPromocion(promocion.Oid, false); } else { list = AlumnoList.GetList(false); } } return(list); }
/// <summary> /// Función recursiva que va creando el árbol de submódulos y preguntas /// </summary> /// <param name="padre"></param> /// <param name="apartado"></param> private void SetAlumnosValues(TreeNode padre, PromocionInfo promocion) { TreeNode nodo = new TreeNode(promocion.Numero + " - " + promocion.Nombre); nodo.NodeFont = new Font("Tahoma", (float)8.25, FontStyle.Regular); nodo.ForeColor = System.Drawing.Color.Black; nodo.Tag = promocion; nodo.SelectedImageKey = Properties.Settings.Default.SUBMODULO_ICON; if (_alumnos == null) { _alumnos = AlumnoList.GetListByExamen(true, _entity.Oid); //(_entity.OidModulo, _entity.Desarrollo, _entity.Oid, true); } foreach (AlumnoInfo alumno in _alumnos) { bool pertenece = false; foreach (Alumno_PromocionInfo item in alumno.Promociones) { if (item.OidPromocion == promocion.Oid) { pertenece = true; break; } } if (pertenece) { //nodo_p.Tag = alumno; foreach (Alumno_Examen item in _entity.Alumnos) { if (item.OidAlumno == alumno.Oid) { string texto = "[" + alumno.NExpediente + "] " + alumno.Apellidos + ", " + alumno.Nombre; if (!item.Presentado) { texto += " - NP"; } else { if (!_entity.Desarrollo) { texto += " - " + item.Calificacion.ToString() + "%"; } else { foreach (Respuesta_Alumno_Examen resp in item.Respuestas) { texto += " - " + resp.Calificacion.ToString() + "%"; } } } TreeNode nodo_p = new TreeNode(texto); nodo_p.NodeFont = new Font("Tahoma", (float)8.25, FontStyle.Regular); nodo_p.ForeColor = System.Drawing.Color.Black; nodo_p.Tag = item; nodo_p.Checked = true; nodo.Nodes.Add(nodo_p); //break; } } } } if (nodo.Nodes.Count > 0) { if (padre == null) { Arbol_TV.Nodes.Add(nodo); } else { padre.Nodes.Add(nodo); } } }
protected override void SelectEntities(EntidadInfo entidad) { _tipo = entidad.Tipo; _entity_type_oid = entidad.Oid; switch (_tipo) { case "Cliente": { ClienteList clientes = ClienteList.GetList(false); List <ClienteInfo> lista = new List <ClienteInfo>(); foreach (ClienteInfo obj in clientes) { if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null) { lista.Add(obj); } } Datos_Agentes.DataSource = lista; } break; case "Alumno": { AlumnoList alumnos = AlumnoList.GetList(false);; List <AlumnoInfo> lista = new List <AlumnoInfo>(); foreach (AlumnoInfo obj in alumnos) { if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null) { lista.Add(obj); } } Datos_Agentes.DataSource = lista; } break; case "Empleado": { InstructorList empleados = InstructorList.GetList(false); List <InstructorInfo> lista = new List <InstructorInfo>(); foreach (InstructorInfo obj in empleados) { if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null) { lista.Add(obj); } } Datos_Agentes.DataSource = lista; } break; //case "Factura": // { // FacturaList facturas = FacturaList.GetList(false); // List<FacturaInfo> lista = new List<FacturaInfo>(); // foreach (FacturaInfo obj in facturas) // { // if (!entidad.Agentes.ContainsAgent(obj.Oid)) // lista.Add(obj); // } // Datos_Agentes.DataSource = lista; // } // break; case "Auditoria": { AuditoriaList auditorias = AuditoriaList.GetList(); List <AuditoriaInfo> lista = new List <AuditoriaInfo>(); foreach (AuditoriaInfo obj in auditorias) { if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null) { lista.Add(obj); } } Datos_Agentes.DataSource = lista; } break; case "Proveedor": { ProveedorList proveedores = ProveedorList.GetList(false); List <ProveedorInfo> lista = new List <ProveedorInfo>(); foreach (ProveedorInfo obj in proveedores) { if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null) { lista.Add(obj); } } Datos_Agentes.DataSource = lista; } break; case "Promocion": { PromocionList promociones = PromocionList.GetList(false); List <PromocionInfo> lista = new List <PromocionInfo>(); foreach (PromocionInfo obj in promociones) { if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null) { lista.Add(obj); } } Datos_Agentes.DataSource = lista; } break; case "Curso": { CursoList cursos = CursoList.GetList(false); List <CursoInfo> lista = new List <CursoInfo>(); foreach (CursoInfo obj in cursos) { if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null) { lista.Add(obj); } } Datos_Agentes.DataSource = lista; } break; case "Modulo": { ModuloList modulos = ModuloList.GetList(false); List <ModuloInfo> lista = new List <ModuloInfo>(); foreach (ModuloInfo obj in modulos) { if (entidad.Agentes.GetItemByProperty("Oid", obj.Oid) == null) { lista.Add(obj); } } Datos_Agentes.DataSource = lista; } break; //default: // _tipo = ""; // throw new iQException("No se ha encontrado el tipo de entidad " + entidad.Tipo); } Format(); }
protected override bool DoSearch() { bool promo = false; PromocionList sublist = null; if (_lista == null) { MessageBox.Show(Resources.Messages.NO_RESULTS); return(false); } FCriteria criteria = null; foreach (Control ctl in this.Campos_Groupbox.Controls) { if (((System.Windows.Forms.RadioButton)ctl).Checked) { switch (ctl.Name) { case "Nombre_RB": { criteria = new FCriteria <string>("Nombre", Valor_TB.Text); break; } case "Apellidos_RB": { criteria = new FCriteria <string>("Apellidos", Valor_TB.Text); break; } case "Promocion_RB": { CriteriaEx criteriaex = Promocion.GetCriteria(Promocion.OpenSession()); criteriaex.AddContains("Nombre", Valor_TB.Text); sublist = PromocionList.GetList(criteriaex); // No existe el plan if (sublist.Count == 0) { MessageBox.Show(Resources.Messages.NO_RESULTS); return(false); } promo = true; break; } } } } // Consulta en la bd SortedBindingList <AlumnoInfo> lista; if (SortProperty != string.Empty) { if (!promo) { lista = _lista.GetSortedSubList(criteria, SortProperty, SortDirection); } else { AlumnoList list = AlumnoList.GetList(AlumnoList.GetFilteredList(_lista, sublist, "OidPromocion")); lista = list.ToSortedList(SortProperty, SortDirection); } } else { lista = _lista.GetSortedSubList(criteria, "Oid", SortDirection); } Datos.DataSource = lista; if (lista.Count == 0) { MessageBox.Show(Resources.Messages.NO_RESULTS); return(false); } Datos.MoveFirst(); return(true); }
protected override bool CrearPartes() { int count = 0; long oid_modulo = 0; int index = 0; long tipo = 0; PgMng.Reset(6, 1, Resources.Messages.CREANDO_PARTES_ASISTENCIA, this); try { PromocionInfo promo = PromocionInfo.Get(_entity.OidPromocion, true); AlumnoList alumnos = AlumnoList.GetListByPromocion(promo.Oid, true); if (promo.Sesiones.Count == 0) { Promocion promocion = Promocion.Get(_entity.OidPromocion, false); promocion.LoadChilds(typeof(Sesion_Promocion)); List <List <long> > duracion_sesiones = _entity.RellenaHorasSemana(); foreach (List <long> lista in duracion_sesiones) { foreach (long item in lista) { Sesion_Promocion ses = Sesion_Promocion.NewChild(promocion); ses.NHoras = duracion_sesiones.IndexOf(lista) + 1; if (item > 69) { ses.Sabado = true; } ses.HoraInicio = DateTime.Parse((item % 14 + 10).ToString("00") + ":00"); promocion.Sesiones.Add(ses); } } promo = promocion.GetInfo(true); promocion.CloseSession(); } PgMng.Grow(); if (!_entity.IsDirty) { return(true); } //guarda la lista de partes de asistencia anterior ParteAsistencias partes = _entity.Asistencias.Clone(); PgMng.Grow(); ParteAsistencias nueva = ParteAsistencias.NewChildList(); HorarioInfo horario_old = HorarioInfo.Get(_entity.Oid, true); //genera la nueva lista de partes de asistencia for (int sesion_ind = 0; sesion_ind < _entity.Sesions.Count; sesion_ind++) { Sesion item = _entity.Sesions[sesion_ind]; bool confirmada = false; if (item.OidClasePractica != 0) { bool incluida = false; foreach (ParteAsistencia parte_practicas in nueva) { if (parte_practicas.Tipo == 2) { ClasePracticaInfo p_info = _practicas[(int)item.Grupo].GetItem(item.OidClasePractica); if (p_info != null && (parte_practicas.Texto.Trim() == p_info.Alias.Trim() + "G" + item.Grupo.ToString() || parte_practicas.Texto.Trim() == p_info.Alias.Trim())) { incluida = true; break; } } } if (incluida) { continue; } } //Se busca un parte de asistencias confirmado que contenga esta clase foreach (ParteAsistencia parte_old in partes) { DateTime hora_sesion = DateTime.Parse(parte_old.HoraInicio); if (parte_old.Fecha.Date == item.Fecha.Date && hora_sesion.Hour == item.Hora.Hour && parte_old.Confirmada) { int n_horas = DateTime.Parse(parte_old.NHoras).Hour; for (int horas_ind = 0; horas_ind < n_horas; horas_ind++) { if (!_entity.Sesions[sesion_ind + horas_ind].IsEqual(horario_old.Sesions[sesion_ind + horas_ind])) { return(false); } } //se trata de una teórica o una extra y no hay que comprobar que en ese intervalo exista otra sesión if (item.OidClasePractica == 0) { sesion_ind += n_horas - 1; } nueva.Add(parte_old); confirmada = true; break; } } if (confirmada) { continue; } //Desmarca las clases que han sido marcadas como impartidas pero que tienen //fecha y horas mayor que la actual if (item.Fecha.Date > DateTime.Today.Date && item.Estado == 3) { item.Estado = 2; } //si ya hay un parte para esta práctica no se vuelve a crear if (item.OidClasePractica > 0) { bool esta = false; foreach (ParteAsistencia p in nueva) { foreach (Clase_Parte cp in p.Clases) { if (cp.Tipo == 2 && cp.OidClase == item.OidClasePractica && (cp.Grupo == 3 || cp.Grupo == item.Grupo)) { esta = true; break; } } } if (esta) { continue; } } if ((item.OidClaseTeorica > 0 || item.OidClasePractica > 0 || item.OidClaseExtra > 0) && !item.IsDeleted) { string aux = string.Empty; long oid_modulo_item = 0; string sesion = string.Empty; long oid_clase = 0; long grupo = 3; if (item.OidClasePractica != 0) { ClasePracticaInfo clase = null; clase = _practicas[(int)item.Grupo].GetItem(item.OidClasePractica); oid_modulo_item = clase.OidModulo; aux = clase.Alias + " G" + item.Grupo.ToString(); sesion = clase.Oid.ToString(); tipo = 2; grupo = clase.Grupo; oid_clase = clase.Oid; } if (item.OidClaseTeorica != 0) { ClaseTeoricaInfo clase = _teoricas.GetItem(item.OidClaseTeorica); oid_modulo_item = clase.OidModulo; aux = clase.Alias; sesion = clase.Oid.ToString(); tipo = 1; oid_clase = clase.Oid; } if (item.OidClaseExtra != 0) { ClaseExtraInfo clase = _extras.GetItem(item.OidClaseExtra); oid_modulo_item = clase.OidModulo; aux = clase.Alias; sesion = clase.Oid.ToString(); tipo = 3; oid_clase = clase.Oid; } if (oid_modulo_item != 0) { if (item.OidClasePractica == 0) { foreach (Sesion_PromocionInfo ses in promo.Sesiones) { if (ses.HoraInicio.TimeOfDay == item.Hora.TimeOfDay) { count = 0; break; } } } if (count == 0) { ParteAsistencia parte = ParteAsistencia.NewChild(_entity); parte.Tipo = tipo; parte.Texto = aux + " "; parte.Sesiones = sesion + " "; parte.Fecha = item.Fecha; parte.HoraInicio = item.Hora.ToString("HH:mm"); parte.OidInstructor = item.OidProfesor; parte.OidInstructorEfectivo = item.OidProfesor; parte.CreateAlumnosList(alumnos, item.Grupo); if (index == _entity.Sesions.Count - 1) { parte.NHoras = count.ToString() + ":00"; } parte.MarkItemChild(); nueva.AddItem(parte); oid_modulo = oid_modulo_item; count++; if (tipo == 2) { nueva[nueva.Count - 1].NHoras = "5:00"; nueva[nueva.Count - 1].CreatePartePracticas(item.OidClasePractica); } else { nueva[nueva.Count - 1].NHoras = count.ToString() + ":00"; } } else { ParteAsistencia ultima = nueva[nueva.Count - 1]; if (ultima.OidHorario == item.OidHorario && ultima.Fecha.Date.Equals(item.Fecha.Date) && Convert.ToDateTime(ultima.HoraInicio).AddHours(count).Hour.Equals(item.Hora.Hour) && ultima.OidInstructor == item.OidProfesor && oid_modulo_item == oid_modulo && ((ultima.Tipo == 1 && item.OidClaseTeorica > 0) || (ultima.Tipo == 2 && item.OidClasePractica > 0) || (ultima.Tipo == 3 && item.OidClaseExtra > 0))) { count++; sesion += " "; if ((item.OidClasePractica > 0 && nueva[nueva.Count - 1].Sesiones != sesion) || item.OidClasePractica == 0) { nueva[nueva.Count - 1].Texto += aux + " "; nueva[nueva.Count - 1].Sesiones += sesion; nueva[nueva.Count - 1].NHoras = count.ToString() + ":00"; if (index == _entity.Sesions.Count - 1) { count = 0; } } else { ClasePracticaInfo clase = null; clase = _practicas[(int)item.Grupo].GetItem(item.OidClasePractica); string texto_aux = clase.Alias + " G" + item.Grupo.ToString() + " "; if (nueva[nueva.Count - 1].Texto != texto_aux) { nueva[nueva.Count - 1].Texto = clase.Alias; nueva[nueva.Count - 1].CreateAlumnosList(alumnos, 3); nueva[nueva.Count - 1].CreatePartePracticas(item.OidClasePractica); } } } else { ParteAsistencia parte = ParteAsistencia.NewChild(_entity); parte.Tipo = tipo; parte.Texto = aux + " "; parte.Sesiones = sesion + " "; parte.Fecha = item.Fecha; parte.HoraInicio = item.Hora.ToString("HH:mm"); parte.OidInstructor = item.OidProfesor; parte.OidInstructorEfectivo = item.OidProfesor; parte.CreateAlumnosList(alumnos, item.Grupo); if (index == _entity.Sesions.Count - 1) { parte.NHoras = count.ToString() + ":00"; } parte.MarkItemChild(); nueva.AddItem(parte); oid_modulo = oid_modulo_item; count = 1; if (tipo == 2) { nueva[nueva.Count - 1].NHoras = "5:00"; nueva[nueva.Count - 1].CreatePartePracticas(item.OidClasePractica); } else { nueva[nueva.Count - 1].NHoras = count.ToString() + ":00"; } } } Clase_Parte registro = nueva[nueva.Count - 1].Clases.NewItem(nueva[nueva.Count - 1]); registro.OidClase = oid_clase; registro.Tipo = tipo; registro.Grupo = grupo; } } index++; } PgMng.Grow(); foreach (ParteAsistencia parte_old in partes) { bool esta = false; for (int i = 0; i < nueva.Count; i++) { ParteAsistencia parte_new = nueva[i]; if (parte_old.Fecha.Date == parte_new.Fecha.Date && parte_old.HoraInicio == parte_new.HoraInicio && parte_old.NHoras == parte_new.NHoras && parte_old.OidInstructor == parte_new.OidInstructor && parte_old.Tipo == parte_new.Tipo) { esta = true; foreach (Clase_Parte cp_old in parte_old.Clases) { bool esta_clase = false; foreach (Clase_Parte cp_new in parte_new.Clases) { if (cp_old.OidClase == cp_new.OidClase && cp_old.Tipo == cp_new.Tipo && cp_old.Grupo == cp_new.Grupo) { esta_clase = true; break; } } if (!esta_clase) { if (parte_old.Confirmada) { throw new iQException(Resources.Messages.PARTE_CON_CONCEPTOS_ASOCIADOS); } else { esta = false; break; } } } } if (esta) { nueva.Remove(parte_new); break; } } if (!esta) { if (parte_old.Confirmada) { throw new iQException(Resources.Messages.PARTE_CON_CONCEPTOS_ASOCIADOS); } else { _entity.Asistencias.Remove(parte_old); } } } /*ParteAsistencias partes_bu = _entity.Asistencias.Clone(); * //_entity.Asistencias = ParteAsistencias.NewChildList(); * //se unen las dos listas * //partes es la lista de partes de asistencia que existía antes de modificar el horario * //nueva tiene los partes que se generan a partir del horario modificado * //Se busca cada parte antiguo en la lista de partes nueva * foreach (ParteAsistencia item in partes) * { * ParteAsistencia existe = nueva.Contiene(item); * * if (existe != null) * { * //Si se trata de una clase práctica * if (existe.Tipo == 2 && !existe.Confirmada) * { * //Si en el parte antiguo la clase práctica no tenía lista de notas de prácticas de alumnos o estaba vacía * //se le crea la lista de notas de prácticas de alumnos * if (item.Alumnos_Practicas == null || item.Alumnos_Practicas.Count == 0) * { * if (existe.Alumnos_Practicas.Count > 0) * item.CreatePartePracticas(existe.Alumnos_Practicas[0].OidClasePractica); * else * item.Alumnos_Practicas = existe.Alumnos_Practicas.Clone(); * } * else * { * //si ya tenía lista de notas de prácticas se actualiza * foreach (Alumno_Practica alumno_practica in item.Alumnos_Practicas) * { * if (alumno_practica.Falta) * alumno_practica.Calificacion = Resources.Labels.NO_APTO_LABEL; * } * } * } * * _entity.Asistencias.AddItem(item, false); * * //Método rancio para eliminar el parte que ya existía en la lista original de la lista de partes nuevos * int ind = -1; * for (int i = 0; i < nueva.Count; i++) * { * ParteAsistencia obj = nueva[i]; * * if (item.OidInstructor == obj.OidInstructor * && item.Sesiones == obj.Sesiones * && item.NHoras == obj.NHoras * && item.Fecha.ToShortDateString() == obj.Fecha.ToShortDateString() * && item.HoraInicio == obj.HoraInicio) * { * ind = i; * break; * } * } * if (ind != -1) * { * ParteAsistencias aux = nueva.Clone(); * nueva = ParteAsistencias.NewChildList(); * for (int i = 0; i < aux.Count; i++) * { * if (i != ind) * nueva.AddItem(aux[i]); * } * } * } * else * { * if (!item.Confirmada) * { * //Si no se ha encontrado el parte antiguo, se genera el albarán correspondiente y se elimina el parte antiguo * if (item.Conceptos != null && item.Conceptos.Count > 0) * { * InputDeliveryLineInfo concepto = InputDeliveryLineInfo.Get(item.Conceptos[0].OidConcepto); * InputDeliveryInfo albaran = albaranes.GetItem(concepto.OidAlbaran); * if (albaran != null && albaran.Facturado) * { * _entity.Asistencias = partes_bu; * return false; * } * } * ParteAsistencia.Delete(item.Oid); * } * else * { * _entity.Asistencias = partes_bu; * * return false; * } * } * }*/ PgMng.Grow(); //Al finalizar se añaden todos los partes nuevos que no tenían coincidencia a la lista de //partes del horario foreach (ParteAsistencia item in nueva) { _entity.Asistencias.AddItem(item); } PgMng.Grow(); return(true); } catch { return(false); } finally { PgMng.FillUp(); } }
protected override bool CrearPartes() { int count = 0; long oid_modulo = 0; int index = 0; PgMng.Reset(4, 1, Resources.Messages.CREANDO_PARTES_ASISTENCIA, this); try { PromocionInfo promo = PromocionInfo.Get(_entity.OidPromocion, true); AlumnoList alumnos = AlumnoList.GetListByPromocion(promo.Oid, true); if (promo.Sesiones.Count == 0) { Promocion promocion = Promocion.Get(_entity.OidPromocion, false); promocion.LoadChilds(typeof(Sesion_Promocion)); List <List <long> > duracion_sesiones = _entity.RellenaHorasSemana(); foreach (List <long> lista in duracion_sesiones) { foreach (long item in lista) { Sesion_Promocion ses = Sesion_Promocion.NewChild(promocion); ses.NHoras = duracion_sesiones.IndexOf(lista) + 1; if (item > 69) { ses.Sabado = true; } ses.HoraInicio = DateTime.Parse((item % 14 + 10).ToString("00") + ":00"); promocion.Sesiones.Add(ses); } } promo = promocion.GetInfo(true); promocion.CloseSession(); } PgMng.Grow(); foreach (Sesion item in _entity.Sesions) { //Desmarca las clases que han sido marcadas como impartidas pero que tienen //fecha y horas mayor que la actual if (item.Fecha.Date > DateTime.Today.Date /*|| (item.Fecha.Date.Equals(DateTime.Today.Date) * && item.Hora.TimeOfDay > DateTime.Today.TimeOfDay)*/ && item.Estado == 3) { item.Estado = 2; } //No genera partes de asistencia para clases que no se han impartido //if (item.Estado != 3) // continue; //si ya hay un parte para esta práctica no se vuelve a crear if (item.OidClasePractica > 0) { bool esta = false; foreach (ParteAsistencia p in _entity.Asistencias) { //ClasePracticaInfo clase = null; /*foreach (ClasePracticaList listap in _practicas) * { * clase = listap.GetItem(item.OidClasePractica); * if (clase != null) break; * }*/ //clase = _practicas[(int)item.Grupo].GetItem(item.OidClasePractica); foreach (Clase_Parte cp in p.Clases) { if (cp.Tipo == 2 && cp.OidClase == item.OidClasePractica && (cp.Grupo == 3 || cp.Grupo == item.Grupo)) { esta = true; break; } } /*if (p.Tipo == 2 && p.Sesiones.Contains(item.OidClasePractica.ToString()) * && !p.Texto.Contains(" G" + Convert.ToString(3 - item.Grupo) + " ")) * { * esta = true; * break; * }*/ if (esta) { break; } } if (esta) { continue; } } if (item.OidClaseTeorica > 0 || item.OidClasePractica > 0 || item.OidClaseExtra > 0) { string aux = string.Empty; long oid_modulo_item = 0; string sesion = string.Empty; long tipo = 0; long oid_clase = 0; long grupo = 3; if (item.OidClasePractica != 0) { ClasePracticaInfo clase = null; /*foreach (ClasePracticaList listap in _practicas) * { * clase = listap.GetItem(item.OidClasePractica); * if (clase != null) break; * }*/ clase = _practicas[(int)item.Grupo].GetItem(item.OidClasePractica); oid_modulo_item = clase.OidModulo; aux = clase.Alias + " G" + item.Grupo.ToString(); sesion = clase.Oid.ToString(); tipo = 2; grupo = clase.Grupo; oid_clase = clase.Oid; } if (item.OidClaseTeorica != 0) { ClaseTeoricaInfo clase = _teoricas.GetItem(item.OidClaseTeorica); oid_modulo_item = clase.OidModulo; aux = clase.Alias; sesion = clase.Oid.ToString(); tipo = 1; oid_clase = clase.Oid; } if (item.OidClaseExtra != 0) { ClaseExtraInfo clase = _extras.GetItem(item.OidClaseExtra); oid_modulo_item = clase.OidModulo; aux = clase.Alias; sesion = clase.Oid.ToString(); tipo = 3; oid_clase = clase.Oid; } if (oid_modulo_item != 0) { if (item.OidClasePractica == 0) { foreach (Sesion_PromocionInfo ses in promo.Sesiones) { if (ses.HoraInicio.TimeOfDay == item.Hora.TimeOfDay) { count = 0; break; } } } if (count == 0) { ParteAsistencia parte = ParteAsistencia.NewChild(_entity); parte.Texto = aux + " "; parte.Sesiones = sesion + " "; parte.Fecha = item.Fecha; parte.HoraInicio = item.Hora.ToString("HH:mm"); parte.Tipo = tipo; parte.OidInstructor = item.OidProfesor; parte.OidInstructorEfectivo = item.OidProfesor; parte.CreateAlumnosList(alumnos, item.Grupo); if (index == _entity.Sesions.Count - 1) { parte.NHoras = count.ToString() + ":00"; } parte.MarkItemChild(); _entity.Asistencias.AddItem(parte); oid_modulo = oid_modulo_item; count++; if (tipo == 2) { _entity.Asistencias[_entity.Asistencias.Count - 1].NHoras = "5:00"; _entity.Asistencias[_entity.Asistencias.Count - 1].CreatePartePracticas(item.OidClasePractica); } else { _entity.Asistencias[_entity.Asistencias.Count - 1].NHoras = count.ToString() + ":00"; } } else { ParteAsistencia ultima = _entity.Asistencias[_entity.Asistencias.Count - 1]; if (ultima.OidHorario == item.OidHorario && ultima.Fecha.Date.Equals(item.Fecha.Date) && Convert.ToDateTime(ultima.HoraInicio).AddHours(count).Hour.Equals(item.Hora.Hour) && ultima.OidInstructor == item.OidProfesor && oid_modulo_item == oid_modulo && ((ultima.Tipo == 1 && item.OidClaseTeorica > 0) || (ultima.Tipo == 2 && item.OidClasePractica > 0) || (ultima.Tipo == 3 && item.OidClaseExtra > 0))) { count++; sesion += " "; if ((item.OidClasePractica > 0 && _entity.Asistencias[_entity.Asistencias.Count - 1].Sesiones != sesion) || item.OidClasePractica == 0) { _entity.Asistencias[_entity.Asistencias.Count - 1].Texto += aux + " "; _entity.Asistencias[_entity.Asistencias.Count - 1].Sesiones += sesion; _entity.Asistencias[_entity.Asistencias.Count - 1].NHoras = count.ToString() + ":00"; if (index == _entity.Sesions.Count - 1) { //_entity.Asistencias[_entity.Asistencias.Count - 1].Fecha = item.Fecha; //_entity.Asistencias[_entity.Asistencias.Count - 1].Hora = item.Hora; //_entity.Asistencias[_entity.Asistencias.Count - 1].OidInstructor = item.OidProfesor; count = 0; } } else { ClasePracticaInfo clase = null; clase = _practicas[(int)item.Grupo].GetItem(item.OidClasePractica); string texto_aux = clase.Alias + " G" + item.Grupo.ToString() + " "; if (_entity.Asistencias[_entity.Asistencias.Count - 1].Texto != texto_aux) { _entity.Asistencias[_entity.Asistencias.Count - 1].Texto = clase.Alias; _entity.Asistencias[_entity.Asistencias.Count - 1].CreateAlumnosList(alumnos, 3); _entity.Asistencias[_entity.Asistencias.Count - 1].CreatePartePracticas(item.OidClasePractica); } } } else { ParteAsistencia parte = ParteAsistencia.NewChild(_entity); parte.Texto = aux + " "; parte.Sesiones = sesion + " "; parte.Fecha = item.Fecha; parte.HoraInicio = item.Hora.ToString("HH:mm"); parte.Tipo = tipo; parte.OidInstructor = item.OidProfesor; parte.OidInstructorEfectivo = item.OidProfesor; parte.CreateAlumnosList(alumnos, item.Grupo); if (index == _entity.Sesions.Count - 1) { parte.NHoras = count.ToString() + ":00"; } parte.MarkItemChild(); _entity.Asistencias.AddItem(parte); oid_modulo = oid_modulo_item; count = 1; if (tipo == 2) { _entity.Asistencias[_entity.Asistencias.Count - 1].NHoras = "5:00"; _entity.Asistencias[_entity.Asistencias.Count - 1].CreatePartePracticas(item.OidClasePractica); } else { _entity.Asistencias[_entity.Asistencias.Count - 1].NHoras = count.ToString() + ":00"; } } } Clase_Parte registro = _entity.Asistencias[_entity.Asistencias.Count - 1].Clases.NewItem(_entity.Asistencias[_entity.Asistencias.Count - 1]); registro.OidClase = oid_clase; registro.Tipo = tipo; registro.Grupo = grupo; } } index++; } PgMng.Grow(); return(true); } catch { return(false); } finally { PgMng.FillUp(); } }
/// <summary> /// Función recursiva que va creando el árbol de submódulos y preguntas /// </summary> /// <param name="padre"></param> /// <param name="apartado"></param> private void SetAlumnosValues(TreeNode padre, PromocionInfo promocion) { TreeNode nodo = new TreeNode(promocion.Numero + " - " + promocion.Nombre); nodo.NodeFont = new Font("Tahoma", (float)8.25, FontStyle.Regular); nodo.ForeColor = System.Drawing.Color.Black; nodo.Tag = promocion; nodo.SelectedImageKey = "submodulo"; if (_alumnos == null) { _alumnos = AlumnoList.GetAlumnosAdmitidosList(_entity.OidModulo, _entity.Desarrollo, _entity.Oid, ExamenPromocionList.GetChildList(_entity.Promociones), _entity.FechaExamen, true); } foreach (AlumnoInfo alumno in _alumnos) { bool pertenece = false; if (alumno.Promociones == null) { alumno.LoadChilds(typeof(Alumno_Promocion), false); } foreach (Alumno_PromocionInfo item in alumno.Promociones) { if (item.OidPromocion == promocion.Oid) { pertenece = true; break; } } if (pertenece) { TreeNode nodo_p = new TreeNode("[" + alumno.NExpediente + "] " + alumno.Apellidos + ", " + alumno.Nombre); nodo_p.NodeFont = new Font("Tahoma", (float)8.25, FontStyle.Regular); nodo_p.ForeColor = System.Drawing.Color.Black; nodo_p.Tag = alumno; foreach (Alumno_Examen item in _entity.Alumnos) { if (item.OidAlumno == alumno.Oid) { nodo_p.Checked = true; break; } } nodo.Nodes.Add(nodo_p); } } if (nodo.Nodes.Count > 0) { if (padre == null) { Arbol_TV.Nodes.Add(nodo); } else { padre.Nodes.Add(nodo); } } }
/// <summary> /// Asigna el objeto principal al origen de datos /// <returns>void</returns> /// </summary> protected override void RefreshMainData() { Datos_Alumnos.DataSource = AlumnoList.GetListByPromocion(EntityInfo.Oid, false); PgMng.FillUp(); }
public override void RefreshSecondaryData() { _alumnos = AlumnoList.GetList(false); PgMng.Grow(); }