Open Journal Systems  3.3.0
ReviewerSubmissionDAO.inc.php
1 <?php
2 
17 import('classes.submission.SubmissionDAO');
18 import('classes.submission.reviewer.ReviewerSubmission');
19 
22  var $userDao;
26 
30  function __construct() {
31  parent::__construct();
32  $this->authorDao = DAORegistry::getDAO('AuthorDAO');
33  $this->userDao = DAORegistry::getDAO('UserDAO');
34  $this->reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO');
35  $this->submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO');
36  $this->submissionCommentDao = DAORegistry::getDAO('SubmissionCommentDAO');
37  }
38 
45  function getReviewerSubmission($reviewId) {
46  $primaryLocale = AppLocale::getPrimaryLocale();
47  $locale = AppLocale::getLocale();
48  $result = $this->retrieve(
49  'SELECT a.*,
50  r.*,
51  p.date_published,
52  COALESCE(stl.setting_value, stpl.setting_value) AS section_title,
53  COALESCE(sal.setting_value, sapl.setting_value) AS section_abbrev
54  FROM submissions a
55  LEFT JOIN publications p ON (a.submission_id = p.submission_id AND p.publication_id = a.current_publication_id)
56  LEFT JOIN review_assignments r ON (a.submission_id = r.submission_id)
57  LEFT JOIN sections s ON (s.section_id = p.section_id)
58  LEFT JOIN section_settings stpl ON (s.section_id = stpl.section_id AND stpl.setting_name = ? AND stpl.locale = ?)
59  LEFT JOIN section_settings stl ON (s.section_id = stl.section_id AND stl.setting_name = ? AND stl.locale = ?)
60  LEFT JOIN section_settings sapl ON (s.section_id = sapl.section_id AND sapl.setting_name = ? AND sapl.locale = ?)
61  LEFT JOIN section_settings sal ON (s.section_id = sal.section_id AND sal.setting_name = ? AND sal.locale = ?)
62  WHERE r.review_id = ?',
63  array(
64  'title', $primaryLocale, // Section title
65  'title', $locale, // Section title
66  'abbrev', $primaryLocale, // Section abbreviation
67  'abbrev', $locale, // Section abbreviation
68  (int) $reviewId
69  )
70  );
71 
72  $returner = null;
73  if ($result->RecordCount() != 0) {
74  $returner = $this->_fromRow($result->GetRowAssoc(false));
75  }
76 
77  $result->Close();
78  return $returner;
79  }
80 
85  function newDataObject() {
86  return new ReviewerSubmission();
87  }
88 
94  function _fromRow($row) {
95  // Get the ReviewerSubmission object, populated with submission data
96  $reviewerSubmission = parent::_fromRow($row);
97  $reviewer = $this->userDao->getById($row['reviewer_id']);
98 
99  // Editor Decisions
100  $editDecisionDao = DAORegistry::getDAO('EditDecisionDAO'); /* @var $editDecisionDao EditDecisionDAO */
101  $decisions = $editDecisionDao->getEditorDecisions($row['submission_id']);
102  $reviewerSubmission->setDecisions($decisions);
103 
104  // Review Assignment
105  $reviewerSubmission->setReviewId($row['review_id']);
106  $reviewerSubmission->setReviewerId($row['reviewer_id']);
107  $reviewerSubmission->setReviewerFullName($reviewer->getFullName());
108  $reviewerSubmission->setCompetingInterests($row['competing_interests']);
109  $reviewerSubmission->setRecommendation($row['recommendation']);
110  $reviewerSubmission->setDateAssigned($this->datetimeFromDB($row['date_assigned']));
111  $reviewerSubmission->setDateNotified($this->datetimeFromDB($row['date_notified']));
112  $reviewerSubmission->setDateConfirmed($this->datetimeFromDB($row['date_confirmed']));
113  $reviewerSubmission->setDateCompleted($this->datetimeFromDB($row['date_completed']));
114  $reviewerSubmission->setDateAcknowledged($this->datetimeFromDB($row['date_acknowledged']));
115  $reviewerSubmission->setDateDue($this->datetimeFromDB($row['date_due']));
116  $reviewerSubmission->setDateResponseDue($this->datetimeFromDB($row['date_response_due']));
117  $reviewerSubmission->setDeclined($row['declined']);
118  $reviewerSubmission->setCancelled($row['cancelled']);
119  $reviewerSubmission->setQuality($row['quality']);
120  $reviewerSubmission->setRound($row['round']);
121  $reviewerSubmission->setStep($row['step']);
122  $reviewerSubmission->setStageId($row['stage_id']);
123  $reviewerSubmission->setReviewMethod($row['review_method']);
124 
125  HookRegistry::call('ReviewerSubmissionDAO::_fromRow', array(&$reviewerSubmission, &$row));
126  return $reviewerSubmission;
127  }
128 
133  function updateReviewerSubmission($reviewerSubmission) {
134  $this->update(
135  sprintf('UPDATE review_assignments
136  SET submission_id = ?,
137  reviewer_id = ?,
138  stage_id = ?,
139  review_method = ?,
140  round = ?,
141  step = ?,
142  competing_interests = ?,
143  recommendation = ?,
144  declined = ?,
145  cancelled = ?,
146  date_assigned = %s,
147  date_notified = %s,
148  date_confirmed = %s,
149  date_completed = %s,
150  date_acknowledged = %s,
151  date_due = %s,
152  date_response_due = %s,
153  quality = ?
154  WHERE review_id = ?',
155  $this->datetimeToDB($reviewerSubmission->getDateAssigned()),
156  $this->datetimeToDB($reviewerSubmission->getDateNotified()),
157  $this->datetimeToDB($reviewerSubmission->getDateConfirmed()),
158  $this->datetimeToDB($reviewerSubmission->getDateCompleted()),
159  $this->datetimeToDB($reviewerSubmission->getDateAcknowledged()),
160  $this->datetimeToDB($reviewerSubmission->getDateDue()),
161  $this->datetimeToDB($reviewerSubmission->getDateResponseDue())),
162  array(
163  (int) $reviewerSubmission->getId(),
164  (int) $reviewerSubmission->getReviewerId(),
165  (int) $reviewerSubmission->getStageId(),
166  (int) $reviewerSubmission->getReviewMethod(),
167  (int) $reviewerSubmission->getRound(),
168  (int) $reviewerSubmission->getStep(),
169  $reviewerSubmission->getCompetingInterests(),
170  (int) $reviewerSubmission->getRecommendation(),
171  (int) $reviewerSubmission->getDeclined(),
172  (int) $reviewerSubmission->getCancelled(),
173  $reviewerSubmission->getQuality(),
174  (int) $reviewerSubmission->getReviewId()
175  )
176  );
177  }
178 }
179 
180 
ReviewerSubmissionDAO\$authorDao
$authorDao
Definition: ReviewerSubmissionDAO.inc.php:21
ReviewerSubmissionDAO\_fromRow
_fromRow($row)
Definition: ReviewerSubmissionDAO.inc.php:94
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
ReviewerSubmissionDAO\getReviewerSubmission
getReviewerSubmission($reviewId)
Definition: ReviewerSubmissionDAO.inc.php:45
ReviewerSubmissionDAO\updateReviewerSubmission
updateReviewerSubmission($reviewerSubmission)
Definition: ReviewerSubmissionDAO.inc.php:133
DAO\retrieve
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:85
AppLocale\getPrimaryLocale
static getPrimaryLocale()
Definition: env1/MockAppLocale.inc.php:95
ReviewerSubmissionDAO\newDataObject
newDataObject()
Definition: ReviewerSubmissionDAO.inc.php:85
ReviewerSubmissionDAO\$submissionFileDao
$submissionFileDao
Definition: ReviewerSubmissionDAO.inc.php:24
DAO\datetimeFromDB
datetimeFromDB($dt)
Definition: DAO.inc.php:319
ReviewerSubmissionDAO\$userDao
$userDao
Definition: ReviewerSubmissionDAO.inc.php:22
SubmissionDAO
Operations for retrieving and modifying Article objects.
Definition: SubmissionDAO.inc.php:20
ReviewerSubmissionDAO
Operations for retrieving and modifying ReviewerSubmission objects.
Definition: ReviewerSubmissionDAO.inc.php:20
ReviewerSubmission
ReviewerSubmission class.
Definition: ReviewerSubmission.inc.php:19
DAO\update
update($sql, $params=false, $callHooks=true, $dieOnError=true)
Definition: DAO.inc.php:214
DAO\datetimeToDB
datetimeToDB($dt)
Definition: DAO.inc.php:299
ReviewerSubmissionDAO\$reviewAssignmentDao
$reviewAssignmentDao
Definition: ReviewerSubmissionDAO.inc.php:23
ReviewerSubmissionDAO\$submissionCommentDao
$submissionCommentDao
Definition: ReviewerSubmissionDAO.inc.php:25
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
ReviewerSubmissionDAO\__construct
__construct()
Definition: ReviewerSubmissionDAO.inc.php:30
AppLocale\getLocale
static getLocale()
Definition: env1/MockAppLocale.inc.php:40