Ejemplo n.º 1
0
 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");
     }
 }
Ejemplo n.º 2
0
 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);
 }