One Hat Cyber Team
Your IP :
216.73.216.182
Server IP :
203.175.9.166
Server :
Linux tanggamus.iixcp.rumahweb.net 5.14.0-427.28.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 2 03:44:10 EDT 2024 x86_64
Server Software :
LiteSpeed
PHP Version :
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
cite5577
/
www
/
classes
/
submission
/
reviewer
/
Edit File:
ReviewerSubmissionDAO.inc.php
<?php /** * @file classes/submission/reviewer/ReviewerSubmissionDAO.inc.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2003-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class ReviewerSubmissionDAO * @ingroup submission * @see ReviewerSubmission * * @brief Operations for retrieving and modifying ReviewerSubmission objects. */ import('classes.submission.SubmissionDAO'); import('classes.submission.reviewer.ReviewerSubmission'); class ReviewerSubmissionDAO extends SubmissionDAO { var $authorDao; var $userDao; var $reviewAssignmentDao; var $submissionFileDao; var $submissionCommentDao; /** * Constructor. */ function __construct() { parent::__construct(); $this->authorDao = DAORegistry::getDAO('AuthorDAO'); $this->userDao = DAORegistry::getDAO('UserDAO'); $this->reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); $this->submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); $this->submissionCommentDao = DAORegistry::getDAO('SubmissionCommentDAO'); } /** * Retrieve a reviewer submission by submission ID. * @param $submissionId int * @param $reviewerId int * @return ReviewerSubmission */ function getReviewerSubmission($reviewId) { $primaryLocale = AppLocale::getPrimaryLocale(); $locale = AppLocale::getLocale(); // Each column of review_assignments table is taken separately intentionaly so that // same named columns like stage_id from different tables is treated separately in _fromRow function $result = $this->retrieve( 'SELECT a.*, r.review_id, r.submission_id, r.reviewer_id, r.competing_interests, r.recommendation, r.date_assigned, r.date_notified, r.date_confirmed, r.date_completed, r.date_acknowledged, r.date_due, r.date_response_due, r.last_modified as last_modified_ra, r.reminder_was_automatic, r.declined, r.cancelled, r.reviewer_file_id, r.date_rated, r.date_reminded, r.quality, r.review_round_id, r.stage_id as stage_id_ra, r.review_method, r.round, r.step, r.review_form_id, r.unconsidered, p.date_published, COALESCE(stl.setting_value, stpl.setting_value) AS section_title, COALESCE(sal.setting_value, sapl.setting_value) AS section_abbrev FROM submissions a LEFT JOIN publications p ON (a.submission_id = p.submission_id AND p.publication_id = a.current_publication_id) LEFT JOIN review_assignments r ON (a.submission_id = r.submission_id) LEFT JOIN sections s ON (s.section_id = p.section_id) LEFT JOIN section_settings stpl ON (s.section_id = stpl.section_id AND stpl.setting_name = ? AND stpl.locale = ?) LEFT JOIN section_settings stl ON (s.section_id = stl.section_id AND stl.setting_name = ? AND stl.locale = ?) LEFT JOIN section_settings sapl ON (s.section_id = sapl.section_id AND sapl.setting_name = ? AND sapl.locale = ?) LEFT JOIN section_settings sal ON (s.section_id = sal.section_id AND sal.setting_name = ? AND sal.locale = ?) WHERE r.review_id = ?', [ 'title', $primaryLocale, // Section title 'title', $locale, // Section title 'abbrev', $primaryLocale, // Section abbreviation 'abbrev', $locale, // Section abbreviation (int) $reviewId ] ); $row = $result->current(); return $row ? $this->_fromRow((array) $row) : null; } /** * Construct a new data object corresponding to this DAO. * @return ReviewerSubmission */ function newDataObject() { return new ReviewerSubmission(); } /** * Internal function to return a ReviewerSubmission object from a row. * @param $row array * @return ReviewerSubmission */ function _fromRow($row) { // Get the ReviewerSubmission object, populated with submission data $reviewerSubmission = parent::_fromRow($row); $reviewer = $this->userDao->getById($row['reviewer_id']); // Editor Decisions $editDecisionDao = DAORegistry::getDAO('EditDecisionDAO'); /* @var $editDecisionDao EditDecisionDAO */ $decisions = $editDecisionDao->getEditorDecisions($row['submission_id']); $reviewerSubmission->setDecisions($decisions); // Review Assignment $reviewerSubmission->setReviewId($row['review_id']); $reviewerSubmission->setReviewerId($row['reviewer_id']); $reviewerSubmission->setReviewerFullName($reviewer->getFullName()); $reviewerSubmission->setCompetingInterests($row['competing_interests']); $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->setDateResponseDue($this->datetimeFromDB($row['date_response_due'])); $reviewerSubmission->setDeclined($row['declined']); $reviewerSubmission->setCancelled($row['cancelled']); $reviewerSubmission->setQuality($row['quality']); $reviewerSubmission->setRound($row['round']); $reviewerSubmission->setStep($row['step']); $reviewerSubmission->setStageId($row['stage_id']); $reviewerSubmission->setReviewAssignmentStageId($row['stage_id_ra']); $reviewerSubmission->setReviewMethod($row['review_method']); HookRegistry::call('ReviewerSubmissionDAO::_fromRow', array(&$reviewerSubmission, &$row)); return $reviewerSubmission; } /** * Update an existing review submission. * @param ReviewerSubmission $reviewSubmission */ function updateReviewerSubmission(ReviewerSubmission $reviewerSubmission) { $this->update( sprintf('UPDATE review_assignments SET submission_id = ?, reviewer_id = ?, stage_id = ?, review_method = ?, round = ?, step = ?, competing_interests = ?, recommendation = ?, declined = ?, cancelled = ?, date_assigned = %s, date_notified = %s, date_confirmed = %s, date_completed = %s, date_acknowledged = %s, date_due = %s, date_response_due = %s, quality = ? WHERE review_id = ?', $this->datetimeToDB($reviewerSubmission->getDateAssigned()), $this->datetimeToDB($reviewerSubmission->getDateNotified()), $this->datetimeToDB($reviewerSubmission->getDateConfirmed()), $this->datetimeToDB($reviewerSubmission->getDateCompleted()), $this->datetimeToDB($reviewerSubmission->getDateAcknowledged()), $this->datetimeToDB($reviewerSubmission->getDateDue()), $this->datetimeToDB($reviewerSubmission->getDateResponseDue())), [ (int) $reviewerSubmission->getId(), (int) $reviewerSubmission->getReviewerId(), (int) $reviewerSubmission->getReviewAssignmentStageId(), (int) $reviewerSubmission->getReviewMethod(), (int) $reviewerSubmission->getRound(), (int) $reviewerSubmission->getStep(), $reviewerSubmission->getCompetingInterests(), (int) $reviewerSubmission->getRecommendation(), (int) $reviewerSubmission->getDeclined(), (int) $reviewerSubmission->getCancelled(), $reviewerSubmission->getQuality(), (int) $reviewerSubmission->getReviewId() ] ); } }
Simpan