/// <author></author> /// <summary> /// Set all the data from professors and courses on the helper class /// </summary> /// <param name="pReportInfo">Helper class to save all data</param> /// <returns></returns> public ReporteInfo setCourses(ReporteInfo pReportInfo, int pPeriodID) { var vPeriodID = pPeriodID; var entidad_temp = ""; var vGroups = db.Groups.Where(p => p.PeriodID == vPeriodID).OrderBy(p => p.Number).ToList(); foreach (Group vGroup in vGroups) { var vCargaEstimada = 0; var vDetail = db.GroupClassrooms.Where(p => p.GroupID == vGroup.ID).ToList(); if (vGroup.EstimatedHour != 0 && vDetail.Count != 0) { vCargaEstimada = (vGroup.EstimatedHour / vDetail.Count); } String vTypeHour = ""; if (vGroup.HourAllocatedTypeID != null && vGroup.HourAllocatedType.Name != "Carga") { vTypeHour = vGroup.HourAllocatedType.Name; } foreach (var vSchedule in vDetail) { string HoraInicio = vSchedule.Schedule.StartHour; string HoraFin = vSchedule.Schedule.EndHour; double Carga = vCargaEstimada; var vCourseInfo = db.BlocksXPlansXCourses.Single(p => p.ID == vGroup.BlockXPlanXCourseID).Course; entidad_temp = vGroup.BlockXPlanXCourse.AcademicBlockXStudyPlan.StudyPlan.EntityType.Name; pReportInfo.todo_profesores.Add(new Profesor { Tipo = "Carga docente", Grupo = vGroup.Number + "", Nombre = vCourseInfo.Name, Profesor_Nombre = (vGroup.Professor != null) ? vGroup.Professor.Name : "No asignado", Dia = vSchedule.Schedule.Day, HoraInicio = HoraInicio, HoraFin = HoraFin, PlanEstudio = vGroup.BlockXPlanXCourse.AcademicBlockXStudyPlan.StudyPlan.Name, Sede = vGroup.BlockXPlanXCourse.Sede.Name, CargaEstimada = Carga + "", TipoHora = vTypeHour, Aula = vSchedule.Classroom.Code, Entidad = entidad_temp }); List <string> vProfessorEntity; if (vGroup.ProfessorID != null) { if (vTypeHour == "Carga" || vTypeHour == "") { if (pReportInfo.profesores_carga_tec.ContainsKey(vGroup.Professor.Name)) { pReportInfo.profesores_carga_tec[vGroup.Professor.Name] += Carga; } else { pReportInfo.profesores_carga_tec.Add(vGroup.Professor.Name, Carga); } } else if (vTypeHour == "Reconocimiento") { if (pReportInfo.profesores_carga_reconocimiento.ContainsKey(vGroup.Professor.Name)) { pReportInfo.profesores_carga_reconocimiento[vGroup.Professor.Name] += Carga; } else { pReportInfo.profesores_carga_reconocimiento.Add(vGroup.Professor.Name, Carga); } } else if (vTypeHour == "Recargo") { if (pReportInfo.profesores_carga_recargo.ContainsKey(vGroup.Professor.Name)) { pReportInfo.profesores_carga_recargo[vGroup.Professor.Name] += Carga; } else { pReportInfo.profesores_carga_recargo.Add(vGroup.Professor.Name, Carga); } } if (pReportInfo.profesores_cursos_asociados.ContainsKey(vGroup.Professor.Name)) // ask if the course, project or commission has been counted { vProfessorEntity = pReportInfo.profesores_cursos_asociados[vGroup.Professor.Name]; vProfessorEntity.Add(vCourseInfo.Name); pReportInfo.profesores_cursos_asociados[vGroup.Professor.Name] = vProfessorEntity; } else { pReportInfo.profesores_cursos_asociados.Add(vGroup.Professor.Name, new List <string>() { vCourseInfo.Name }); } } } } return(pReportInfo); }
/// <author> Cristian Araya Fuentes </author> /// <summary> /// Set all the data from professors and commisions on the helper class /// </summary> /// <param name="pReportInfo">Helper class to save all data</param> /// <returns></returns> public ReporteInfo setCommissions(ReporteInfo pReportInfo, int pPeriodID) { var entidad_temp = ""; var vPeriodID = pPeriodID; var vCommissions = db.Commissions.ToList(); foreach (var vCommission in vCommissions) { var vProfessors = db.CommissionsXProfessors.Where(p => p.CommissionID == vCommission.ID && p.PeriodID == vPeriodID).ToList(); foreach (var vProfe in vProfessors) { String vTypeHour = ""; // if (vProfe.HourAllocatedTypeID != null && vProfe.HourAllocatedType.Name != "Carga") { vTypeHour = vProfe.HourAllocatedType.Name; } var vSchedule = vProfe.Schedule.ToList(); foreach (var vDay in vSchedule) { var HoraInicio = DateTime.Parse(vDay.StartHour); var HoraFin = DateTime.Parse(vDay.EndHour); var Carga = Math.Ceiling(HoraFin.Subtract(HoraInicio).TotalHours); if (HoraInicio <= DateTime.Parse("12:00 PM") && HoraFin >= DateTime.Parse("01:00 PM")) { Carga = Carga - 1; } entidad_temp = vCommission.EntityType.Name; pReportInfo.todo_profesores.Add(new Profesor { Tipo = "Carga Académico Administrativo", Grupo = "N/A", Nombre = vCommission.Name, Profesor_Nombre = vProfe.Professor.Name, Dia = vDay.Day, HoraInicio = HoraInicio.ToShortTimeString(), HoraFin = HoraFin.ToShortTimeString(), PlanEstudio = "N/A", Sede = "N/A", CargaEstimada = Carga + "", TipoHora = vTypeHour, Aula = "N/A", Entidad = entidad_temp }); List <string> vProfessorEntity; if (vTypeHour == "Carga" || vTypeHour == "") { if (pReportInfo.profesores_carga_tec.ContainsKey(vProfe.Professor.Name)) { pReportInfo.profesores_carga_tec[vProfe.Professor.Name] += Carga; } else { pReportInfo.profesores_carga_tec.Add(vProfe.Professor.Name, Carga); } } else if (vTypeHour == "Reconocimiento") { if (pReportInfo.profesores_carga_reconocimiento.ContainsKey(vProfe.Professor.Name)) { pReportInfo.profesores_carga_reconocimiento[vProfe.Professor.Name] += Carga; } else { pReportInfo.profesores_carga_reconocimiento.Add(vProfe.Professor.Name, Carga); } } else if (vTypeHour == "Recargo") { if (pReportInfo.profesores_carga_recargo.ContainsKey(vProfe.Professor.Name)) { pReportInfo.profesores_carga_recargo[vProfe.Professor.Name] += Carga; } else { pReportInfo.profesores_carga_recargo.Add(vProfe.Professor.Name, Carga); } } if (vProfe.ProfessorID != null) { if (pReportInfo.profesores_cursos_asociados.ContainsKey(vProfe.Professor.Name)) // ask if the course, project or commission has been counted { vProfessorEntity = pReportInfo.profesores_cursos_asociados[vProfe.Professor.Name]; vProfessorEntity.Add(vCommission.Name); pReportInfo.profesores_cursos_asociados[vProfe.Professor.Name] = vProfessorEntity; } else { pReportInfo.profesores_cursos_asociados.Add(vProfe.Professor.Name, new List <string>() { vCommission.Name }); } } } } } return(pReportInfo); }