Open Journal Systems  3.3.0
ReviewReportDAO.inc.php
1 <?php
2 
17 import('lib.pkp.classes.submission.SubmissionComment');
18 import('lib.pkp.classes.db.DBRowIterator');
19 
20 class ReviewReportDAO extends DAO {
26  function getReviewReport($contextId) {
27  $locale = AppLocale::getLocale();
28 
29  import('lib.pkp.classes.db.DBRowIterator');
30  $commentsReturner = new DBRowIterator($this->retrieve(
31  'SELECT submission_id,
32  comments,
33  author_id
34  FROM submission_comments
35  WHERE comment_type = ?',
36  array(
37  COMMENT_TYPE_PEER_REVIEW
38  )
39  ));
40 
41  $userDao = DAORegistry::getDAO('UserDAO');
42  $site = Application::get()->getRequest()->getSite();
43  $sitePrimaryLocale = $site->getPrimaryLocale();
44 
45  $params = array_merge(
46  array(
47  $locale, // Submission title
48  'title',
49  'title',
50  ),
51  $userDao->getFetchParameters(),
52  array(
53  'affiliation',
54  'affiliation',
55  $sitePrimaryLocale,
56  'orcid',
57  (int) $contextId
58  )
59  );
60  $reviewsReturner = new DBRowIterator($this->retrieve(
61  'SELECT r.stage_id AS stage_id,
62  r.round AS round,
63  COALESCE(asl.setting_value, aspl.setting_value) AS submission,
64  a.submission_id AS submission_id,
65  u.user_id AS reviewer_id,
66  u.username AS reviewer,
67  ' . $userDao->getFetchColumns() .',
68  u.email AS email,
69  u.country AS country,
70  us.setting_value AS orcid,
71  COALESCE(uasl.setting_value, uas.setting_value) AS affiliation,
72  r.date_assigned AS dateAssigned,
73  r.date_notified AS dateNotified,
74  r.date_confirmed AS dateConfirmed,
75  r.date_completed AS dateCompleted,
76  r.date_acknowledged AS dateAcknowledged,
77  r.date_reminded AS dateReminded,
78  r.date_due AS dateDue,
79  r.date_response_due AS dateResponseDue,
80  (r.declined=1) AS declined,
81  (r.unconsidered=1) AS unconsidered,
82  r.recommendation AS recommendation
83  FROM review_assignments r
84  LEFT JOIN submissions a ON r.submission_id = a.submission_id
85  LEFT JOIN publications p ON a.current_publication_id = p.publication_id
86  LEFT JOIN submission_settings asl ON (a.submission_id = asl.submission_id AND asl.locale = ? AND asl.setting_name = ?)
87  LEFT JOIN submission_settings aspl ON (a.submission_id = aspl.submission_id AND aspl.locale = p.locale AND aspl.setting_name = ?)
88  LEFT JOIN users u ON (u.user_id = r.reviewer_id)
89  ' . $userDao->getFetchJoins() .'
90  LEFT JOIN user_settings uas ON (u.user_id = uas.user_id AND uas.setting_name = ? AND uas.locale = a.locale)
91  LEFT JOIN user_settings uasl ON (u.user_id = uasl.user_id AND uasl.setting_name = ? AND uasl.locale = ?)
92  LEFT JOIN user_settings us ON (u.user_id = us.user_id AND us.setting_name = ?)
93  WHERE a.context_id = ?
94  ORDER BY submission',
95  $params
96  ));
97 
98  import('lib.pkp.classes.user.InterestManager');
99  $interestManager = new InterestManager();
100  $assignedReviewerIds = new DBRowIterator($this->retrieve(
101  'SELECT r.reviewer_id
102  FROM review_assignments r
103  LEFT JOIN submissions a ON r.submission_id = a.submission_id
104  WHERE a.context_id = ?
105  ORDER BY r.reviewer_id',
106  array((int) $contextId)
107  ));
108  $interests = array();
109  while ($row = $assignedReviewerIds->next()) {
110  if (!array_key_exists($row['reviewer_id'], $interests)) {
111  $user = $userDao->getById($row['reviewer_id']);
112  $reviewerInterests = $interestManager->getInterestsString($user);
113  if (!empty($reviewerInterests)) $interests[$row['reviewer_id']] = $reviewerInterests;
114  }
115  }
116  return array($commentsReturner, $reviewsReturner, $interests);
117  }
118 }
119 
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
ReviewReportDAO
Review report DAO.
Definition: ReviewReportDAO.inc.php:20
DAO\retrieve
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:85
ReviewReportDAO\getReviewReport
getReviewReport($contextId)
Definition: ReviewReportDAO.inc.php:26
DBRowIterator
Wrapper around ADORecordSet providing "factory" features for generating objects from DAOs.
Definition: DBRowIterator.inc.php:20
InterestManager
Handle user interest functions.
Definition: InterestManager.inc.php:16
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
AppLocale\getLocale
static getLocale()
Definition: env1/MockAppLocale.inc.php:40
DAO
Operations for retrieving and modifying objects from a database.
Definition: DAO.inc.php:31