ocs  2.3.6
About: OCS (Open Conference System) is a Web publishing tool that will create a complete Web presence for your scholarly conference.
  Fossies Dox: ocs-2.3.6.tar.gz  ("inofficial" and yet experimental doxygen-generated source code documentation)  

DirectorSubmissionDAO.inc.php
Go to the documentation of this file.
1 <?php
2 
18 import('submission.director.DirectorSubmission');
19 import('submission.author.AuthorSubmission'); // Bring in director decision constants
20 
21 define('DIRECTOR_SUBMISSION_SORT_ORDER_NATURAL', 0x00000001);
22 define('DIRECTOR_SUBMISSION_SORT_ORDER_PUBLISHED', 0x00000002);
23 
24 class DirectorSubmissionDAO extends DAO {
25 
26  var $paperDao;
28  var $userDao;
30 
34  function DirectorSubmissionDAO() {
35  parent::DAO();
36  $this->paperDao =& DAORegistry::getDAO('PaperDAO');
37  $this->authorDao =& DAORegistry::getDAO('AuthorDAO');
38  $this->userDao =& DAORegistry::getDAO('UserDAO');
39  $this->editAssignmentDao =& DAORegistry::getDAO('EditAssignmentDAO');
40  }
41 
47  function &getDirectorSubmission($paperId) {
48  $primaryLocale = AppLocale::getPrimaryLocale();
49  $locale = AppLocale::getLocale();
50  $result =& $this->retrieve(
51  'SELECT p.*,
52  COALESCE(ttl.setting_value, ttpl.setting_value) AS track_title,
53  COALESCE(tal.setting_value, tapl.setting_value) AS track_abbrev
54  FROM papers p
55  LEFT JOIN tracks t ON t.track_id = p.track_id
56  LEFT JOIN track_settings ttpl ON (t.track_id = ttpl.track_id AND ttpl.setting_name = ? AND ttpl.locale = ?)
57  LEFT JOIN track_settings ttl ON (t.track_id = ttl.track_id AND ttl.setting_name = ? AND ttl.locale = ?)
58  LEFT JOIN track_settings tapl ON (t.track_id = tapl.track_id AND tapl.setting_name = ? AND tapl.locale = ?)
59  LEFT JOIN track_settings tal ON (t.track_id = tal.track_id AND tal.setting_name = ? AND tal.locale = ?)
60  LEFT JOIN paper_settings sts ON (p.paper_id = sts.paper_id AND sts.setting_name = "sessionType")
61  WHERE p.paper_id = ?',
62  array(
63  'title',
64  $primaryLocale,
65  'title',
66  $locale,
67  'abbrev',
68  $primaryLocale,
69  'abbrev',
70  $locale,
71  $paperId
72  )
73  );
74 
75  $returner = null;
76  if ($result->RecordCount() != 0) {
77  $returner =& $this->_returnDirectorSubmissionFromRow($result->GetRowAssoc(false));
78  }
79 
80  $result->Close();
81  unset($result);
82 
83  return $returner;
84  }
85 
92  $directorSubmission = new DirectorSubmission();
93 
94  // Paper attributes
95  $this->paperDao->_paperFromRow($directorSubmission, $row);
96 
97  // Director Assignment
98  $editAssignments =& $this->editAssignmentDao->getEditAssignmentsByPaperId($row['paper_id']);
99  $directorSubmission->setEditAssignments($editAssignments->toArray());
100 
101  // Director Decisions
102  for ($i = 1; $i <= $row['current_stage']; $i++) {
103  $directorSubmission->setDecisions($this->getDirectorDecisions($row['paper_id'], $i), $i);
104  }
105 
106  // Review Rounds
107  $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO');
108  for ($i = REVIEW_STAGE_ABSTRACT; $i <= $directorSubmission->getCurrentStage(); $i++) {
109  $reviewAssignments =& $reviewAssignmentDao->getReviewAssignmentsByPaperId($directorSubmission->getId(), $i);
110  if (!empty($reviewAssignments)) {
111  $directorSubmission->setReviewAssignments($reviewAssignments, $i);
112  }
113  unset($reviewAssignments);
114  }
115 
116  HookRegistry::call('DirectorSubmissionDAO::_returnDirectorSubmissionFromRow', array(&$directorSubmission, &$row));
117 
118  return $directorSubmission;
119  }
120 
125  function insertDirectorSubmission(&$directorSubmission) {
126  $this->update(
127  sprintf('INSERT INTO edit_assignments
128  (paper_id, director_id, date_notified, date_completed, date_acknowledged)
129  VALUES
130  (?, ?, %s, %s, %s)',
131  $this->datetimeToDB($directorSubmission->getDateNotified()), $this->datetimeToDB($directorSubmission->getDateCompleted()), $this->datetimeToDB($directorSubmission->getDateAcknowledged())),
132  array(
133  $directorSubmission->getPaperId(),
134  $directorSubmission->getDirectorId()
135  )
136  );
137 
138  $directorSubmission->setEditId($this->getInsertEditId());
139 
140  // Insert review assignments.
141  $reviewAssignments =& $directorSubmission->getReviewAssignments();
142  for ($i=0, $count=count($reviewAssignments); $i < $count; $i++) {
143  $reviewAssignments[$i]->setPaperId($directorSubmission->getPaperId());
144  $this->reviewAssignmentDao->insertReviewAssignment($reviewAssignments[$i]);
145  }
146 
147  return $directorSubmission->getEditId();
148  }
149 
154  function updateDirectorSubmission(&$directorSubmission) {
155  // update edit assignments
156  $editAssignments = $directorSubmission->getEditAssignments();
157  foreach ($editAssignments as $editAssignment) {
158  if ($editAssignment->getEditId() > 0) {
159  $this->editAssignmentDao->updateEditAssignment($editAssignment);
160  } else {
161  $this->editAssignmentDao->insertEditAssignment($editAssignment);
162  }
163  }
164  }
165 
181  function &_getUnfilteredDirectorSubmissions($schedConfId, $trackId = 0, $directorId = 0, $searchField = null, $searchMatch = null, $search = null, $dateField = null, $dateFrom = null, $dateTo = null, $additionalWhereSql = '', $rangeInfo = null, $sortBy = null, $sortDirection = SORT_DIRECTION_ASC) {
182  $primaryLocale = AppLocale::getPrimaryLocale();
183  $locale = AppLocale::getLocale();
184  $params = array(
185  'title', // Track title
186  $primaryLocale,
187  'title',
188  $locale,
189  'abbrev', // Track abbrev
190  $primaryLocale,
191  'abbrev',
192  $locale,
193  'cleanTitle', // Paper title
194  $primaryLocale,
195  'cleanTitle', // Paper title
196  $locale,
197  $schedConfId
198  );
199  $searchSql = '';
200 
201  if (!empty($search)) switch ($searchField) {
203  if ($searchMatch === 'is') {
204  $searchSql = ' AND LOWER(ptl.setting_value) = LOWER(?)';
205  } elseif ($searchMatch === 'contains') {
206  $searchSql = ' AND LOWER(ptl.setting_value) LIKE LOWER(?)';
207  $search = '%' . $search . '%';
208  } else { // $searchMatch === 'startsWith'
209  $searchSql = ' AND LOWER(ptl.setting_value) LIKE LOWER(?)';
210  $search = $search . '%';
211  }
212  $params[] = $search;
213  break;
215  $searchSql = $this->_generateUserNameSearchSQL($search, $searchMatch, 'pa.', $params);
216  break;
218  $searchSql = $this->_generateUserNameSearchSQL($search, $searchMatch, 'ed.', $params);
219  break;
221  $searchSql = $this->_generateUserNameSearchSQL($search, $searchMatch, 're.', $params);
222  break;
223  }
224  if (!empty($dateFrom) || !empty($dateTo)) switch($dateField) {
226  if (!empty($dateFrom)) {
227  $searchSql .= ' AND p.date_submitted >= ' . $this->datetimeToDB($dateFrom);
228  }
229  if (!empty($dateTo)) {
230  $searchSql .= ' AND p.date_submitted <= ' . $this->datetimeToDB($dateTo);
231  }
232  break;
233  }
234 
235  $sql = 'SELECT DISTINCT
236  p.*,
237  COALESCE(ptl.setting_value, pptl.setting_value) AS submission_title,
238  pap.last_name AS author_name,
239  t.seq, pp.seq,
240  COALESCE(ttl.setting_value, ttpl.setting_value) AS track_title,
241  COALESCE(tal.setting_value, tapl.setting_value) AS track_abbrev
242  FROM papers p
243  INNER JOIN paper_authors pa ON (pa.paper_id = p.paper_id)
244  LEFT JOIN paper_authors pap ON (pap.paper_id = p.paper_id AND pap.primary_contact = 1)
245  LEFT JOIN published_papers pp ON (pp.paper_id = p.paper_id)
246  LEFT JOIN tracks t ON (t.track_id = p.track_id)
247  LEFT JOIN edit_assignments e ON (e.paper_id = p.paper_id)
248  LEFT JOIN users ed ON (e.director_id = ed.user_id)
249  LEFT JOIN review_assignments ra ON (ra.paper_id = p.paper_id)
250  LEFT JOIN users re ON (re.user_id = ra.reviewer_id AND cancelled = 0)
251  LEFT JOIN track_settings ttpl ON (t.track_id = ttpl.track_id AND ttpl.setting_name = ? AND ttpl.locale = ?)
252  LEFT JOIN track_settings ttl ON (t.track_id = ttl.track_id AND ttl.setting_name = ? AND ttl.locale = ?)
253  LEFT JOIN track_settings tapl ON (t.track_id = tapl.track_id AND tapl.setting_name = ? AND tapl.locale = ?)
254  LEFT JOIN track_settings tal ON (t.track_id = tal.track_id AND tal.setting_name = ? AND tal.locale = ?)
255  LEFT JOIN paper_settings pptl ON (p.paper_id = pptl.paper_id AND pptl.setting_name = ? AND pptl.locale = ?)
256  LEFT JOIN paper_settings ptl ON (p.paper_id = ptl.paper_id AND ptl.setting_name = ? AND ptl.locale = ?)
257  LEFT JOIN edit_assignments ea ON (p.paper_id = ea.paper_id)
258  LEFT JOIN edit_assignments ea2 ON (p.paper_id = ea2.paper_id AND ea.edit_id < ea2.edit_id)
259  LEFT JOIN paper_settings sts ON (p.paper_id = sts.paper_id AND sts.setting_name = "sessionType")
260  WHERE p.sched_conf_id = ?
261  AND ea2.edit_id IS NULL' .
262  (!empty($additionalWhereSql)?" AND ($additionalWhereSql)":'') . '
263  AND (p.submission_progress = 0 OR (p.review_mode = ' . REVIEW_MODE_BOTH_SEQUENTIAL . ' AND p.submission_progress <> 1))';
264 
265  if ($trackId) {
266  $searchSql .= ' AND p.track_id = ?';
267  $params[] = $trackId;
268  }
269 
270  if ($directorId) {
271  $searchSql .= ' AND ed.user_id = ?';
272  $params[] = $directorId;
273  }
274 
275  $sql .= ' ' . $searchSql . ($sortBy?(' ORDER BY ' . $this->getSortMapping($sortBy) . ' ' . $this->getDirectionMapping($sortDirection)) : '');
276 
277  $result =& $this->retrieveRange(
278  $sql,
279  $params,
280  $rangeInfo
281  );
282  return $result;
283  }
284 
288  function _generateUserNameSearchSQL($search, $searchMatch, $prefix, &$params) {
289  $first_last = $this->_dataSource->Concat($prefix.'first_name', '\' \'', $prefix.'last_name');
290  $first_middle_last = $this->_dataSource->Concat($prefix.'first_name', '\' \'', $prefix.'middle_name', '\' \'', $prefix.'last_name');
291  $last_comma_first = $this->_dataSource->Concat($prefix.'last_name', '\', \'', $prefix.'first_name');
292  $last_comma_first_middle = $this->_dataSource->Concat($prefix.'last_name', '\', \'', $prefix.'first_name', '\' \'', $prefix.'middle_name');
293  if ($searchMatch === 'is') {
294  $searchSql = " AND (LOWER({$prefix}last_name) = LOWER(?) OR LOWER($first_last) = LOWER(?) OR LOWER($first_middle_last) = LOWER(?) OR LOWER($last_comma_first) = LOWER(?) OR LOWER($last_comma_first_middle) = LOWER(?))";
295  $params[] = $params[] = $params[] = $params[] = $params[] = $search;
296  } elseif ($searchMatch === 'initial') {
297  $searchSql = " AND (LOWER({$prefix}last_name) LIKE LOWER(?))";
298  $params[] = $search . '%';
299  } elseif ($searchMatch === 'contains') {
300  $searchSql = " AND (LOWER({$prefix}last_name) LIKE LOWER(?) OR LOWER($first_last) LIKE LOWER(?) OR LOWER($first_middle_last) LIKE LOWER(?) OR LOWER($last_comma_first) LIKE LOWER(?) OR LOWER($last_comma_first_middle) LIKE LOWER(?))";
301  $params[] = $params[] = $params[] = $params[] = $params[] = '%' . $search . '%';
302  } else { // $searchMatch === 'startsWith'
303  $searchSql = " AND (LOWER({$prefix}last_name) LIKE LOWER(?) OR LOWER($first_last) LIKE LOWER(?) OR LOWER($first_middle_last) LIKE LOWER(?) OR LOWER($last_comma_first) LIKE LOWER(?) OR LOWER($last_comma_first_middle) LIKE LOWER(?))";
304  $params[] = $params[] = $params[] = $params[] = $params[] = $search . '%';
305  }
306  return $searchSql;
307  }
308 
323  function &getDirectorSubmissionsUnassigned($schedConfId, $trackId, $directorId, $searchField = null, $searchMatch = null, $search = null, $dateField = null, $dateFrom = null, $dateTo = null, $rangeInfo = null, $sortBy = null, $sortDirection = SORT_DIRECTION_ASC) {
324  $result =& $this->_getUnfilteredDirectorSubmissions(
325  $schedConfId, $trackId, $directorId,
326  $searchField, $searchMatch, $search,
327  $dateField, $dateFrom, $dateTo,
328  'p.status = ' . STATUS_QUEUED . ' AND ea.edit_id IS NULL',
329  $rangeInfo, $sortBy, $sortDirection
330  );
331  $returner = new DAOResultFactory($result, $this, '_returnDirectorSubmissionFromRow');
332  return $returner;
333  }
334 
349  function &getDirectorSubmissionsInReview($schedConfId, $trackId, $directorId, $searchField = null, $searchMatch = null, $search = null, $dateField = null, $dateFrom = null, $dateTo = null, $rangeInfo = null, $sortBy = null, $sortDirection = SORT_DIRECTION_ASC) {
350  $result =& $this->_getUnfilteredDirectorSubmissions(
351  $schedConfId, $trackId, $directorId,
352  $searchField, $searchMatch, $search,
353  $dateField, $dateFrom, $dateTo,
354  'p.status = ' . STATUS_QUEUED . ' AND ea.edit_id IS NOT NULL',
355  $rangeInfo, $sortBy, $sortDirection
356  );
357  $returner = new DAOResultFactory($result, $this, '_returnDirectorSubmissionFromRow');
358  return $returner;
359  }
360 
375  function &getDirectorSubmissionsAccepted($schedConfId, $trackId, $directorId, $searchField = null, $searchMatch = null, $search = null, $dateField = null, $dateFrom = null, $dateTo = null, $rangeInfo = null, $sortBy = null, $sortDirection = "ASC") {
376  $result =& $this->_getUnfilteredDirectorSubmissions(
377  $schedConfId, $trackId, $directorId,
378  $searchField, $searchMatch, $search,
379  $dateField, $dateFrom, $dateTo,
380  'p.status = ' . STATUS_PUBLISHED,
381  $rangeInfo, $sortBy, $sortDirection
382  );
383  $returner = new DAOResultFactory($result, $this, '_returnDirectorSubmissionFromRow');
384  return $returner;
385  }
386 
401  function &getDirectorSubmissionsArchives($schedConfId, $trackId, $directorId, $searchField = null, $searchMatch = null, $search = null, $dateField = null, $dateFrom = null, $dateTo = null, $rangeInfo = null, $sortBy = null, $sortDirection = "ASC") {
402  $result =& $this->_getUnfilteredDirectorSubmissions(
403  $schedConfId, $trackId, $directorId,
404  $searchField, $searchMatch, $search,
405  $dateField, $dateFrom, $dateTo,
406  'p.status <> ' . STATUS_QUEUED . ' AND p.status <> ' . STATUS_PUBLISHED,
407  $rangeInfo, $sortBy, $sortDirection
408  );
409  $returner = new DAOResultFactory($result, $this, '_returnDirectorSubmissionFromRow');
410  return $returner;
411  }
412 
416  function &getDirectorSubmissionsCount($schedConfId) {
417  $submissionsCount = array();
418 
419  // Fetch a count of unassigned submissions.
420  // "e2" and "e" are used to fetch only a single assignment
421  // if several exist.
422  $result =& $this->retrieve(
423  'SELECT COUNT(*) AS unassigned_count
424  FROM papers p
425  LEFT JOIN edit_assignments e ON (p.paper_id = e.paper_id)
426  LEFT JOIN edit_assignments e2 ON (p.paper_id = e2.paper_id AND e.edit_id < e2.edit_id)
427  WHERE p.sched_conf_id = ?
428  AND p.status = ' . STATUS_QUEUED . '
429  AND e2.edit_id IS NULL
430  AND e.edit_id IS NULL
431  AND (p.submission_progress = 0 OR (p.review_mode = ' . REVIEW_MODE_BOTH_SEQUENTIAL . ' AND p.submission_progress <> 1))',
432  array((int) $schedConfId)
433  );
434  $submissionsCount[0] = $result->Fields('unassigned_count');
435  $result->Close();
436 
437  // Fetch a count of submissions in review.
438  // "e2" and "e" are used to fetch only a single assignment
439  // if several exist.
440  $result =& $this->retrieve(
441  'SELECT COUNT(*) AS review_count
442  FROM papers p
443  LEFT JOIN edit_assignments e ON (p.paper_id = e.paper_id)
444  LEFT JOIN edit_assignments e2 ON (p.paper_id = e2.paper_id AND e.edit_id < e2.edit_id)
445  WHERE p.sched_conf_id = ?
446  AND p.status = ' . STATUS_QUEUED . '
447  AND e2.edit_id IS NULL
448  AND e.edit_id IS NOT NULL
449  AND (p.submission_progress = 0 OR (p.review_mode = ' . REVIEW_MODE_BOTH_SEQUENTIAL . ' AND p.submission_progress <> 1))',
450  array((int) $schedConfId)
451  );
452  $submissionsCount[1] = $result->Fields('review_count');
453  $result->Close();
454 
455  return $submissionsCount;
456  }
457 
458  //
459  // Miscellaneous
460  //
461 
467  function getDirectorDecisions($paperId, $stage = null) {
468  $decisions = array();
469  $args = array($paperId);
470  if($stage) {
471  $args[] = $stage;
472  }
473 
474  $result =& $this->retrieve(
475  'SELECT edit_decision_id,
476  director_id,
477  decision,
478  date_decided
479  FROM edit_decisions
480  WHERE paper_id = ? ' .
481  ($stage?' AND stage = ?':'') .
482  ' ORDER BY date_decided ASC',
483  (count($args)==1?shift($args):$args)
484  );
485 
486  while (!$result->EOF) {
487  $decisions[] = array(
488  'editDecisionId' => $result->fields['edit_decision_id'],
489  'directorId' => $result->fields['director_id'],
490  'decision' => $result->fields['decision'],
491  'dateDecided' => $this->datetimeFromDB($result->fields['date_decided'])
492  );
493  $result->moveNext();
494  }
495 
496  $result->Close();
497  unset($result);
498 
499  return $decisions;
500  }
501 
506  function transferDirectorDecisions($oldUserId, $newUserId) {
507  $this->update(
508  'UPDATE edit_decisions SET director_id = ? WHERE director_id = ?',
509  array($newUserId, $oldUserId)
510  );
511  }
512 
520  function &getUsersNotAssignedToPaper($schedConfId, $paperId, $roleId, $searchType=null, $search=null, $searchMatch=null, $rangeInfo = null) {
521  $users = array();
522 
523  $paramArray = array(
524  'interests',
525  $paperId,
526  $schedConfId,
527  $roleId
528  );
529 
530  $searchSql = '';
531 
532  $searchTypeMap = array(
533  USER_FIELD_FIRSTNAME => 'u.first_name',
534  USER_FIELD_LASTNAME => 'u.last_name',
535  USER_FIELD_USERNAME => 'u.username',
536  USER_FIELD_EMAIL => 'u.email',
537  USER_FIELD_INTERESTS => 's.setting_value'
538  );
539 
540  if (!empty($search) && isset($searchTypeMap[$searchType])) {
541  $fieldName = $searchTypeMap[$searchType];
542  switch ($searchMatch) {
543  case 'is':
544  $searchSql = "AND LOWER($fieldName) = LOWER(?)";
545  $paramArray[] = $search;
546  break;
547  case 'contains':
548  $searchSql = "AND LOWER($fieldName) LIKE LOWER(?)";
549  $paramArray[] = '%' . $search . '%';
550  break;
551  case 'startsWith':
552  $searchSql = "AND LOWER($fieldName) LIKE LOWER(?)";
553  $paramArray[] = $search . '%';
554  break;
555  }
556  } elseif (!empty($search)) switch ($searchType) {
557  case USER_FIELD_USERID:
558  $searchSql = 'AND u.user_id=?';
559  $paramArray[] = $search;
560  break;
561  case USER_FIELD_INITIAL:
562  $searchSql = 'AND (LOWER(u.last_name) LIKE LOWER(?) OR LOWER(u.username) LIKE LOWER(?))';
563  $paramArray[] = $search . '%';
564  $paramArray[] = $search . '%';
565  break;
566  }
567 
568  $result =& $this->retrieveRange(
569  'SELECT DISTINCT
570  u.*
571  FROM users u
572  LEFT JOIN roles r ON (r.user_id = u.user_id)
573  LEFT JOIN user_settings s ON (u.user_id = s.user_id AND s.setting_name = ?)
574  LEFT JOIN edit_assignments e ON (e.director_id = u.user_id AND e.paper_id = ?)
575  WHERE r.sched_conf_id = ? AND
576  r.role_id = ? AND
577  e.paper_id IS NULL ' .
578  $searchSql . '
579  ORDER BY last_name, first_name',
580  $paramArray, $rangeInfo
581  );
582 
583  $returner = new DAOResultFactory($result, $this->userDao, '_returnUserFromRow');
584  return $returner;
585  }
586 
591  function getInsertEditId() {
592  return $this->getInsertId('edit_assignments', 'edit_id');
593  }
594 
600  function getSortMapping($heading) {
601  switch ($heading) {
602  case 'id': return 'p.paper_id';
603  case 'submitDate': return 'p.date_submitted';
604  case 'track': return 'track_abbrev';
605  case 'sessionType': return 'sts.setting_value';
606  case 'authors': return 'author_name';
607  case 'title': return 'submission_title';
608  case 'active': return 'p.submission_progress';
609  case 'subLayout': return 'layout_completed';
610  case 'status': return 'p.status';
611  case 'seq': return 'pp.seq';
612  default: return null;
613  }
614  }
615 }
616 
617 ?>
const STATUS_QUEUED
Definition: Paper.inc.php:26
const REVIEW_STAGE_ABSTRACT
Definition: Paper.inc.php:36
& getDirectorSubmissionsCount($schedConfId)
config TEMPLATE inc php
Definition: config.inc.php:4
const USER_FIELD_INTERESTS
Operations for retrieving and modifying objects from a database.
Definition: DAO.inc.php:30
const USER_FIELD_FIRSTNAME
const USER_FIELD_LASTNAME
const USER_FIELD_USERNAME
& retrieve($sql, $params=false, $callHooks=true)
Definition: DAO.inc.php:62
DirectorSubmission class.
& getUsersNotAssignedToPaper($schedConfId, $paperId, $roleId, $searchType=null, $search=null, $searchMatch=null, $rangeInfo=null)
getInsertId($table='', $id='', $callHooks=true)
Definition: DAO.inc.php:225
const USER_FIELD_INITIAL
& getDirectorSubmissionsArchives($schedConfId, $trackId, $directorId, $searchField=null, $searchMatch=null, $search=null, $dateField=null, $dateFrom=null, $dateTo=null, $rangeInfo=null, $sortBy=null, $sortDirection="ASC")
& retrieveRange($sql, $params=false, $dbResultRange=null, $callHooks=true)
Definition: DAO.inc.php:152
const SUBMISSION_FIELD_TITLE
Definition: Paper.inc.php:42
& getDirectorSubmissionsInReview($schedConfId, $trackId, $directorId, $searchField=null, $searchMatch=null, $search=null, $dateField=null, $dateFrom=null, $dateTo=null, $rangeInfo=null, $sortBy=null, $sortDirection=SORT_DIRECTION_ASC)
insertDirectorSubmission(&$directorSubmission)
const USER_FIELD_USERID
& getDirectorSubmissionsUnassigned($schedConfId, $trackId, $directorId, $searchField=null, $searchMatch=null, $search=null, $dateField=null, $dateFrom=null, $dateTo=null, $rangeInfo=null, $sortBy=null, $sortDirection=SORT_DIRECTION_ASC)
const REVIEW_MODE_BOTH_SEQUENTIAL
Wrapper around ADORecordSet providing "factory" features for generating objects from DAOs.
& getDirectorSubmissionsAccepted($schedConfId, $trackId, $directorId, $searchField=null, $searchMatch=null, $search=null, $dateField=null, $dateFrom=null, $dateTo=null, $rangeInfo=null, $sortBy=null, $sortDirection="ASC")
const SUBMISSION_FIELD_REVIEWER
Definition: Paper.inc.php:43
& getDAO($name, $dbconn=null)
getDirectorDecisions($paperId, $stage=null)
call($hookName, $args=null)
const SUBMISSION_FIELD_DATE_SUBMITTED
Definition: Paper.inc.php:45
Operations for retrieving and modifying DirectorSubmission objects.
_generateUserNameSearchSQL($search, $searchMatch, $prefix, &$params)
const SUBMISSION_FIELD_DIRECTOR
Definition: Paper.inc.php:41
datetimeToDB($dt)
Definition: DAO.inc.php:258
update($sql, $params=false, $callHooks=true, $dieOnError=true)
Definition: DAO.inc.php:186
const USER_FIELD_EMAIL
getDirectionMapping($direction)
Definition: DAO.inc.php:541
updateDirectorSubmission(&$directorSubmission)
const SUBMISSION_FIELD_AUTHOR
Definition: Paper.inc.php:40
transferDirectorDecisions($oldUserId, $newUserId)
const SORT_DIRECTION_ASC
Definition: DAO.inc.php:27
const STATUS_PUBLISHED
Definition: Paper.inc.php:27
& _getUnfilteredDirectorSubmissions($schedConfId, $trackId=0, $directorId=0, $searchField=null, $searchMatch=null, $search=null, $dateField=null, $dateFrom=null, $dateTo=null, $additionalWhereSql='', $rangeInfo=null, $sortBy=null, $sortDirection=SORT_DIRECTION_ASC)