protected void btnAnular_Click(object sender, EventArgs e) { ImageButton boton = sender as ImageButton; TableCell celda = boton.Parent as TableCell; TableRow fila = celda.Parent as TableRow; int indexActual = tblPendientes.Rows.GetRowIndex(fila); int _idSolicitud = int.Parse(tblPendientes.Rows[indexActual].Cells[0].Text); Solicitud _solicitudPorAnular = new Solicitud(); LinkedList<Solicitud> _solicitudesPendientes = (LinkedList<Solicitud>)Session["LISTA_PENDIENTES"]; foreach (var _solicitud in _solicitudesPendientes) { if (_solicitud.Id_Solicitud.Equals(_idSolicitud)) { _solicitudPorAnular = _solicitud; } } IMetodosEstudiante _metEstudiante = new MetodosEstudiante(); bool _resultado = _metEstudiante.AnularSolicitud(_solicitudPorAnular); if (_resultado) { Page.Response.Redirect(Page.Request.Url.PathAndQuery); } else { lblPopupHeader.Text = "Error al anular solicitud"; lblPopupBody.Text = "La solicitud no ha sido anulada."; Pop_Alerta.Show(); } }
/// <summary> /// Define las acciones del boton Enviar. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button1_Click(object sender, EventArgs e) { Ado.ClasesComunes.Estudiante _estudianteDatos = (Ado.ClasesComunes.Estudiante)Session["Estudiante"]; PlanEstudios _planEstudios = (PlanEstudios)Session["Plan"]; IMetodosAdministrador _metAdmin = new MetodosAdministrador(); Periodo _perUltimo = _metAdmin.UltimoPeriodo(); Solicitud _solicitudNueva = new Solicitud(); _solicitudNueva.Fec_Creacion = DateTime.Now; _solicitudNueva.Txt_Comentario = txtComentario.Text; _solicitudNueva.txt_Curso = ddlCursos.SelectedValue; _solicitudNueva.Txt_Estado = "PENDIENTE"; _solicitudNueva.Txt_Motivo = ""; IMetodosEstudiante _metEstudiante = new MetodosEstudiante(); _metEstudiante.GuardarDatosEstudiantes(_estudianteDatos, _planEstudios.Id_Plan_Estudios); if ((_perUltimo.Fec_Inicio <= _solicitudNueva.Fec_Creacion) && (_perUltimo.Fec_Fin >= _solicitudNueva.Fec_Creacion)) { _metEstudiante.GuardarSolicitud(_estudianteDatos.Id_Carnet, _perUltimo.Id_Periodo, _solicitudNueva); } else { ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "Error al crear la solicitud", "alert('Su solicitud no pudo ser procesada, ya que no fue realizada dentro del periodo de recepción');",true); } }
/** * Crea una nueva solicitud en la base de datos **/ public bool GuardarSolicitud(string pEstudiante, int pPeriodo, Solicitud pSolicitud) { IMetodosEstudiante _metEstudiante = new MetodosEstudiante(); IMetodosAdministrador _metAdmin = new MetodosAdministrador(); Periodo _perUltimo = _metAdmin.UltimoPeriodo(); pSolicitud.Txt_Estado = "PENDIENTE"; if ((_perUltimo.Fec_Inicio <= pSolicitud.Fec_Creacion) && (_perUltimo.Fec_Fin >= pSolicitud.Fec_Creacion)) { _metEstudiante.GuardarSolicitud(pEstudiante, pPeriodo, pSolicitud); return true; } else { return false; } }
/** * Anula la solicitud especificada **/ public bool AnularSolicitud(Solicitud pSolicitud) { try { _objConexionBase = new Inclutec_BDEntities(); SIFSolicitud _sifSolicitud = (from _sifSolicitudes in _objConexionBase.SIFSolicituds where _sifSolicitudes.id_Solicitud == pSolicitud.Id_Solicitud select _sifSolicitudes).First(); _sifSolicitud.txt_estado = _sifSolicitud.txt_estado; _objConexionBase.SaveChanges(); _objConexionBase.Connection.Close(); return true; } catch (Exception) { return false; } }
/** * Guarda la relacion entre el grupo y la solicitud **/ public bool GuardarGruposSolicitud(Solicitud pSolicitud, LinkedList<Grupo> pGrupos) { IMetodosEstudiante _metEstudiante = new MetodosEstudiante(); return _metEstudiante.GuardarGruposSolicitud(pSolicitud, pGrupos); }
/** * Anula la solicitud especificada **/ public bool AnularSolicitud(Solicitud pSolicitud) { IMetodosEstudiante _metEstudiante = new MetodosEstudiante(); return _metEstudiante.AnularSolicitud(pSolicitud); }
/** * Retorna las solicitudes reprobadas hechas por el _sifeEstudiante **/ public LinkedList<Solicitud> ObtenerSolicitudesReprobadas(string pCarnet, int pPeriodo) { try { _objConexionBase = new Inclutec_BDEntities(); var _dataSolicitudes = from _sifSolicitudes in _objConexionBase.SIFSolicituds where _sifSolicitudes.FK_Estudiante_carnet == pCarnet && _sifSolicitudes.FK_Periodo_idPeriodo == pPeriodo && _sifSolicitudes.txt_estado == "REPROBADA" select _sifSolicitudes; LinkedList<Solicitud> _liSolicitudes = new LinkedList<Solicitud>(); foreach (SIFSolicitud _sifSolicitud in _dataSolicitudes) { Solicitud _solicitud = new Solicitud(); _solicitud.Id_Solicitud = _sifSolicitud.id_Solicitud; _solicitud.Fec_Creacion = _sifSolicitud.fec_creacion; _solicitud.Txt_Comentario = _sifSolicitud.txt_comentario; _solicitud.Txt_Estado = _sifSolicitud.txt_estado; _solicitud.Txt_Motivo = _sifSolicitud.txt_motivo; _solicitud.txt_Curso = _sifSolicitud.txt_curso; _liSolicitudes.AddLast(_solicitud); } _objConexionBase.Connection.Close(); return _liSolicitudes; } catch (Exception) { return null; } }
/** * Obtiene la solicitud especificada por el id **/ public Solicitud ObtenerSolicitudEspecificada(int pSolicitud) { try { _objConexionBase = new Inclutec_BDEntities(); SIFSolicitud _sifSolicitud = (from _sifSolicitudes in _objConexionBase.SIFSolicituds where _sifSolicitudes.id_Solicitud == pSolicitud select _sifSolicitudes).First(); _objConexionBase.Connection.Close(); Solicitud _solicitud = new Solicitud(); _solicitud.Fec_Creacion = _sifSolicitud.fec_creacion; _solicitud.Id_GrupoAceptado = _sifSolicitud.grupo_aceptado; _solicitud.Id_Solicitud = _sifSolicitud.id_Solicitud; _solicitud.Txt_Comentario = _sifSolicitud.txt_comentario; _solicitud.txt_Curso = _sifSolicitud.txt_curso; _solicitud.Txt_Estado = _sifSolicitud.txt_estado; _solicitud.Txt_Motivo = _sifSolicitud.txt_motivo; return _solicitud; } catch(Exception) { return null; } }
/** * Retorna los grupos especificados en una solicitud de inclusion **/ public LinkedList<Grupo_Por_Solicitud> ObtenerGruposInclusion(Solicitud pSolicitud) { try { _objConexionBase = new Inclutec_BDEntities(); var _liGruposSolicitud = from _sifGruposSolicitud in _objConexionBase.SIFGrupo_Por_Solicitud where _sifGruposSolicitud.FK_Solicitud_idSolicitud == pSolicitud.Id_Solicitud select _sifGruposSolicitud; LinkedList<Grupo_Por_Solicitud> _liGrupos = new LinkedList<Grupo_Por_Solicitud>(); foreach(SIFGrupo_Por_Solicitud _sifGrupoSolicitud in _liGruposSolicitud){ //Obtiene el grupo por solicitud Grupo_Por_Solicitud _gpsGrupo = new Grupo_Por_Solicitud(); _gpsGrupo.Id_Grupo_Por_Solicitud = _sifGrupoSolicitud.id_Grupo_Por_Solicitud; _gpsGrupo.Num_Prioridad = _sifGrupoSolicitud.num_prioridad; //Obtiene el grupo SIFGrupo _sifGrupo = (from _sifGrupos in _objConexionBase.SIFGrupoes where _sifGrupos.id_Grupo == _sifGrupoSolicitud.FK_Grupo_idGrupo select _sifGrupos).First(); Grupo _gGrupo = new Grupo(); _gGrupo.Id_Curso = _sifGrupo.FK_Curso_idCurso; _gGrupo.Id_Grupo = _sifGrupo.id_Grupo; _gGrupo.Num_Cupos = _sifGrupo.num_cupos; _gGrupo.Num_Cupos_Extra = _sifGrupo.num_cupos_extra; _gGrupo.Num_Grupo = _sifGrupo.num_grupo; //Define los horarios para los grupos var _liHorarios = from _sitHorarios in _objConexionBase.SITHorarios where _sitHorarios.FK_Grupo_idGrupo == _gGrupo.Id_Grupo select _sitHorarios; _gGrupo.Li_Horarios = new LinkedList<Horario>(); foreach (SITHorario _sitHorario in _liHorarios) { Horario _hHorario = new Horario(); _hHorario.Id_Horario = _sitHorario.id_Horario; _hHorario.Txt_Dia = _sitHorario.txt_dia; _hHorario.Txt_Hora_Final = _sitHorario.tim_hora_fin.ToString(); _hHorario.Txt_Hora_Inicio = _sitHorario.tim_hora_inicio.ToString(); _gGrupo.Li_Horarios.AddLast(_hHorario); } //Define el grupo de grupo por solicitud _gpsGrupo.Id_Grupo = _gGrupo; //Agrega grupo por solicitud a la lista _liGrupos.AddLast(_gpsGrupo); } _objConexionBase.Connection.Close(); return _liGrupos; } catch (Exception) { return null; } }
/// <summary> /// Modifica los grupos especificados en una solicitud /// </summary> /// <param name="pSolicitud"></param> /// <param name="pEliminados">Contiene los ids de los grupos por solicitud eliminados</param> /// <returns></returns> public bool ModificiarSolicitud(Solicitud pSolicitud, LinkedList<int> pEliminados) { _objConexionBase = new Inclutec_BDEntities(); //Obtiene los grupos por solicitud de la solicitud var _sifGrupos = from _sifGPS in _objConexionBase.SIFGrupo_Por_Solicitud where _sifGPS.FK_Solicitud_idSolicitud == pSolicitud.Id_Solicitud select _sifGPS; //Asigna las nuevas prioridades y elimina los grupos marcados a eliminar foreach (SIFGrupo_Por_Solicitud _sifGPS in _sifGrupos) { if (pEliminados.Contains(_sifGPS.id_Grupo_Por_Solicitud)) { _objConexionBase.DeleteObject(_sifGPS); } else { foreach (Grupo_Por_Solicitud _gpsGrupo in pSolicitud.Li_Grupos) { if (_sifGPS.id_Grupo_Por_Solicitud == _gpsGrupo.Id_Grupo_Por_Solicitud) { _sifGPS.num_prioridad = _gpsGrupo.Num_Prioridad; break; } } } } _objConexionBase.SaveChanges(); _objConexionBase.Connection.Close(); return true; }
/** * Guarda la solicitud creada por el _sifeEstudiante **/ public Solicitud GuardarSolicitud(string pEstudiante, int pPeriodo, Solicitud pSolicitud) { try { SIFSolicitud _sifSolicitud = new SIFSolicitud(); _sifSolicitud.txt_comentario = pSolicitud.Txt_Comentario; _sifSolicitud.txt_curso = pSolicitud.txt_Curso; _sifSolicitud.txt_estado = pSolicitud.Txt_Estado; _sifSolicitud.txt_motivo = pSolicitud.Txt_Motivo; _sifSolicitud.grupo_aceptado = 0; _sifSolicitud.fec_creacion = DateTime.Now; _sifSolicitud.FK_Estudiante_carnet = pEstudiante; _sifSolicitud.FK_Periodo_idPeriodo = pPeriodo; _objConexionBase = new Inclutec_BDEntities(); _objConexionBase.AddToSIFSolicituds(_sifSolicitud); _objConexionBase.SaveChanges(); _objConexionBase.Connection.Close(); pSolicitud.Id_Solicitud = _sifSolicitud.id_Solicitud; return pSolicitud; }catch (Exception) { return null; } }
/// <summary> /// Guarda los grupos de una solicitud /// </summary> /// <param name="pSolicitud"></param> /// <param name="pGrupos">Debe ir ordenada en cuanto a prioridad, /// entre mayor la prioridad, mas antes tiene que ir el grupo</param> /// <returns></returns> public bool GuardarGruposSolicitud(Solicitud pSolicitud, LinkedList<Grupo> pGrupos) { try { int _iPrioridad = 1; _objConexionBase = new Inclutec_BDEntities(); foreach(Grupo _gGrupo in pGrupos) { SIFGrupo_Por_Solicitud _sifGrupo = new SIFGrupo_Por_Solicitud(); _sifGrupo.num_prioridad = _iPrioridad; _sifGrupo.FK_Grupo_idGrupo = _gGrupo.Id_Grupo; _sifGrupo.FK_Solicitud_idSolicitud = pSolicitud.Id_Solicitud; _objConexionBase.AddToSIFGrupo_Por_Solicitud(_sifGrupo); _iPrioridad++; } _objConexionBase.SaveChanges(); _objConexionBase.Connection.Close(); return true; } catch (Exception ex) { return false; } }