public function render()
 {
     $control = new CalemReadDefault(array());
     $val = $this->getFieldRawValue();
     $schedule = CalemScheduleInfo::decode($val);
     $control->setValue($schedule->getText());
     return $control->render();
 }
 public function getTimeDue($releaseDay, $releaseTime)
 {
     $tm = null;
     if ($releaseDay && $releaseTime) {
         $schedDay = CalemScheduleInfo::decode($releaseDay);
         $schedTime = CalemScheduleTimeInfo::decode($releaseTime);
         $dueTime = $schedTime->getNextDueTime(null, $schedDay);
         $tm = $dueTime ? CalemText::getServerDateTime($dueTime) : null;
     }
     return $tm;
 }
 /**
  * Figure out next time due
  */
 public function updateNextDueTime($jobRow)
 {
     $schedDay = CalemScheduleInfo::decode($jobRow['release_day']);
     $schedTime = CalemScheduleInfo::decode($jobRow['release_time']);
     $dueTime = CalemText::parseServerDateTime($jobRow['time_due']);
     $newTime = $schedTime->getNextDueTime($dueTime, $schedDay);
     try {
         $this->dbo->setValue('time_due', CalemText::getServerDateTime($newTime));
         $this->dbo->setIdForUpdate($jobRow['id']);
         $this->dbo->update();
     } catch (Exception $e) {
         $this->logger->error("Error in updating job row=" . var_export($jobRow, true) . ", msg=" . $e->getMessage());
     }
 }
 public function __construct($dbSchedInfo)
 {
     parent::__construct();
     $this->scheduleInfo = CalemScheduleInfo::decode($dbSchedInfo);
 }