Пример #1
0
 public function tempAction()
 {
     echo '<pre>';
     //$obj = new Acad_Model_DbTable_TimeTable();
     //$var = Acad_Model_DbTable_TimeTable::currentPeriodStatus('438', TRUE);
     $var = Acad_Model_DbTable_AcademicSession::getSessionEndDate();
     print_r($var);
 }
Пример #2
0
 public function insert(array $data)
 {
     $periodStaus = self::periodStatus($data['period_id'], true);
     if ('FULL' != $periodStaus['STATUS']) {
         if ('PARTIAL' == $periodStaus['STATUS']) {
             if ('ALL' === strtoupper($data['group_id'])) {
                 throw new Zend_Exception('Period status is ' . $periodStaus['STATUS'] . '. ' . $data['group_id'] . ' groups can not be placed.', Zend_Log::WARN);
             }
             //TODO More strict check can also be implemented (It is still having some holes but hard to detect, I dont want to correct that because frontend covers that problem.).
             /* self::getLogger()->log('Future partial period!! Do something.', Zend_Log::DEBUG);
                $errVar = '';
                foreach ($periodStaus['periodStatus'] as $key => $value) {
                    $errVar .= "[$key] ::".var_export($value, true);
                }
                
                self::getLogger()->log('Future partial period. Attempt: '.var_export($data, true).' Actual: '.$errVar, Zend_Log::DEBUG);
                */
         }
         //TODO Include Block and Rooms
         $data['block_id'] = 'ADM_B1';
         $data['room_id'] = '1';
         $periodsCovered = $data['period'];
         for ($i = 1; $i < $data['period_duration']; ++$i) {
             $nextPeriod = $data['period'] + $i;
             $periodsCovered .= ',' . $nextPeriod;
         }
         $data['periods_covered'] = $periodsCovered;
         $date = new Zend_Date();
         $date->setDate($data['valid_from'], 'dd/MM/YYYY');
         $data['valid_from'] = $date->toString('YYYY-MM-dd');
         $data['valid_upto'] = Acad_Model_DbTable_AcademicSession::getSessionEndDate();
         $currentPeriodStatus = self::currentPeriodStatus($data['period_id'], TRUE);
         self::getDefaultAdapter()->beginTransaction();
         if ($currentPeriodStatus['STATUS'] != 'EMPTY') {
             self::updateCurrentValidity($currentPeriodStatus, $data['group_id'], $data['valid_from'], $data['periods_covered']);
         }
         unset($data['period']);
         unset($data['degree_id']);
         unset($data['semester_id']);
         unset($data['weekday_number']);
         self::getLogger()->log('Final data for insert', Zend_Log::INFO);
         self::getLogger()->log($data, Zend_Log::DEBUG);
         //Strange but NULL values are being accepted by MySQL(at least my server even in NOT NULL condition)
         //so im crossing checking null values
         foreach ($data as $column => $value) {
             if (!$value) {
                 self::getDefaultAdapter()->rollBack();
                 throw new Zend_Exception($column . ' should have some value.', Zend_Log::ERR);
             }
         }
         $newID = parent::insert($data);
         self::getDefaultAdapter()->commit();
         return $newID;
     } else {
         $errVar = '';
         foreach ($periodStaus['periodStatus'] as $key => $value) {
             $errVar .= "[{$key}] ::" . var_export($value, true);
         }
         throw new Zend_Exception('Future period entry confliction. Attempt: ' . var_export($data, true) . ' Actual: ' . $errVar, Zend_Log::WARN);
     }
 }