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); }
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); } }