Server : Apache/2.4.41 (Ubuntu) System : Linux journalup 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/classes/subscription/ |
<?php /** * @file classes/subscription/Subscription.inc.php * * Copyright (c) 2014-2020 Simon Fraser University * Copyright (c) 2003-2020 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class Subscription * @ingroup subscription * @see SubscriptionDAO * * @brief Basic class describing a subscription. */ define('SUBSCRIPTION_STATUS_ACTIVE', 0x01); define('SUBSCRIPTION_STATUS_NEEDS_INFORMATION', 0x02); define('SUBSCRIPTION_STATUS_NEEDS_APPROVAL', 0x03); define('SUBSCRIPTION_STATUS_AWAITING_MANUAL_PAYMENT', 0x04); define('SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT', 0x05); define('SUBSCRIPTION_STATUS_OTHER', 0x10); define('SUBSCRIPTION_DATE_START', 0x01); define('SUBSCRIPTION_DATE_END', 0x02); define('SUBSCRIPTION_DATE_BOTH', 0x03); define('SUBSCRIPTION_YEAR_OFFSET_PAST', '-10'); define('SUBSCRIPTION_YEAR_OFFSET_FUTURE', '+10'); class Subscription extends DataObject { // // Get/set methods // /** * Get the journal ID of the subscription. * @return int */ public function getJournalId() { return $this->getData('journalId'); } /** * Set the journal ID of the subscription. * @param $journalId int */ public function setJournalId($journalId) { $this->setData('journalId', $journalId); } /** * Get the user ID of the subscription. * @return int */ public function getUserId() { return $this->getData('userId'); } /** * Set the user ID of the subscription. * @param $userId int */ public function setUserId($userId) { $this->setData('userId', $userId); } /** * Get the user's full name of the subscription. * @return string */ public function getUserFullName() { $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */ return $userDao->getUserFullName($this->getData('userId')); } /** * Get the user's email of the subscription. * @return string */ public function getUserEmail() { $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */ return $userDao->getUserEmail($this->getData('userId')); } /** * Get the subscription type ID of the subscription. * @return int */ public function getTypeId() { return $this->getData('typeId'); } /** * Set the subscription type ID of the subscription. * @param $typeId int */ public function setTypeId($typeId) { $this->setData('typeId', $typeId); } /** * Get the subscription type name of the subscription. * @return string */ public function getSubscriptionTypeName() { $subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO'); /* @var $subscriptionTypeDao SubscriptionTypeDAO */ return $subscriptionTypeDao->getSubscriptionTypeName($this->getData('typeId')); } /** * Get the subscription type name of the subscription. * @return string */ public function getSubscriptionTypeSummaryString() { $subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO'); /* @var $subscriptionTypeDao SubscriptionTypeDAO */ $subscriptionType = $subscriptionTypeDao->getById($this->getData('typeId')); return $subscriptionType->getSummaryString(); } /** * Get the subscription type institutional flag for the subscription. * @return string */ public function getSubscriptionTypeInstitutional() { $subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO'); /* @var $subscriptionTypeDao SubscriptionTypeDAO */ return $subscriptionTypeDao->getSubscriptionTypeInstitutional($this->getData('typeId')); } /** * Check whether the subscription type is non-expiring for the subscription. * @return boolean */ public function isNonExpiring() { $subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO'); /* @var $subscriptionTypeDao SubscriptionTypeDAO */ $subscriptionType = $subscriptionTypeDao->getById($this->getTypeId()); return $subscriptionType->getNonExpiring(); } /** * Get subscription start date. * @return date (YYYY-MM-DD) */ public function getDateStart() { return $this->getData('dateStart'); } /** * Set subscription start date. * @param $dateStart date (YYYY-MM-DD) */ public function setDateStart($dateStart) { $this->setData('dateStart', $dateStart); } /** * Get subscription end date. * @return date (YYYY-MM-DD) */ public function getDateEnd() { return $this->getData('dateEnd'); } /** * Set subscription end date. * @param $dateEnd date (YYYY-MM-DD) */ public function setDateEnd($dateEnd) { $this->setData('dateEnd', $dateEnd); } /** * Get subscription status. * @return int SUBSCRIPTION_STATUS_... */ public function getStatus() { return $this->getData('status'); } /** * Set subscription status. * @param $status int SUBSCRIPTION_STATUS_... */ public function setStatus($status) { $this->setData('status', $status); } /** * Get subscription status string. * @return string */ public function getStatusString() { switch ($this->getData('status')) { case SUBSCRIPTION_STATUS_ACTIVE: return __('subscriptions.status.active'); case SUBSCRIPTION_STATUS_NEEDS_INFORMATION: return __('subscriptions.status.needsInformation'); case SUBSCRIPTION_STATUS_NEEDS_APPROVAL: return __('subscriptions.status.needsApproval'); case SUBSCRIPTION_STATUS_AWAITING_MANUAL_PAYMENT: return __('subscriptions.status.awaitingManualPayment'); case SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT: return __('subscriptions.status.awaitingOnlinePayment'); case SUBSCRIPTION_STATUS_OTHER: return __('subscriptions.status.other'); default: return __('subscriptions.status'); } } /** * Get subscription membership. * @return string */ public function getMembership() { return $this->getData('membership'); } /** * Set subscription membership. * @param $membership string */ public function setMembership($membership) { $this->setData('membership', $membership); } /** * Get subscription reference number. * @return string */ public function getReferenceNumber() { return $this->getData('referenceNumber'); } /** * Set subscription reference number. * @param $referenceNumber string */ public function setReferenceNumber($referenceNumber) { $this->setData('referenceNumber', $referenceNumber); } /** * Get subscription notes. * @return string */ public function getNotes() { return $this->getData('notes'); } /** * Set subscription notes. * @param $notes string */ public function setNotes($notes) { $this->setData('notes', $notes); } /** * Check whether subscription is expired * @return boolean */ public function isExpired() { if (strtotime($this->getData('dateEnd')) < time()) { return true; } else { return false; } } }