17 define(
'SUBMISSION_REVIEWER_RECOMMENDATION_ACCEPT', 1);
18 define(
'SUBMISSION_REVIEWER_RECOMMENDATION_PENDING_REVISIONS', 2);
19 define(
'SUBMISSION_REVIEWER_RECOMMENDATION_RESUBMIT_HERE', 3);
20 define(
'SUBMISSION_REVIEWER_RECOMMENDATION_RESUBMIT_ELSEWHERE', 4);
21 define(
'SUBMISSION_REVIEWER_RECOMMENDATION_DECLINE', 5);
22 define(
'SUBMISSION_REVIEWER_RECOMMENDATION_SEE_COMMENTS', 6);
24 define(
'SUBMISSION_REVIEWER_RATING_VERY_GOOD', 5);
25 define(
'SUBMISSION_REVIEWER_RATING_GOOD', 4);
26 define(
'SUBMISSION_REVIEWER_RATING_AVERAGE', 3);
27 define(
'SUBMISSION_REVIEWER_RATING_POOR', 2);
28 define(
'SUBMISSION_REVIEWER_RATING_VERY_POOR', 1);
30 define(
'SUBMISSION_REVIEW_METHOD_BLIND', 1);
31 define(
'SUBMISSION_REVIEW_METHOD_DOUBLEBLIND', 2);
32 define(
'SUBMISSION_REVIEW_METHOD_OPEN', 3);
36 define(
'REVIEW_ASSIGNMENT_NOT_UNCONSIDERED', 0);
37 define(
'REVIEW_ASSIGNMENT_UNCONSIDERED', 1);
38 define(
'REVIEW_ASSIGNMENT_UNCONSIDERED_READ', 2);
40 define(
'REVIEW_ASSIGNMENT_STATUS_AWAITING_RESPONSE', 0);
41 define(
'REVIEW_ASSIGNMENT_STATUS_DECLINED', 1);
42 define(
'REVIEW_ASSIGNMENT_STATUS_RESPONSE_OVERDUE', 4);
43 define(
'REVIEW_ASSIGNMENT_STATUS_ACCEPTED', 5);
44 define(
'REVIEW_ASSIGNMENT_STATUS_REVIEW_OVERDUE', 6);
45 define(
'REVIEW_ASSIGNMENT_STATUS_RECEIVED', 7);
46 define(
'REVIEW_ASSIGNMENT_STATUS_COMPLETE', 8);
47 define(
'REVIEW_ASSIGNMENT_STATUS_THANKED', 9);
48 define(
'REVIEW_ASSIGNMENT_STATUS_CANCELLED', 10);
61 return $this->
getData(
'submissionId');
69 $this->
setData(
'submissionId', $submissionId);
77 return $this->
getData(
'reviewerId');
85 $this->
setData(
'reviewerId', $reviewerId);
93 return $this->
getData(
'reviewerFullName');
101 $this->
setData(
'reviewerFullName', $reviewerFullName);
109 return $this->
getData(
'comments');
117 $this->
setData(
'comments', $comments);
125 return $this->
getData(
'competingInterests');
133 $this->
setData(
'competingInterests', $competingInterests);
141 return $this->
getData(
'stageId');
149 $this->
setData(
'stageId', $stageId);
157 return $this->
getData(
'reviewMethod');
165 $this->
setData(
'reviewMethod', $method);
173 return $this->
getData(
'reviewRoundId');
181 $this->
setData(
'reviewRoundId', $reviewRoundId);
189 return $this->
getData(
'recommendation');
197 $this->
setData(
'recommendation', $recommendation);
205 return $this->
getData(
'unconsidered');
213 $this->
setData(
'unconsidered', $unconsidered);
221 return $this->
getData(
'dateRated');
229 $this->
setData(
'dateRated', $dateRated);
237 return $this->
getData(
'lastModified');
245 $this->
setData(
'lastModified', $dateModified);
260 return $this->
getData(
'dateAssigned');
268 $this->
setData(
'dateAssigned', $dateAssigned);
276 return $this->
getData(
'dateNotified');
284 $this->
setData(
'dateNotified', $dateNotified);
292 return $this->
getData(
'dateConfirmed');
300 $this->
setData(
'dateConfirmed', $dateConfirmed);
308 return $this->
getData(
'dateCompleted');
316 $this->
setData(
'dateCompleted', $dateCompleted);
324 return $this->
getData(
'dateAcknowledged');
332 $this->
setData(
'dateAcknowledged', $dateAcknowledged);
340 return $this->
getData(
'dateReminded');
348 $this->
setData(
'dateReminded', $dateReminded);
356 return $this->
getData(
'dateDue');
364 $this->
setData(
'dateDue', $dateDue);
372 return $this->
getData(
'dateResponseDue');
380 $this->
setData(
'dateResponseDue', $dateResponseDue);
388 return $this->
getData(
'declined');
396 $this->
setData(
'declined', $declined);
404 return $this->
getData(
'cancelled');
412 $this->
setData(
'cancelled', $cancelled);
420 return $this->
getData(
'reminderWasAutomatic')==1?1:0;
428 $this->
setData(
'reminderWasAutomatic', $wasAutomatic);
436 return $this->
getData(
'quality');
444 $this->
setData(
'quality', $quality);
452 return $this->
getData(
'round');
460 $this->
setData(
'round', $round);
468 return $this->
getData(
'reviewFormId');
476 $this->
setData(
'reviewFormId', $reviewFormId);
484 if ($this->
getDeclined())
return REVIEW_ASSIGNMENT_STATUS_DECLINED;
485 if ($this->
getCancelled())
return REVIEW_ASSIGNMENT_STATUS_CANCELLED;
488 $dueTimes = array_map(
function($dateTime) {
490 if (substr($dateTime, 11) ===
'00:00:00') {
491 $dateTime = substr($dateTime, 0, 11) .
'23:59:59';
493 return strtotime($dateTime);
495 $responseDueTime = $dueTimes[0];
496 $reviewDueTime = $dueTimes[1];
498 if($responseDueTime < time()) {
499 return REVIEW_ASSIGNMENT_STATUS_RESPONSE_OVERDUE;
500 } elseif ($reviewDueTime < strtotime(
'tomorrow')) {
501 return REVIEW_ASSIGNMENT_STATUS_REVIEW_OVERDUE;
503 return REVIEW_ASSIGNMENT_STATUS_AWAITING_RESPONSE;
506 if ($reviewDueTime < strtotime(
'tomorrow')) {
507 return REVIEW_ASSIGNMENT_STATUS_REVIEW_OVERDUE;
509 return REVIEW_ASSIGNMENT_STATUS_ACCEPTED;
514 return REVIEW_ASSIGNMENT_STATUS_RECEIVED;
516 return REVIEW_ASSIGNMENT_STATUS_THANKED;
519 return REVIEW_ASSIGNMENT_STATUS_COMPLETE;
521 return REVIEW_ASSIGNMENT_STATUS_RECEIVED;
524 return REVIEW_ASSIGNMENT_STATUS_AWAITING_RESPONSE;
541 $userGroups = $userGroupDao->getUserGroupsByStage(
542 $submission->getContextId(),
545 while ($userGroup = $userGroups->next()) {
546 $roleId = $userGroup->getRoleId();
547 if ($roleId != ROLE_ID_MANAGER && $roleId != ROLE_ID_SUB_EDITOR) {
552 $stageUsers = $userStageAssignmentDao->getUsersBySubmissionAndStageId(
559 while ($user = $stageUsers->next()) {
560 if ($viewsDao->getLastViewDate(
561 ASSOC_TYPE_REVIEW_RESPONSE,
582 if (is_null($status)) {
587 case REVIEW_ASSIGNMENT_STATUS_AWAITING_RESPONSE:
588 return 'submission.review.status.awaitingResponse';
589 case REVIEW_ASSIGNMENT_STATUS_DECLINED:
590 return 'submission.review.status.declined';
591 case REVIEW_ASSIGNMENT_STATUS_RESPONSE_OVERDUE:
592 return 'submission.review.status.responseOverdue';
593 case REVIEW_ASSIGNMENT_STATUS_REVIEW_OVERDUE:
594 return 'submission.review.status.reviewOverdue';
595 case REVIEW_ASSIGNMENT_STATUS_ACCEPTED:
596 return 'submission.review.status.accepted';
597 case REVIEW_ASSIGNMENT_STATUS_RECEIVED:
598 return 'submission.review.status.received';
599 case REVIEW_ASSIGNMENT_STATUS_COMPLETE:
600 return 'submission.review.status.complete';
601 case REVIEW_ASSIGNMENT_STATUS_THANKED:
602 return 'submission.review.status.thanked';
605 assert(
false,
'No status key could be found for ' . get_class($this) .
' on ' . __LINE__);
619 if (is_null($method)) {
624 case SUBMISSION_REVIEW_METHOD_OPEN:
625 return 'editor.submissionReview.open';
626 case SUBMISSION_REVIEW_METHOD_BLIND:
627 return 'editor.submissionReview.blind';
628 case SUBMISSION_REVIEW_METHOD_DOUBLEBLIND:
629 return 'editor.submissionReview.doubleBlind';
632 assert(
false,
'No review method key could be found for ' . get_class($this) .
' on ' . __LINE__);
647 if ($dateDue ===
null)
return null;
648 return round((strtotime($dateDue) - time()) / (86400 * 7.0));
658 static $reviewerRecommendationOptions = array(
659 '' =>
'common.chooseOne',
660 SUBMISSION_REVIEWER_RECOMMENDATION_ACCEPT =>
'reviewer.article.decision.accept',
661 SUBMISSION_REVIEWER_RECOMMENDATION_PENDING_REVISIONS =>
'reviewer.article.decision.pendingRevisions',
662 SUBMISSION_REVIEWER_RECOMMENDATION_RESUBMIT_HERE =>
'reviewer.article.decision.resubmitHere',
663 SUBMISSION_REVIEWER_RECOMMENDATION_RESUBMIT_ELSEWHERE =>
'reviewer.article.decision.resubmitElsewhere',
664 SUBMISSION_REVIEWER_RECOMMENDATION_DECLINE =>
'reviewer.article.decision.decline',
665 SUBMISSION_REVIEWER_RECOMMENDATION_SEE_COMMENTS =>
'reviewer.article.decision.seeComments'
667 return $reviewerRecommendationOptions;