Open Monograph Press  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 m.*, p.date_published,
50  r.*,
51  COALESCE(stl.setting_value, stpl.setting_value) AS series_title
52  FROM submissions m
53  LEFT JOIN publications p ON (m.current_publication_id = p.publication_id)
54  LEFT JOIN review_assignments r ON (m.submission_id = r.submission_id)
55  LEFT JOIN series s ON (s.series_id = p.series_id)
56  LEFT JOIN series_settings stpl ON (s.series_id = stpl.series_id AND stpl.setting_name = ? AND stpl.locale = ?)
57  LEFT JOIN series_settings stl ON (s.series_id = stl.series_id AND stl.setting_name = ? AND stl.locale = ?)
58  WHERE r.review_id = ?',
59  array(
60  'title', $primaryLocale, // Series title
61  'title', $locale, // Series title
62  (int) $reviewId
63  )
64  );
65 
66  $returner = null;
67  if ($result->RecordCount() != 0) {
68  $returner = $this->_fromRow($result->GetRowAssoc(false));
69  }
70 
71  $result->Close();
72  return $returner;
73  }
74 
79  function newDataObject() {
80  return new ReviewerSubmission();
81  }
82 
88  function _fromRow($row) {
89  // Get the ReviewerSubmission object, populated with Monograph data
90  $reviewerSubmission = parent::_fromRow($row);
91  $reviewer = $this->userDao->getById($row['reviewer_id']);
92 
93  // Editor Decisions
94  $editDecisionDao = DAORegistry::getDAO('EditDecisionDAO'); /* @var $editDecisionDao EditDecisionDAO */
95  $decisions = $editDecisionDao->getEditorDecisions($row['submission_id']);
96  $reviewerSubmission->setDecisions($decisions);
97 
98  // Review Assignment
99  $reviewerSubmission->setReviewId($row['review_id']);
100  $reviewerSubmission->setReviewerId($row['reviewer_id']);
101  $reviewerSubmission->setReviewerFullName($reviewer->getFullName());
102  $reviewerSubmission->setCompetingInterests($row['competing_interests']);
103  $reviewerSubmission->setRecommendation($row['recommendation']);
104  $reviewerSubmission->setDateAssigned($this->datetimeFromDB($row['date_assigned']));
105  $reviewerSubmission->setDateNotified($this->datetimeFromDB($row['date_notified']));
106  $reviewerSubmission->setDateConfirmed($this->datetimeFromDB($row['date_confirmed']));
107  $reviewerSubmission->setDateCompleted($this->datetimeFromDB($row['date_completed']));
108  $reviewerSubmission->setDateAcknowledged($this->datetimeFromDB($row['date_acknowledged']));
109  $reviewerSubmission->setDateDue($this->datetimeFromDB($row['date_due']));
110  $reviewerSubmission->setDateResponseDue($this->datetimeFromDB($row['date_response_due']));
111  $reviewerSubmission->setDeclined($row['declined']);
112  $reviewerSubmission->setCancelled($row['cancelled']);
113  $reviewerSubmission->setQuality($row['quality']);
114  $reviewerSubmission->setRound($row['round']);
115  $reviewerSubmission->setStep($row['step']);
116  $reviewerSubmission->setStageId($row['stage_id']);
117  $reviewerSubmission->setReviewMethod($row['review_method']);
118 
119  HookRegistry::call('ReviewerSubmissionDAO::_fromRow', array(&$reviewerSubmission, &$row));
120  return $reviewerSubmission;
121  }
122 
127  function updateReviewerSubmission($reviewerSubmission) {
128  $this->update(
129  sprintf('UPDATE review_assignments
130  SET submission_id = ?,
131  reviewer_id = ?,
132  stage_id = ?,
133  review_method = ?,
134  round = ?,
135  step = ?,
136  competing_interests = ?,
137  recommendation = ?,
138  declined = ?,
139  cancelled = ?,
140  date_assigned = %s,
141  date_notified = %s,
142  date_confirmed = %s,
143  date_completed = %s,
144  date_acknowledged = %s,
145  date_due = %s,
146  date_response_due = %s,
147  quality = ?
148  WHERE review_id = ?',
149  $this->datetimeToDB($reviewerSubmission->getDateAssigned()),
150  $this->datetimeToDB($reviewerSubmission->getDateNotified()),
151  $this->datetimeToDB($reviewerSubmission->getDateConfirmed()),
152  $this->datetimeToDB($reviewerSubmission->getDateCompleted()),
153  $this->datetimeToDB($reviewerSubmission->getDateAcknowledged()),
154  $this->datetimeToDB($reviewerSubmission->getDateDue()),
155  $this->datetimeToDB($reviewerSubmission->getDateResponseDue())),
156  array(
157  (int) $reviewerSubmission->getId(),
158  (int) $reviewerSubmission->getReviewerId(),
159  (int) $reviewerSubmission->getStageId(),
160  (int) $reviewerSubmission->getReviewMethod(),
161  (int) $reviewerSubmission->getRound(),
162  (int) $reviewerSubmission->getStep(),
163  $reviewerSubmission->getCompetingInterests(),
164  (int) $reviewerSubmission->getRecommendation(),
165  (int) $reviewerSubmission->getDeclined(),
166  (int) $reviewerSubmission->getCancelled(),
167  (int) $reviewerSubmission->getQuality(),
168  (int) $reviewerSubmission->getReviewId()
169  )
170  );
171  }
172 }
173 
174 
ReviewerSubmissionDAO\$authorDao
$authorDao
Definition: ReviewerSubmissionDAO.inc.php:21
ReviewerSubmissionDAO\_fromRow
_fromRow($row)
Definition: ReviewerSubmissionDAO.inc.php:88
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:127
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:79
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 Monograph objects.
Definition: SubmissionDAO.inc.php:22
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