/**
  * 
  * Enter description here ...
  * @param Acad_Model_Department $dept
  * @param string $dateFrom
  * @param string $degree
  * @param int $semester
  */
 public function fetchAttendanceDetail(Acad_Model_Department $dept, $dateFrom = null, $degree = null, $semester = null)
 {
     if (null == isset($dateFrom)) {
         $dateFrom = 'CURRENT_DATE';
     }
     $select = $this->getDbTable()->getAdapter()->select()->from('period_attendance', array('staff_id', 'marked_date'))->join('timetable', '`period_attendance`.`timetable_id` = `timetable`.`timetable_id`', array('period.degree_id', 'period.semester_id', 'periods_covered', 'subject_code', 'subject_mode_id', 'group_id'))->join('period', '`timetable`.`period_id` = `period`.`period_id`', array())->where('`period_attendance`.period_date = ?', $dateFrom)->where('timetable.department_id = ?', $dept->getDepartment());
     return $select->query()->fetchAll();
 }
 /**
  * An semesterwise overview of student attendance.
  * @param Acad_Model_Department $department
  * @param string $programme
  * @param date_string $date_from
  * @param date_string $date_upto
  * @param int $semester
  */
 public function fetchAttendance(Acad_Model_Department $department, $programme = NULL, $date_from = NULL, $date_upto = NULL, $semester = null)
 {
     $dept = $department->getDepartment();
     $studentAttendance = new Acad_Model_DbTable_StudentAttendance2();
     $order = array('semester_id', 'subject_mode_id', 'subject_code', 'group_id');
     $rawResult = $studentAttendance->stats($dept, $programme, $semester, null, null, null, $date_from, $date_upto, true, $order);
     $processed = array();
     foreach ($rawResult as $department_id => $attendanceList) {
         foreach ($attendanceList as $key => $attendance) {
             $subjectCode = $attendance['subject_code'];
             $subjectMode = $attendance['subject_mode_id'];
             $group_id = $attendance['group_id'];
             $semester_id = $attendance['semester_id'];
             unset($attendance['subject_code']);
             unset($attendance['subject_mode_id']);
             unset($attendance['group_id']);
             unset($attendance['semester_id']);
             $processed[$semester_id][$subjectMode][$subjectCode][$group_id][] = $attendance;
         }
     }
     return $processed;
 }
Beispiel #3
0
 /**
  * Get Faculty Subjects in hand
  * @param Acad_Model_Member_Faculty $faculty
  * @param Acad_Model_Class|Acad_Model_Department $viewLevel = null
  * @param bool $showModes = null
  * @return array
  */
 public function fetchInHandSubjects(Acad_Model_Member_Faculty $faculty, $viewLevel = NULL, $showModes = NULL)
 {
     $select = $this->getDbTable()->getAdapter()->select();
     $select->distinct()->from('period_attendance2', array('subject_code', 'department_id', 'programme_id', 'semester_id'))->where('faculty_id = ?', $faculty->getMemberId());
     if (isset($showModes)) {
         $select->columns('subject_mode_id');
     }
     if ($viewLevel instanceof Acad_Model_Class) {
         $select->where('department_id = ?', $viewLevel->getDepartment())->where('programme_id = ?', $viewLevel->getProgramme_id())->where('semester_id = ?', $viewLevel->getSemester());
     } elseif ($viewLevel instanceof Acad_Model_Department) {
         $select->where('department_id = ?', $viewLevel->getDepartment());
     }
     return $select->query()->fetchAll(Zend_Db::FETCH_GROUP);
 }