18 import(
'lib.pkp.classes.submission.reviewAssignment.ReviewAssignment');
27 parent::__construct();
38 $params = array((
int)$reviewRoundId);
40 ' WHERE r.review_round_id = ? ORDER BY review_id';
50 $params = array((
int)$reviewRoundId, SUBMISSION_REVIEW_METHOD_OPEN);
52 ' WHERE r.review_round_id = ? AND r.review_method = ? AND r.date_confirmed IS NOT NULL AND r.declined <> 1 ORDER BY review_id';
64 $reviewAssignments = array();
66 $result = $this->
retrieve($query, $queryParams);
68 while (!$result->EOF) {
69 $reviewAssignments[$result->fields[
'review_id']] = $this->
_fromRow($result->GetRowAssoc(
false));
74 return $reviewAssignments;
83 return 'r.review_round_id = r2.review_round_id';
99 ' WHERE r.review_round_id = ? AND
102 (
int) $reviewRoundId,
108 if ($result->RecordCount() != 0) {
109 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
124 if ($reviewRoundJoinString) {
126 'SELECT r.*, r2.review_revision
127 FROM review_assignments r
128 LEFT JOIN review_rounds r2 ON (' . $reviewRoundJoinString .
')
129 WHERE r.review_id = ?',
134 if ($result->RecordCount() != 0) {
135 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
151 $reviewAssignments = array();
153 if ($reviewRoundJoinString) {
155 'SELECT r.*, r2.review_revision
156 FROM review_assignments r
157 LEFT JOIN review_rounds r2 ON (' . $reviewRoundJoinString .
')
159 ' ORDER BY r.submission_id'
162 while (!$result->EOF) {
163 $reviewAssignments[] = $this->
_fromRow($result->GetRowAssoc(
false));
172 return $reviewAssignments;
181 return ' r.date_notified IS NOT NULL AND
182 r.date_completed IS NULL AND
196 ' WHERE r.submission_id = ?';
198 $orderBy =
' ORDER BY review_id';
200 $queryParams[] = (int) $submissionId;
202 if ($reviewRoundId !=
null) {
203 $query .=
' AND r2.review_round_id = ?';
204 $queryParams[] = (int) $reviewRoundId;
206 $orderBy .=
', r2.review_round_id';
209 if ($stageId !=
null) {
210 $query .=
' AND r2.stage_id = ?';
211 $queryParams[] = (int) $stageId;
213 $orderBy .=
', r2.stage_id';
227 $reviewAssignments = array();
230 if ($reviewRoundJoinString) {
232 'SELECT r.*, r2.review_revision
233 FROM review_assignments r
234 LEFT JOIN review_rounds r2 ON (' . $reviewRoundJoinString .
')
235 WHERE r.reviewer_id = ?
236 ORDER BY round, review_id',
240 while (!$result->EOF) {
241 $reviewAssignments[] = $this->
_fromRow($result->GetRowAssoc(
false));
250 return $reviewAssignments;
262 FROM review_assignments
263 WHERE review_round_id = ? AND
265 array((
int) $reviewRoundId, (
int) $reviewerId)
267 $returner = isset($result->fields[0]) && $result->fields[0] == 1 ? true :
false;
279 $reviewAssignments = array();
282 if ($reviewRoundJoinString) {
284 'SELECT r.*, r2.review_revision
285 FROM review_assignments r
286 LEFT JOIN review_rounds r2 ON (' . $reviewRoundJoinString .
')
287 WHERE r.review_form_id = ?
288 ORDER BY round, review_id',
292 while (!$result->EOF) {
293 $reviewAssignments[] = $this->
_fromRow($result->GetRowAssoc(
false));
302 return $reviewAssignments;
314 FROM review_assignments
315 WHERE submission_id = ? AND
318 array((
int) $submissionId, (
int) $reviewRoundId)
323 while (!$result->EOF) {
324 $row = $result->GetRowAssoc(
false);
325 $returner[$row[
'review_id']] = $index++;
339 sprintf(
'INSERT INTO review_assignments (
349 date_assigned, date_notified, date_confirmed,
350 date_completed, date_acknowledged, date_due, date_response_due,
353 date_reminded, reminder_was_automatic,
358 ?, ?, ?, ?, ?, ?, ?, ?, ?, %s, %s, %s, %s, %s, %s, %s, ?, %s, %s, %s, ?, ?, ?, ?
360 $this->
datetimeToDB($reviewAssignment->getDateAssigned()),
361 $this->datetimeToDB($reviewAssignment->getDateNotified()),
362 $this->datetimeToDB($reviewAssignment->getDateConfirmed()),
363 $this->datetimeToDB($reviewAssignment->getDateCompleted()),
364 $this->datetimeToDB($reviewAssignment->getDateAcknowledged()),
365 $this->datetimeToDB($reviewAssignment->getDateDue()),
366 $this->datetimeToDB($reviewAssignment->getDateResponseDue()),
367 $this->datetimeToDB($reviewAssignment->getDateRated()),
368 $this->datetimeToDB($reviewAssignment->getLastModified()),
369 $this->datetimeToDB($reviewAssignment->getDateReminded())
371 (
int) $reviewAssignment->getSubmissionId(),
372 (
int) $reviewAssignment->getReviewerId(),
373 (
int) $reviewAssignment->getStageId(),
374 (
int) $reviewAssignment->getReviewMethod(),
375 max((
int) $reviewAssignment->getRound(), 1),
376 $reviewAssignment->getCompetingInterests(),
377 $reviewAssignment->getRecommendation(),
378 (
int) $reviewAssignment->getDeclined(),
379 (
int) $reviewAssignment->getCancelled(),
380 $reviewAssignment->getQuality(),
381 (
int) $reviewAssignment->getReminderWasAutomatic(),
382 $reviewAssignment->getReviewFormId(),
383 (
int) $reviewAssignment->getReviewRoundId(),
384 (
int) $reviewAssignment->getUnconsidered(),
400 sprintf(
'UPDATE review_assignments
401 SET submission_id = ?,
406 competing_interests = ?,
414 date_acknowledged = %s,
416 date_response_due = %s,
421 reminder_was_automatic = ?,
425 WHERE review_id = ?',
426 $this->
datetimeToDB($reviewAssignment->getDateAssigned()), $this->datetimeToDB($reviewAssignment->getDateNotified()), $this->datetimeToDB($reviewAssignment->getDateConfirmed()), $this->datetimeToDB($reviewAssignment->getDateCompleted()), $this->datetimeToDB($reviewAssignment->getDateAcknowledged()), $this->datetimeToDB($reviewAssignment->getDateDue()), $this->datetimeToDB($reviewAssignment->getDateResponseDue()), $this->datetimeToDB($reviewAssignment->getDateRated()), $this->datetimeToDB($reviewAssignment->getLastModified()), $this->datetimeToDB($reviewAssignment->getDateReminded())),
428 (
int) $reviewAssignment->getSubmissionId(),
429 (
int) $reviewAssignment->getReviewerId(),
430 (
int) $reviewAssignment->getStageId(),
431 (
int) $reviewAssignment->getReviewMethod(),
432 (
int) $reviewAssignment->getRound(),
433 $reviewAssignment->getCompetingInterests(),
434 $reviewAssignment->getRecommendation(),
435 (
int) $reviewAssignment->getDeclined(),
436 (
int) $reviewAssignment->getCancelled(),
437 $reviewAssignment->getQuality(),
438 $reviewAssignment->getReminderWasAutomatic(),
439 $reviewAssignment->getReviewFormId(),
440 (
int) $reviewAssignment->getReviewRoundId(),
441 (
int) $reviewAssignment->getUnconsidered(),
442 (
int) $reviewAssignment->getId()
457 import(
'lib.pkp.classes.submission.reviewRound/ReviewRoundDAO');
459 $reviewRound = $reviewRoundDao->getReviewRound(
460 $reviewAssignment->getSubmissionId(),
461 $reviewAssignment->getStageId(),
462 $reviewAssignment->getRound()
467 return $reviewRoundDao->updateStatus($reviewRound);
480 $user = $this->userDao->getById($row[
'reviewer_id']);
482 $reviewAssignment->setId((
int) $row[
'review_id']);
483 $reviewAssignment->setSubmissionId((
int) $row[
'submission_id']);
484 $reviewAssignment->setReviewerId((
int) $row[
'reviewer_id']);
485 $reviewAssignment->setReviewerFullName($user->getFullName());
486 $reviewAssignment->setCompetingInterests($row[
'competing_interests']);
487 $reviewAssignment->setRecommendation($row[
'recommendation']);
488 $reviewAssignment->setDateAssigned($this->
datetimeFromDB($row[
'date_assigned']));
489 $reviewAssignment->setDateNotified($this->
datetimeFromDB($row[
'date_notified']));
490 $reviewAssignment->setDateConfirmed($this->
datetimeFromDB($row[
'date_confirmed']));
491 $reviewAssignment->setDateCompleted($this->
datetimeFromDB($row[
'date_completed']));
492 $reviewAssignment->setDateAcknowledged($this->
datetimeFromDB($row[
'date_acknowledged']));
493 $reviewAssignment->setDateDue($this->
datetimeFromDB($row[
'date_due']));
494 $reviewAssignment->setDateResponseDue($this->
datetimeFromDB($row[
'date_response_due']));
495 $reviewAssignment->setLastModified($this->
datetimeFromDB($row[
'last_modified']));
496 $reviewAssignment->setDeclined((
int) $row[
'declined']);
497 $reviewAssignment->setCancelled((
int) $row[
'cancelled']);
498 $reviewAssignment->setQuality($row[
'quality']);
499 $reviewAssignment->setDateRated($this->
datetimeFromDB($row[
'date_rated']));
500 $reviewAssignment->setDateReminded($this->
datetimeFromDB($row[
'date_reminded']));
501 $reviewAssignment->setReminderWasAutomatic((
int) $row[
'reminder_was_automatic']);
502 $reviewAssignment->setRound((
int) $row[
'round']);
503 $reviewAssignment->setReviewFormId($row[
'review_form_id']);
504 $reviewAssignment->setReviewRoundId((
int) $row[
'review_round_id']);
505 $reviewAssignment->setReviewMethod((
int) $row[
'review_method']);
506 $reviewAssignment->setStageId((
int) $row[
'stage_id']);
507 $reviewAssignment->setUnconsidered((
int) $row[
'unconsidered']);
509 return $reviewAssignment;
526 $reviewFormResponseDao->deleteByReviewId($reviewId);
529 $reviewFilesDao->revokeByReviewId($reviewId);
532 $notificationDao->deleteByAssoc(ASSOC_TYPE_REVIEW_ASSIGNMENT, $reviewId);
536 import(
'lib.pkp.classes.submission.reviewRound/ReviewRoundDAO');
537 $reviewAssignment = $this->
getById($reviewId);
540 'DELETE FROM review_assignments WHERE review_id = ?',
557 'SELECT review_id FROM review_assignments WHERE submission_id = ?',
558 array((
int) $submissionId)
561 while (!$result->EOF) {
562 $row = $result->GetRowAssoc(
false);
576 return $this->
_getInsertId(
'review_assignments',
'review_id');
593 ' WHERE r.submission_id = ? AND
595 ORDER BY r2.stage_id DESC, r2.round DESC',
601 if ($result->RecordCount() != 0) {
602 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
616 SUBMISSION_REVIEW_METHOD_DOUBLEBLIND =>
'editor.submissionReview.doubleBlind',
617 SUBMISSION_REVIEW_METHOD_BLIND =>
'editor.submissionReview.blind',
618 SUBMISSION_REVIEW_METHOD_OPEN =>
'editor.submissionReview.open',
627 return 'SELECT r.*, r2.review_revision FROM review_assignments r
628 LEFT JOIN review_rounds r2 ON (r.review_round_id = r2.review_round_id)';