00001 <?php
00002
00020 import('payment.Payment');
00021
00022 class OJSCompletedPayment extends Payment {
00023 var $journalId;
00024
00025 var $paperId;
00026
00027 var $type;
00028
00029 var $timestamp;
00030
00031 var $payMethod;
00032
00036 function OJSCompletedPayment() {
00037 }
00038
00047 function setCompletedPaymentId($queuedPaymentId) {
00048 parent::setPaymentId($queuedPaymentId);
00049 }
00050
00055 function getCompletedPaymentId() {
00056 return parent::getPaymentId();
00057 }
00058
00063 function getJournalId() {
00064 return $this->journalId;
00065 }
00066
00071 function setJournalId($journalId) {
00072 $this->journalId = $journalId;
00073 }
00074
00079 function setType($type) {
00080 $this->type = $type;
00081 }
00082
00087 function getType() {
00088 return $this->type;
00089 }
00090
00097 function getName() {
00098 $journalDAO =& DAORegistry::getDAO('JournalDAO');
00099 $journal =& $journalDAO->getJournal($this->getJournalId());
00100
00101 switch ($this->type) {
00102 case PAYMENT_TYPE_SUBSCRIPTION:
00103 $subscriptionDAO =& DAORegistry::getDAO('SubscriptionDAO');
00104 $subscriptionTypeDAO =& DAORegistry::getDAO('SubscriptionTypeDAO');
00105
00106 $subscription =& $subscriptionDAO->getSubscription($this->assocId);
00107 if ( !$subscription) return Locale::translate('payment.type.subscription');
00108
00109 $subscriptionType =& $subscriptionTypeDAO->getSubscriptionType($subscription->getTypeId());
00110
00111 return Locale::translate('payment.type.subscription') . '(' . $subscriptionType->getSubscriptionTypeName() . ')';
00112 case PAYMENT_TYPE_DONATION:
00113 if ( $journal->getLocalizedSetting('donationFeeName') != '') {
00114 return $journal->getLocalizedSetting('donationFeeName');
00115 } else {
00116 return Locale::translate('payment.type.donation');
00117 }
00118 case PAYMENT_TYPE_MEMBERSHIP:
00119 if ( $journal->getLocalizedSetting('membershipFeeName') != '') {
00120 return $journal->getLocalizedSetting('membershipFeeName');
00121 } else {
00122 return Locale::translate('payment.type.membership');
00123 }
00124 case PAYMENT_TYPE_PURCHASE_ARTICLE:
00125 if ( $journal->getLocalizedSetting('purchaseArticleFeeName') != '' ) {
00126 return $journal->getLocalizedSetting('purchaseArticleFeeName');
00127 } else {
00128 return Locale::translate('payment.type.purchaseArticle');
00129 }
00130 case PAYMENT_TYPE_SUBMISSION:
00131 if ( $journal->getLocalizedSetting('submissionFeeName') != '' ) {
00132 return $journal->getLocalizedSetting('submissionFeeName');
00133 } else {
00134 return Locale::translate('payment.type.submission');
00135 }
00136 case PAYMENT_TYPE_FASTTRACK:
00137 if ( $journal->getLocalizedSetting('fastTrackFeeName') != '' ) {
00138 return $journal->getLocalizedSetting('fastTrackFeeName');
00139 } else {
00140 return Locale::translate('payment.type.fastTrack');
00141 }
00142 case PAYMENT_TYPE_PUBLICATION:
00143 if ( $journal->getLocalizedSetting('publicationFeeName') != '' ) {
00144 return $journal->getLocalizedSetting('publicationFeeName');
00145 } else {
00146 return Locale::translate('payment.type.publication');
00147 }
00148 }
00149 }
00150
00157 function getDescription() {
00158 $journalDAO =& DAORegistry::getDAO('JournalDAO');
00159 $journal =& $journalDAO->getJournal($this->getJournalId());
00160
00161 switch ($this->type) {
00162 case PAYMENT_TYPE_SUBSCRIPTION:
00163 $subscriptionDAO =& DAORegistry::getDAO('SubscriptionDAO');
00164 $subscriptionTypeDAO =& DAORegistry::getDAO('SubscriptionTypeDAO');
00165
00166 $subscription =& $subscriptionDAO->getSubscription($this->assocId);
00167 if ( !$subscription) return Locale::translate('payment.type.subscription');
00168
00169 $subscriptionType =& $subscriptionTypeDAO->getSubscriptionType($subscription->getTypeId());
00170 return $subscriptionType->getSubscriptionTypeDescription();
00171 case PAYMENT_TYPE_DONATION:
00172 if ( $journal->getLocalizedSetting('donationFeeDescription') != '') {
00173 return $journal->getLocalizedSetting('donationFeeDescription');
00174 } else {
00175 return Locale::translate('payment.type.donation');
00176 }
00177 case PAYMENT_TYPE_MEMBERSHIP:
00178 if ( $journal->getLocalizedSetting('membershipFeeDescription') != '') {
00179 return $journal->getLocalizedSetting('membershipFeeDescription');
00180 } else {
00181 return Locale::translate('payment.type.membership');
00182 }
00183 case PAYMENT_TYPE_PURCHASE_ARTICLE:
00184 if ( $journal->getLocalizedSetting('purchaseArticleFeeDescription') != '') {
00185 return $journal->getLocalizedSetting('purchaseArticleFeeDescription');
00186 } else {
00187 return Locale::translate('payment.type.purchaseArticle');
00188 }
00189 case PAYMENT_TYPE_SUBMISSION:
00190 if ( $journal->getLocalizedSetting('submissionFeeDescription') != '' ) {
00191 return $journal->getLocalizedSetting('submissionFeeDescription');
00192 } else {
00193 return Locale::translate('payment.type.submission');
00194 }
00195 case PAYMENT_TYPE_FASTTRACK:
00196 if ( $journal->getLocalizedSetting('fastTrackFeeDescription') != '' ) {
00197 return $journal->getLocalizedSetting('fastTrackFeeDescription');
00198 } else {
00199 return Locale::translate('payment.type.fastTrack');
00200 }
00201 case PAYMENT_TYPE_PUBLICATION:
00202 if ( $journal->getLocalizedSetting('publicationFeeDescription') != '' ) {
00203 return $journal->getLocalizedSetting('publicationFeeDescription');
00204 } else {
00205 return Locale::translate('payment.type.publication');
00206 }
00207 }
00208 }
00209
00214 function getTimestamp() {
00215 return $this->timestamp;
00216 }
00217
00222 function setTimestamp($timestamp) {
00223 $this->timestamp = $timestamp;
00224 }
00225
00226
00231 function getPayMethodPluginName() {
00232 return $this->payMethod;
00233 }
00234
00239 function setPayMethodPluginName($payMethod){
00240 $this->payMethod = $payMethod;
00241 }
00242
00251 function isMembership() {
00252 return $this->type == PAYMENT_TYPE_MEMBERSHIP;
00253 }
00254
00259 function isSubscription() {
00260 return $this->type == PAYMENT_TYPE_SUBSCRIPTION;
00261 }
00262
00263
00268 function getUsername() {
00269 $userId = $this->userId;
00270 if ( !$userId )
00271 return false;
00272 $userDAO = &DAORegistry::getDAO('UserDAO');
00273 $user =& $userDAO->getUser($userId);
00274 if ( !$user )
00275 return false;
00276 return $user->getUsername();
00277
00278 }
00279
00284 function getAssocDescription() {
00285 if ( !$this->assocId ) return false;
00286 switch ($this->type) {
00287 case PAYMENT_TYPE_SUBSCRIPTION:
00288 $subscriptionDAO =& DAORegistry::getDAO('SubscriptionDAO');
00289 $subscriptionTypeDAO =& DAORegistry::getDAO('SubscriptionTypeDAO');
00290
00291 $subscription =& $subscriptionDAO->getSubscription($this->assocId);
00292 if ( !$subscription) return Locale::translate('manager.payment.notFound');
00293
00294 $subscriptionType =& $subscriptionTypeDAO->getSubscriptionType($subscription->getTypeId());
00295
00296 $membership = $subscription->getMembership();
00297 $typeName = $subscriptionType->getSubscriptionTypeName();
00298 if ( $membership )
00299 return $typeName . ' ('. $membership . ')';
00300 else
00301 return $typeName;
00302 case PAYMENT_TYPE_SUBMISSION:
00303 case PAYMENT_TYPE_FASTTRACK:
00304 case PAYMENT_TYPE_PUBLICATION:
00305 case PAYMENT_TYPE_PURCHASE_ARTICLE:
00306
00307 $articleDAO = &DAORegistry::getDAO('ArticleDAO');
00308 $article =& $articleDAO->getArticle($this->assocId, $this->journalId);
00309 if ( !$article ) return Locale::translate('manager.payment.notFound');
00310 return $article->getArticleTitle();
00311 case PAYMENT_TYPE_MEMBERSHIP:
00312 case PAYMENT_TYPE_DONATION:
00313 return false;
00314 }
00315
00316 return false;
00317 }
00318
00319 }
00320
00321 ?>