/** * 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; }
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_PURCHASE_ISSUE: $payment->setRequestUrl(Request::url(null, 'issue', '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; }