18 import(
'lib.pkp.classes.payment.QueuedPayment');
19 import(
'lib.pkp.classes.payment.PaymentManager');
20 import(
'lib.pkp.classes.submission.SubmissionFile');
22 define(
'PAYMENT_TYPE_PURCHASE_FILE', 0x000000001);
30 return parent::isConfigured() && $this->_context && $this->_context->getData(
'currency');
44 $payment =
new QueuedPayment($amount, $this->_context->getData(
'currency'), $userId, $assocId);
45 $payment->setContextId($this->_context->getId());
46 $payment->setType($type);
49 case PAYMENT_TYPE_PURCHASE_FILE:
51 list($fileId, $revision) = array_map(
function($a) {
53 }, explode(
'-', $assocId));
54 import(
'lib.pkp.classes.submission.SubmissionFile');
55 $submissionFile = $submissionFileDao->getRevision($fileId, $revision, SUBMISSION_FILE_PROOF);
56 assert($submissionFile);
57 $payment->setRequestUrl($request->url(
null,
'catalog',
'view', array(
58 $submissionFile->getSubmissionId(),
59 $submissionFile->getAssocId(),
77 $paymentMethodPluginName = $this->_context->getData(
'paymentPluginName');
78 $paymentMethodPlugin =
null;
79 if (!empty($paymentMethodPluginName)) {
81 if (isset($plugins[$paymentMethodPluginName])) $paymentMethodPlugin = $plugins[$paymentMethodPluginName];
83 return $paymentMethodPlugin;
95 if ($queuedPayment)
switch ($queuedPayment->getType()) {
96 case PAYMENT_TYPE_PURCHASE_FILE:
106 $ompCompletedPaymentDao->insertCompletedPayment($completedPayment);
109 $queuedPaymentDao->deleteById($queuedPayment->getId());
121 import(
'lib.pkp.classes.payment.CompletedPayment');
123 $payment->setContextId($queuedPayment->getContextId());
124 $payment->setType($queuedPayment->getType());
125 $payment->setAmount($queuedPayment->getAmount());
126 $payment->setCurrencyCode($queuedPayment->getCurrencyCode());
127 $payment->setUserId($queuedPayment->getUserId());
128 $payment->setAssocId($queuedPayment->getAssocId());
129 $payment->setPayMethodPluginName($payMethod);
139 switch ($payment->getType()) {
140 case PAYMENT_TYPE_PURCHASE_FILE:
141 list($fileId, $revision) = explode(
'-', $payment->getAssocId());
142 assert($fileId && $revision);
144 $submissionFile = $submissionFileDao->getRevision($fileId, $revision, SUBMISSION_FILE_PROOF);
145 if (!$submissionFile || $submissionFile->getAssocType() !== ASSOC_TYPE_PUBLICATION_FORMAT)
return false;
147 return $submissionFile->getLocalizedName();