function getDescription()
{
$journalDao = DAORegistry::getDAO('JournalDAO');
$journal = $journalDao->getById($this->getJournalId());
switch ($this->type) {
case PAYMENT_TYPE_PURCHASE_SUBSCRIPTION:
case PAYMENT_TYPE_RENEW_SUBSCRIPTION:
$institutionalSubscriptionDao = DAORegistry::getDAO('InstitutionalSubscriptionDAO');
if ($institutionalSubscriptionDao->subscriptionExists($this->assocId)) {
$subscription =& $institutionalSubscriptionDao->getSubscription($this->assocId);
} else {
$individualSubscriptionDao = DAORegistry::getDAO('IndividualSubscriptionDAO');
$subscription =& $individualSubscriptionDao->getSubscription($this->assocId);
}
if (!$subscription) {
return __('payment.type.subscription');
}
$subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO');
$subscriptionType =& $subscriptionTypeDao->getSubscriptionType($subscription->getTypeId());
return $subscriptionType->getSubscriptionTypeDescription();
case PAYMENT_TYPE_DONATION:
if ($journal->getLocalizedSetting('donationFeeDescription') != '') {
return $journal->getLocalizedSetting('donationFeeDescription');
} else {
return __('payment.type.donation');
}
case PAYMENT_TYPE_MEMBERSHIP:
if ($journal->getLocalizedSetting('membershipFeeDescription') != '') {
return $journal->getLocalizedSetting('membershipFeeDescription');
} else {
return __('payment.type.membership');
}
case PAYMENT_TYPE_PURCHASE_ARTICLE:
if ($journal->getLocalizedSetting('purchaseArticleFeeDescription') != '') {
return $journal->getLocalizedSetting('purchaseArticleFeeDescription');
} else {
return __('payment.type.purchaseArticle');
}
case PAYMENT_TYPE_PURCHASE_ISSUE:
if ($journal->getLocalizedSetting('purchaseIssueFeeDescription') != '') {
return $journal->getLocalizedSetting('purchaseIssueFeeDescription');
} else {
return __('payment.type.purchaseIssue');
}
case PAYMENT_TYPE_SUBMISSION:
if ($journal->getLocalizedSetting('submissionFeeDescription') != '') {
return $journal->getLocalizedSetting('submissionFeeDescription');
} else {
return __('payment.type.submission');
}
case PAYMENT_TYPE_FASTTRACK:
if ($journal->getLocalizedSetting('fastTrackFeeDescription') != '') {
return $journal->getLocalizedSetting('fastTrackFeeDescription');
} else {
return __('payment.type.fastTrack');
}
case PAYMENT_TYPE_PUBLICATION:
if ($journal->getLocalizedSetting('publicationFeeDescription') != '') {
return $journal->getLocalizedSetting('publicationFeeDescription');
} else {
return __('payment.type.publication');
}
case PAYMENT_TYPE_GIFT:
$giftDao = DAORegistry::getDAO('GiftDAO');
$gift =& $giftDao->getGift($this->assocId);
// Try to return gift details in description
if ($gift) {
import('classes.gift.Gift');
if ($gift->getGiftType() == GIFT_TYPE_SUBSCRIPTION) {
$subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO');
$subscriptionType =& $subscriptionTypeDao->getSubscriptionType($gift->getAssocId());
if ($subscriptionType) {
return $subscriptionType->getSubscriptionTypeDescription();
} else {
return __('payment.type.gift') . ' ' . __('payment.type.gift.subscription');
}
}
}
// Otherwise, generic gift name
return __('payment.type.gift');
default:
// Invalid payment type
assert(false);
}
}