/** * Retrieve current status of reminder * * @param Olts_Reminder_Model_Reminder $reminder * @return Olts_Reminder_Model_Statuses */ public function getActualReminderStatus(Olts_Reminder_Model_Reminder $reminder) { $dateTo = $this->_getTimestamp($reminder->getDateTo()); $dateFrom = $this->_getTimestamp($reminder->getDateFrom()); $currentDate = $this->_getTimestamp(); $statusCode = Olts_Reminder_Model_Statuses::STATUS_CODE_FAILED; if ($reminder->getIsComplete()) { $statusCode = Olts_Reminder_Model_Statuses::STATUS_CODE_COMPLETED; } elseif (!$reminder->getIsActive()) { $statusCode = Olts_Reminder_Model_Statuses::STATUS_CODE_DISABLED; } elseif ($currentDate < $dateFrom) { $statusCode = Olts_Reminder_Model_Statuses::STATUS_CODE_PENDING; } elseif ($currentDate >= $dateFrom && $currentDate <= $dateTo) { $statusCode = Olts_Reminder_Model_Statuses::STATUS_CODE_PROCESSING; } return Mage::getModel('olts_reminder/statuses')->loadByCode($statusCode); }
/** * Perform operations before object save * * @param Olts_Reminder_Model_Reminder $object * @return Olts_Reminder_Model_Resource_Reminder */ protected function _beforeSave(Olts_Reminder_Model_Reminder $object) { if (!$object->getId()) { $object->setCreationTime(Mage::getSingleton('core/date')->gmtDate()); } $object->setUpdateTime(Mage::getSingleton('core/date')->gmtDate()); $object->setStatusId((int) $this->_getReminderStatus($object)->getId()); return $this; }