/**
  * 
  * 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();
 }
 public function attendanceAction()
 {
     $department_id = $this->_getParam('department_id');
     $programme_id = $this->_getParam('programme_id');
     $semester_id = $this->_getParam('semester_id');
     $faculty_id = $this->_getParam('faculty_id');
     $dateFrom = $this->_getParam('date_from');
     $dateUpto = $this->_getParam('date_upto');
     $format = $this->_getParam('format', 'html');
     $faculty = new Acad_Model_Member_Faculty();
     if (true) {
         $faculty->setFacultyId($faculty_id);
     }
     $faculty->setDepartment($department_id);
     $objLevel = null;
     if ($department_id) {
         $objLevel = new Acad_Model_Department();
         $objLevel->setDepartment($department_id);
     }
     if ($department_id and $programme_id and $semester_id) {
         $objLevel = new Acad_Model_Class();
         $objLevel->setDepartment($department_id)->setProgramme_id($programme_id)->setSemester($semester_id);
     }
     $subjects = $faculty->getInHandSubjects($objLevel, TRUE);
     foreach ($subjects as $subject_code => $subjectClasses) {
         $subject = new Acad_Model_Course_Subject(array('subject_code' => $subject_code));
         $subjectName = $subject->getSubject_name();
         foreach ($subjectClasses as $key => $subjectClass) {
             $subjects[$subject_code][$key]['subject_name'] = $subjectName;
         }
     }
     switch (strtolower($format)) {
         case 'test':
             $this->_helper->logger($subjects);
             return;
         case 'html':
             $this->_helper->logger($subjects);
             $this->_helper->viewRenderer->setNoRender(false);
             $this->_helper->layout()->enableLayout();
             $this->view->assign('department_id', $this->view->escape($department_id));
             $urlSubjectDetail = $this->_helper->url('attendance', 'subject');
             $this->view->assign('urlSubjetDetail', $this->view->escape($urlSubjectDetail));
             $this->view->assign('subjects', $subjects);
             $this->view->assign('date_from', $this->view->escape($dateFrom));
             $this->view->assign('date_upto', $this->view->escape($dateUpto));
             $this->view->assign('faculty', $faculty);
             $this->view->assign('viewLevel', $objLevel);
             return;
         case 'json':
             echo $this->_helper->json($subjects, false);
             return;
         case 'jsonp':
             $callback = $this->_getParam('callback');
             echo $callback . '(' . $this->_helper->json($subjects, false) . ')';
             return;
     }
 }
 public function attendanceAction()
 {
     $department = new Acad_Model_Department();
     $request = $this->getRequest();
     $department_id = $request->getParam('department_id');
     $programme_id = $request->getParam('programme_id', 'BTECH');
     $dateFrom = $request->getParam('date_from');
     $dateUpto = $request->getParam('date_upto');
     $semester = $request->getParam('semester');
     $format = $this->_getParam('format', 'html');
     $authContent = Zend_Auth::getInstance()->getIdentity();
     if ('mgmt' == strtolower($authContent['department_id'])) {
         $this->view->assign('aboveDepartments', TRUE);
     } else {
         $department_id = $authContent['department_id'];
     }
     $this->view->assign('programme_id', $programme_id);
     $this->view->assign('department_id', $department_id);
     if (isset($department_id) and isset($programme_id)) {
         $attendance = $department->getStudentAttendance($programme_id, $dateFrom, $dateUpto, $semester);
         switch (strtolower($format)) {
             case 'test':
                 $this->_helper->logger($attendance);
                 return;
             case 'html':
                 $this->_helper->viewRenderer->setNoRender(false);
                 $this->_helper->layout()->enableLayout();
                 $this->view->assign('department_id', $department_id);
                 $this->view->assign('date_from', $dateFrom);
                 $this->view->assign('date_upto', $dateUpto);
                 $this->view->assign('attendance', $attendance);
                 $session_startdate = Acad_Model_DbTable_AcademicSession::getSessionStartDate();
                 $this->view->assign('session_startdate', $session_startdate);
                 return;
             case 'json':
                 echo $this->_helper->json($attendance, false);
                 return;
         }
     }
 }
 /**
  * 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;
 }
Example #5
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);
 }
 /**
  * Department wise detail of data
  * Enter description here ...
  */
 public function getdetaildataAction()
 {
     $request = $this->getRequest();
     //Getting Request Parameters
     $period_dateobj = new Zend_Date($request->getParam('attendance_date'), 'dd-MM-YYYY');
     $period_date = $period_dateobj->toString('YYYY-MM-dd');
     $department = $request->getParam('department_id');
     //$this->_helper->viewRenderer->setNoRender(false);
     //$this->_helper->layout()->enableLayout();
     $depttObj = new Acad_Model_Department();
     $depttObj->setDepartment($department);
     $result = $depttObj->getAttendanceDetail($period_date);
     $this->_helper->logger($result);
     $this->gridparam['page'] = $request->getParam('page', 1);
     // get the requested page
     $this->gridparam['limit'] = $request->getParam('rows', 20);
     // rows limit in Grid
     $this->_count = count($result);
     $response = new stdClass();
     foreach ($result as $key => $value) {
         $response->rows[$key]['id'] = $value['subject_code'];
         $response->rows[$key]['cell'] = array($value['staff_id'], $value['marked_date'], $value['degree_id'], $value['semester_id'], $value['periods_covered'], $value['subject_code'], $value['subject_mode_id'], $value['group_id']);
     }
     $response->page = $this->gridparam['page'];
     $response->total = 1;
     $response->records = $this->_count;
     echo $this->_helper->json($response, false);
 }