Inheritance: extends QueuedPayment
 function &createQueuedPayment($journalId, $type, $userId, $assocId, $amount, $currencyCode = null)
 {
     $journalSettingsDAO =& DAORegistry::getDAO('JournalSettingsDAO');
     if (is_null($currencyCode)) {
         $currencyCode = $journalSettingsDAO->getSetting($journalId, 'currency');
     }
     $payment = new OJSQueuedPayment($amount, $currencyCode, $userId, $assocId);
     $payment->setJournalId($journalId);
     $payment->setType($type);
     switch ($type) {
         case PAYMENT_TYPE_PURCHASE_ARTICLE:
             $payment->setRequestUrl(Request::url(null, 'article', 'view', $assocId));
             break;
         case PAYMENT_TYPE_MEMBERSHIP:
             $payment->setRequestUrl(Request::url(null, 'user'));
             break;
         case PAYMENT_TYPE_PURCHASE_SUBSCRIPTION:
         case PAYMENT_TYPE_RENEW_SUBSCRIPTION:
             $payment->setRequestUrl(Request::url(null, 'user', 'subscriptions'));
             break;
         case PAYMENT_TYPE_DONATION:
             $payment->setRequestUrl(Request::url(null, 'donations', 'thankYou'));
             break;
         case PAYMENT_TYPE_FASTTRACK:
         case PAYMENT_TYPE_PUBLICATION:
         case PAYMENT_TYPE_SUBMISSION:
             $authorSubmissionDao =& DAORegistry::getDAO('AuthorSubmissionDAO');
             $authorSubmission =& $authorSubmissionDao->getAuthorSubmission($assocId);
             if ($authorSubmission->getSubmissionProgress() != 0) {
                 $payment->setRequestUrl(Request::url(null, 'author', 'submit', $authorSubmission->getSubmissionProgress(), array('articleId' => $assocId)));
             } else {
                 $payment->setRequestUrl(Request::url(null, 'author'));
             }
             break;
         default:
             // something went wrong. crud.
             break;
     }
     return $payment;
 }
Example #2
0
 /**
  * Create a queued payment.
  * @param $journalId int ID of journal payment applies under
  * @param $type int PAYMENT_TYPE_...
  * @param $userId int ID of user responsible for payment
  * @param $assocId int ID of associated entity
  * @param $amount numeric Amount of currency $currencyCode
  * @param $currencyCode string optional ISO 4217 currency code
  * @return QueuedPayment
  */
 function &createQueuedPayment($journalId, $type, $userId, $assocId, $amount, $currencyCode = null)
 {
     $journalSettingsDao = DAORegistry::getDAO('JournalSettingsDAO');
     if (is_null($currencyCode)) {
         $currencyCode = $journalSettingsDao->getSetting($journalId, 'currency');
     }
     $payment = new OJSQueuedPayment($amount, $currencyCode, $userId, $assocId);
     $payment->setJournalId($journalId);
     $payment->setType($type);
     $router = $this->request->getRouter();
     $dispatcher = $router->getDispatcher();
     switch ($type) {
         case PAYMENT_TYPE_PURCHASE_ARTICLE:
             $payment->setRequestUrl($dispatcher->url($this->request, ROUTE_PAGE, null, 'article', 'view', $assocId));
             break;
         case PAYMENT_TYPE_PURCHASE_ISSUE:
             $payment->setRequestUrl($dispatcher->url($this->request, ROUTE_PAGE, null, 'issue', 'view', $assocId));
             break;
         case PAYMENT_TYPE_MEMBERSHIP:
             $payment->setRequestUrl($dispatcher->url($this->request, ROUTE_PAGE, null, 'user'));
             break;
         case PAYMENT_TYPE_PURCHASE_SUBSCRIPTION:
         case PAYMENT_TYPE_RENEW_SUBSCRIPTION:
             $payment->setRequestUrl($dispatcher->url($this->request, ROUTE_PAGE, null, 'user', 'subscriptions'));
             break;
         case PAYMENT_TYPE_DONATION:
             $payment->setRequestUrl($dispatcher->url($this->request, ROUTE_PAGE, null, 'donations', 'thankYou'));
             break;
         case PAYMENT_TYPE_FASTTRACK:
         case PAYMENT_TYPE_PUBLICATION:
         case PAYMENT_TYPE_SUBMISSION:
             $submissionDao = Application::getSubmissionDAO();
             $submission = $submissionDao->getById($assocId);
             if ($submission->getSubmissionProgress() != 0) {
                 $payment->setRequestUrl($dispatcher->url($this->request, ROUTE_PAGE, null, 'submission', 'wizard', $submission->getSubmissionProgress(), array('submissionId' => $assocId)));
             } else {
                 $payment->setRequestUrl($dispatcher->url($this->request, ROUTE_PAGE, null, 'author'));
             }
             break;
         case PAYMENT_TYPE_GIFT:
             $payment->setRequestUrl($dispatcher->url($this->request, ROUTE_PAGE, null, 'gifts', 'thankYou'));
             break;
         default:
             // Invalid payment type
             assert(false);
             break;
     }
     return $payment;
 }