16 import(
'lib.pkp.controllers.modals.editorDecision.form.EditorDecisionWithEmailForm');
19 import(
'classes.workflow.EditorDecisionActionsManager');
30 function __construct($submission, $decision, $stageId, $reviewRound =
null) {
38 $submission, $decision, $stageId,
39 'controllers/modals/editorDecision/form/promoteForm.tpl',
61 $this->
setData(
'requestPayment',
true);
63 return parent::initData($actionLabels);
71 parent::readInputData();
78 parent::execute(...$functionParams);
91 import(
'lib.pkp.classes.submission.action.EditorAction');
93 $editorAction->recordDecision($request, $submission, $decision, $actionLabels, $reviewRound);
96 import(
'lib.pkp.classes.file.SubmissionFileManager');
97 $submissionFileManager =
new SubmissionFileManager($submission->getContextId(), $submission->getId());
99 case SUBMISSION_EDITOR_DECISION_ACCEPT:
100 $emailKey =
'EDITOR_DECISION_ACCEPT';
101 $status = REVIEW_ROUND_STATUS_ACCEPTED;
106 $editorAction->incrementWorkflowStage($submission, WORKFLOW_STAGE_ID_EDITING, $request);
109 import(
'lib.pkp.classes.submission.SubmissionFile');
111 import(
'lib.pkp.classes.file.SubmissionFileManager');
115 $selectedFiles = $this->
getData(
'selectedFiles');
116 if(is_array($selectedFiles)) {
117 foreach ($selectedFiles as $fileId) {
118 $revisionNumber = $submissionFileDao->getLatestRevisionNumber($fileId);
119 $submissionFileManager->copyFileToFileStage($fileId, $revisionNumber, SUBMISSION_FILE_FINAL,
null,
true);
127 case SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW:
128 $emailKey =
'EDITOR_DECISION_SEND_TO_EXTERNAL';
129 $status = REVIEW_ROUND_STATUS_SENT_TO_EXTERNAL;
134 $editorAction->incrementWorkflowStage($submission, WORKFLOW_STAGE_ID_EXTERNAL_REVIEW, $request);
137 $this->
_initiateReviewRound($submission, WORKFLOW_STAGE_ID_EXTERNAL_REVIEW, $request, REVIEW_ROUND_STATUS_PENDING_REVIEWERS);
142 case SUBMISSION_EDITOR_DECISION_SEND_TO_PRODUCTION:
143 $emailKey =
'EDITOR_DECISION_SEND_TO_PRODUCTION';
147 $editorAction->incrementWorkflowStage($submission, WORKFLOW_STAGE_ID_PRODUCTION, $request);
150 import(
'lib.pkp.classes.submission.SubmissionFile');
152 import(
'lib.pkp.classes.file.SubmissionFileManager');
157 $selectedFiles = $this->
getData(
'selectedFiles');
158 if(is_array($selectedFiles)) {
159 foreach ($selectedFiles as $fileId) {
160 $revisionNumber = $submissionFileDao->getLatestRevisionNumber($fileId);
161 $submissionFileManager->copyFileToFileStage($fileId, $revisionNumber, SUBMISSION_FILE_PRODUCTION_READY);
171 if ($this->
getData(
'requestPayment')) {
172 $context = $request->getContext();
174 $decisionData = $stageDecisions[$decision];
175 if (isset($decisionData[
'paymentType'])) {
176 $paymentType = $decisionData[
'paymentType'];
180 $queuedPayment = $paymentManager->createQueuedPayment($request, $paymentType, $request->getUser()->getId(), $submission->getId(), $decisionData[
'paymentAmount'], $decisionData[
'paymentCurrency']);
181 $paymentManager->queuePayment($queuedPayment);
186 $stageAssignments = $stageAssignmentDao->getBySubmissionAndRoleId($submission->getId(), ROLE_ID_AUTHOR,
null);
188 while ($stageAssignment = $stageAssignments->next()) {
189 if (!in_array($stageAssignment->getUserId(), $userIds)) {
190 $notificationMgr->createNotification($request, $stageAssignment->getUserId(), NOTIFICATION_TYPE_PAYMENT_REQUIRED,
191 $context->getId(), ASSOC_TYPE_QUEUED_PAYMENT, $queuedPayment->getId(), NOTIFICATION_LEVEL_TASK);
192 $userIds[] = $stageAssignment->getUserId();
208 SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW,
209 SUBMISSION_EDITOR_DECISION_ACCEPT,
210 SUBMISSION_EDITOR_DECISION_SEND_TO_PRODUCTION