public function getperiodAction() { $request = $this->getRequest(); $format = $request->getParam('format', 'json'); $department = $request->getParam('department_id'); $degree = $request->getParam('degree_id'); $semester = $request->getParam('semester_id'); $weekday = $request->getParam('weekday_number'); if (isset($department) and isset($degree) and isset($semester) and isset($weekday)) { $result = Acad_Model_DbTable_Period::getPeriod($department, $degree, (int) $semester, (int) $weekday); switch (strtolower($format)) { case 'json': $this->_helper->json($result); return; case 'select': echo '<select>'; echo '<option>Select one</option>'; foreach ($result as $key => $row) { echo '<option value="' . $row['period_id'] . '">' . $row['period_number'] . '</option>'; } echo '</select>'; return; default: header("HTTP/1.1 400 Bad Request"); echo 'Unsupported format'; } } else { header("HTTP/1.1 400 Bad Request"); } }
public function isvaliddurationAction() { $objPeriod = new Acad_Model_DbTable_Period(); $request = $this->getRequest(); $department_id = $request->getParam('department_id'); $degree_id = $request->getParam('degree_id'); $semester_id = $request->getParam('semester_id'); $weekday_number = $request->getParam('weekday_number'); $period_id = $request->getParam('period_id'); $period_detail = $objPeriod->getIdPeriod($period_id); $period_number = $period_detail['period_number']; $tmpperiod_number = $period_number; $groups = Acad_Model_DbTable_Groups::getClassGroups($department_id, $degree_id); $totalgroups = count($groups); array_push($groups, array('group_id' => "ALL")); $grpcnt = 0; $tmpspan = 0; $notavailablegroups = array(); $cnt = 0; while ($tmpperiod_number > 1 && $grpcnt < $totalgroups) { $tmpspan++; $tmpperiod_number = $tmpperiod_number - 1; $tmpperiod_id = $objPeriod->getPeriod($department_id, $degree_id, $semester_id, $weekday_number, $tmpperiod_number); $period_id = $tmpperiod_id[0]['period_id']; $group_detail = $this->model->groupPeroidDuration($period_id, $groups); if (count($group_detail) == 0) { continue; } $grpcnt = $grpcnt + count($group_detail); foreach ($group_detail as $key => $value) { if ($value['period_duration'] > $tmpspan) { $notavailablegroups[$cnt] = $value['group_id']; } if ($value['group_id'] == 'ALL') { $grpcnt = $totalgroups; break; } foreach ($groups as $tmpkey => $tmpvalue) { if ($tmpvalue['group_id'] == $value['group_id']) { unset($groups[$tmpkey]); } } } } print_r($notavailablegroups); }