/** * Internal function to return a ReviewerSubmission object from a row. * @param $row array * @return ReviewerSubmission */ function &_returnReviewerSubmissionFromRow(&$row) { $reviewerSubmission = new ReviewerSubmission(); // Director Assignment $editAssignments =& $this->editAssignmentDao->getEditAssignmentsByPaperId($row['paper_id']); $reviewerSubmission->setEditAssignments($editAssignments->toArray()); // Files $reviewerSubmission->setSubmissionFile($this->paperFileDao->getPaperFile($row['submission_file_id'])); $reviewerSubmission->setRevisedFile($this->paperFileDao->getPaperFile($row['revised_file_id'])); $reviewerSubmission->setSuppFiles($this->suppFileDao->getSuppFilesByPaper($row['paper_id'])); $reviewerSubmission->setReviewFile($this->paperFileDao->getPaperFile($row['review_file_id'])); $reviewerSubmission->setReviewerFile($this->paperFileDao->getPaperFile($row['reviewer_file_id'])); $reviewerSubmission->setReviewerFileRevisions($this->paperFileDao->getPaperFileRevisions($row['reviewer_file_id'])); // Comments $reviewerSubmission->setMostRecentPeerReviewComment($this->paperCommentDao->getMostRecentPaperComment($row['paper_id'], COMMENT_TYPE_PEER_REVIEW, $row['review_id'])); // Director Decisions for ($i = 1; $i <= $row['current_round']; $i++) { $reviewerSubmission->setDecisions($this->getDirectorDecisions($row['paper_id'], $i), $i); } // Review Assignment $reviewerSubmission->setReviewId($row['review_id']); $reviewerSubmission->setReviewerId($row['reviewer_id']); $reviewerSubmission->setReviewerFullName($row['first_name'] . ' ' . $row['last_name']); $reviewerSubmission->setRecommendation($row['recommendation']); $reviewerSubmission->setDateAssigned($this->datetimeFromDB($row['date_assigned'])); $reviewerSubmission->setDateNotified($this->datetimeFromDB($row['date_notified'])); $reviewerSubmission->setDateConfirmed($this->datetimeFromDB($row['date_confirmed'])); $reviewerSubmission->setDateCompleted($this->datetimeFromDB($row['date_completed'])); $reviewerSubmission->setDateAcknowledged($this->datetimeFromDB($row['date_acknowledged'])); $reviewerSubmission->setDateDue($this->datetimeFromDB($row['date_due'])); $reviewerSubmission->setDeclined($row['declined']); $reviewerSubmission->setReplaced($row['replaced']); $reviewerSubmission->setCancelled($row['cancelled'] == 1 ? 1 : 0); $reviewerSubmission->setReviewerFileId($row['reviewer_file_id']); $reviewerSubmission->setQuality($row['quality']); $reviewerSubmission->setRound($row['round']); $reviewerSubmission->setReviewFileId($row['review_file_id']); $reviewerSubmission->setReviewRevision($row['review_revision']); // Paper attributes $this->paperDao->_paperFromRow($reviewerSubmission, $row); HookRegistry::call('ReviewerSubmissionDAO::_returnReviewerSubmissionFromRow', array(&$reviewerSubmission, &$row)); return $reviewerSubmission; }