예제 #1
0
 /**
  * Save subscription type. 
  */
 function execute()
 {
     $subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO');
     $nonExpiring = null;
     // Suppress scrutinizer warn
     if (isset($this->typeId)) {
         $subscriptionType =& $subscriptionTypeDao->getSubscriptionType($this->typeId);
         $nonExpiring = $subscriptionType->getNonExpiring();
     }
     if (!isset($subscriptionType)) {
         $subscriptionType = new SubscriptionType();
         $nonExpiring = $this->getData('nonExpiring') == null ? 0 : $this->getData('nonExpiring');
         $subscriptionType->setNonExpiring($nonExpiring);
         $subscriptionType->setInstitutional($this->getData('institutional') == null ? 0 : $this->getData('institutional'));
     }
     $journal = Request::getJournal();
     $subscriptionType->setJournalId($journal->getId());
     $subscriptionType->setName($this->getData('name'), null);
     // Localized
     $subscriptionType->setDescription($this->getData('description'), null);
     // Localized
     $subscriptionType->setCost(round($this->getData('cost'), 2));
     $subscriptionType->setCurrencyCodeAlpha($this->getData('currency'));
     $subscriptionType->setDuration($nonExpiring ? null : (int) $this->getData('duration'));
     $subscriptionType->setFormat($this->getData('format'));
     $subscriptionType->setMembership($this->getData('membership') == null ? 0 : $this->getData('membership'));
     $subscriptionType->setDisablePublicDisplay($this->getData('disable_public_display') == null ? 0 : $this->getData('disable_public_display'));
     // Update or insert subscription type
     if ($subscriptionType->getTypeId() != null) {
         $subscriptionTypeDao->updateSubscriptionType($subscriptionType);
     } else {
         $subscriptionType->setSequence(REALLY_BIG_NUMBER);
         $subscriptionTypeDao->insertSubscriptionType($subscriptionType);
         // Re-order the subscription types so the new one is at the end of the list.
         $subscriptionTypeDao->resequenceSubscriptionTypes($subscriptionType->getJournalId());
     }
 }