Open Journal Systems  3.3.0
SubscriptionType.inc.php
1 <?php
2 
20 define('SUBSCRIPTION_TYPE_FORMAT_ONLINE', 0x01);
21 define('SUBSCRIPTION_TYPE_FORMAT_PRINT', 0x10);
22 define('SUBSCRIPTION_TYPE_FORMAT_PRINT_ONLINE', 0x11);
23 
24 
26  //
27  // Get/set methods
28  //
29 
34  function getJournalId() {
35  return $this->getData('journalId');
36  }
37 
42  function setJournalId($journalId) {
43  return $this->setData('journalId', $journalId);
44  }
45 
50  function getLocalizedName() {
51  return $this->getLocalizedData('name');
52  }
53 
59  function getName($locale) {
60  return $this->getData('name', $locale);
61  }
62 
68  function setName($name, $locale) {
69  return $this->setData('name', $name, $locale);
70  }
71 
77  return $this->getLocalizedData('description');
78  }
79 
85  function getDescription($locale) {
86  return $this->getData('description', $locale);
87  }
88 
94  function setDescription($description, $locale) {
95  return $this->setData('description', $description, $locale);
96  }
97 
102  function getCost() {
103  return $this->getData('cost');
104  }
105 
110  function setCost($cost) {
111  return $this->setData('cost', $cost);
112  }
113 
118  function getCurrencyCodeAlpha() {
119  return $this->getData('currencyCodeAlpha');
120  }
121 
126  function setCurrencyCodeAlpha($currencyCodeAlpha) {
127  return $this->setData('currencyCodeAlpha', $currencyCodeAlpha);
128  }
129 
134  public function getCurrencyString() {
135  $isoCodes = new \Sokil\IsoCodes\IsoCodesFactory();
136  $currency = $isoCodes->getCurrencies()->getByLetterCode($this->getData('currencyCodeAlpha'));
137  return $currency?$currency->getLocalName():'subscriptionTypes.currency';
138  }
139 
145  $isoCodes = new \Sokil\IsoCodes\IsoCodesFactory();
146  $currency = $isoCodes->getCurrencies()->getByLetterCode($this->getData('currencyCodeAlpha'));
147  return $currency?$currency->getLetterCode():'subscriptionTypes.currency';
148  }
149 
154  function getNonExpiring() {
155  return $this->getDuration()==null;
156  }
157 
162  function getDuration() {
163  return $this->getData('duration');
164  }
165 
170  function setDuration($duration) {
171  return $this->setData('duration', $duration);
172  }
173 
179  function getDurationYearsMonths($locale = null) {
180  if (!$this->getDuration()) {
181  return __('subscriptionTypes.nonExpiring', null, $locale);
182  }
183 
184  $years = (int)floor($this->getDuration()/12);
185  $months = (int)fmod($this->getDuration(), 12);
186  $yearsMonths = '';
187 
188  if ($years == 1) {
189  $yearsMonths = '1 ' . __('subscriptionTypes.year', null, $locale);
190  } elseif ($years > 1) {
191  $yearsMonths = $years . ' ' . __('subscriptionTypes.years', null, $locale);
192  }
193 
194  if ($months == 1) {
195  $yearsMonths .= $yearsMonths == '' ? '1 ' : ' 1 ';
196  $yearsMonths .= __('subscriptionTypes.month', null, $locale);
197  } elseif ($months > 1){
198  $yearsMonths .= $yearsMonths == '' ? $months . ' ' : ' ' . $months . ' ';
199  $yearsMonths .= __('subscriptionTypes.months', null, $locale);
200  }
201 
202  return $yearsMonths;
203  }
204 
209  function getFormat() {
210  return $this->getData('format');
211  }
212 
217  function setFormat($format) {
218  return $this->setData('format', $format);
219  }
220 
225  function getFormatString() {
226  switch ($this->getData('format')) {
227  case SUBSCRIPTION_TYPE_FORMAT_ONLINE:
228  return 'subscriptionTypes.format.online';
229  case SUBSCRIPTION_TYPE_FORMAT_PRINT:
230  return 'subscriptionTypes.format.print';
231  case SUBSCRIPTION_TYPE_FORMAT_PRINT_ONLINE:
232  return 'subscriptionTypes.format.printOnline';
233  default:
234  return 'subscriptionTypes.format';
235  }
236  }
237 
242  function getInstitutional() {
243  return $this->getData('institutional');
244  }
245 
250  function setInstitutional($institutional) {
251  return $this->setData('institutional', $institutional);
252  }
253 
258  function getMembership() {
259  return $this->getData('membership');
260  }
261 
266  function setMembership($membership) {
267  return $this->setData('membership', $membership);
268  }
269 
275  return $this->getData('disable_public_display');
276  }
277 
282  function setDisablePublicDisplay($disablePublicDisplay) {
283  return $this->setData('disable_public_display', $disablePublicDisplay);
284  }
285 
290  function getSequence() {
291  return $this->getData('sequence');
292  }
293 
298  function setSequence($sequence) {
299  return $this->setData('sequence', $sequence);
300  }
301 
306  function getSummaryString() {
307  $subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO'); /* @var $subscriptionTypeDao SubscriptionTypeDAO */
308  return $this->getLocalizedName() . ' - ' . $this->getDurationYearsMonths() . ' - ' . sprintf('%.2f', $this->getCost()) . ' ' . $this->getCurrencyStringShort();
309  }
310 }
311 
312 
DataObject\getData
& getData($key, $locale=null)
Definition: DataObject.inc.php:100
DataObject\getLocalizedData
getLocalizedData($key, $preferredLocale=null)
Definition: DataObject.inc.php:71
SubscriptionType
Definition: SubscriptionType.inc.php:25
SubscriptionType\getDisablePublicDisplay
getDisablePublicDisplay()
Definition: SubscriptionType.inc.php:274
DataObject
Any class with an associated DAO should extend this class.
Definition: DataObject.inc.php:18
SubscriptionType\getCost
getCost()
Definition: SubscriptionType.inc.php:102
SubscriptionType\setJournalId
setJournalId($journalId)
Definition: SubscriptionType.inc.php:42
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
SubscriptionType\setInstitutional
setInstitutional($institutional)
Definition: SubscriptionType.inc.php:250
SubscriptionType\getCurrencyString
getCurrencyString()
Definition: SubscriptionType.inc.php:134
SubscriptionType\getDurationYearsMonths
getDurationYearsMonths($locale=null)
Definition: SubscriptionType.inc.php:179
SubscriptionType\getFormat
getFormat()
Definition: SubscriptionType.inc.php:209
SubscriptionType\getLocalizedDescription
getLocalizedDescription()
Definition: SubscriptionType.inc.php:76
SubscriptionType\setSequence
setSequence($sequence)
Definition: SubscriptionType.inc.php:298
SubscriptionType\setDuration
setDuration($duration)
Definition: SubscriptionType.inc.php:170
SubscriptionType\setDisablePublicDisplay
setDisablePublicDisplay($disablePublicDisplay)
Definition: SubscriptionType.inc.php:282
SubscriptionType\getCurrencyStringShort
getCurrencyStringShort()
Definition: SubscriptionType.inc.php:144
SubscriptionType\getMembership
getMembership()
Definition: SubscriptionType.inc.php:258
SubscriptionType\setCost
setCost($cost)
Definition: SubscriptionType.inc.php:110
SubscriptionType\getSequence
getSequence()
Definition: SubscriptionType.inc.php:290
SubscriptionType\getCurrencyCodeAlpha
getCurrencyCodeAlpha()
Definition: SubscriptionType.inc.php:118
SubscriptionType\setMembership
setMembership($membership)
Definition: SubscriptionType.inc.php:266
SubscriptionType\getNonExpiring
getNonExpiring()
Definition: SubscriptionType.inc.php:154
SubscriptionType\setCurrencyCodeAlpha
setCurrencyCodeAlpha($currencyCodeAlpha)
Definition: SubscriptionType.inc.php:126
SubscriptionType\getJournalId
getJournalId()
Definition: SubscriptionType.inc.php:34
SubscriptionType\setDescription
setDescription($description, $locale)
Definition: SubscriptionType.inc.php:94
SubscriptionType\getDescription
getDescription($locale)
Definition: SubscriptionType.inc.php:85
SubscriptionType\getInstitutional
getInstitutional()
Definition: SubscriptionType.inc.php:242
SubscriptionType\getName
getName($locale)
Definition: SubscriptionType.inc.php:59
SubscriptionType\getFormatString
getFormatString()
Definition: SubscriptionType.inc.php:225
SubscriptionType\setFormat
setFormat($format)
Definition: SubscriptionType.inc.php:217
SubscriptionType\setName
setName($name, $locale)
Definition: SubscriptionType.inc.php:68
SubscriptionType\getDuration
getDuration()
Definition: SubscriptionType.inc.php:162
SubscriptionType\getSummaryString
getSummaryString()
Definition: SubscriptionType.inc.php:306
SubscriptionType\getLocalizedName
getLocalizedName()
Definition: SubscriptionType.inc.php:50
DataObject\setData
setData($key, $value, $locale=null)
Definition: DataObject.inc.php:132