17 import(
'lib.pkp.classes.stageAssignment.StageAssignment');
29 .
'WHERE stage_assignment_id = ?',
30 (
int) $stageAssignmentId
32 return $this->
_fromRow($result->GetRowAssoc(
false));
44 return $this->
_getByIds($submissionId, $stageId, $userGroupId, $userId);
56 return $this->
_getByIds($submissionId, $stageId,
null, $userId, $roleId);
65 return $this->
_getByIds(
null,
null,
null, $userId);
77 return $this->
_getByIds($submissionId, $stageId,
null, $userId);
89 return array_merge($managerAssignmentFactory->toArray(), $subEditorAssignmentFactory->toArray());
101 $params = array((
int) $submissionId, ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR);
102 if ($stageId) $params[] = (int) $stageId;
105 FROM stage_assignments sa
106 JOIN user_groups ug ON (sa.user_group_id = ug.user_group_id)
107 JOIN user_group_stage ugs ON (ug.user_group_id = ugs.user_group_id)
108 WHERE sa.submission_id = ? AND
109 ug.role_id IN (?, ?)' .
110 ($stageId?
' AND ugs.stage_id = ?':
''),
113 $returner = isset($result->fields[0]) && $result->fields[0] > 0 ? true :
false;
132 'SELECT * FROM stage_assignments sa'
133 .
' JOIN submissions s ON s.submission_id = sa.submission_id'
134 .
' WHERE sa.user_group_id = ? AND s.context_id = ?',
150 function build($submissionId, $userGroupId, $userId, $recommendOnly =
false, $canChangeMetadata =
null) {
151 if (!isset($canChangeMetadata)) {
155 $userGroup = $userGroupDao->getById($userGroupId);
157 $canChangeMetadata = $userGroup->getPermitMetadataEdit();
163 if (!$stageAssignment->wasEmpty())
return $stageAssignment;
167 $stageAssignment->setSubmissionId($submissionId);
168 $stageAssignment->setUserGroupId($userGroupId);
169 $stageAssignment->setUserId($userId);
170 $stageAssignment->setRecommendOnly($recommendOnly);
171 $stageAssignment->setCanChangeMetadata($canChangeMetadata);
174 return $stageAssignment;
193 $stageAssignment->setId($row[
'stage_assignment_id']);
194 $stageAssignment->setSubmissionId($row[
'submission_id']);
195 $stageAssignment->setUserId($row[
'user_id']);
196 $stageAssignment->setUserGroupId($row[
'user_group_id']);
197 $stageAssignment->setDateAssigned($row[
'date_assigned']);
198 $stageAssignment->setStageId($row[
'stage_id']);
199 $stageAssignment->setRecommendOnly((
boolean) $row[
'recommend_only']);
200 $stageAssignment->setCanChangeMetadata($row[
'can_change_metadata']);
202 return $stageAssignment;
212 'INSERT INTO stage_assignments
213 (submission_id, user_group_id, user_id, date_assigned, recommend_only, can_change_metadata)
215 (?, ?, ?, %s, ?, ?)',
219 $stageAssignment->getSubmissionId(),
220 $this->nullOrInt($stageAssignment->getUserGroupId()),
221 $this->nullOrInt($stageAssignment->getUserId()),
222 (
int) $stageAssignment->getRecommendOnly(),
223 (
int) $stageAssignment->getCanChangeMetadata()
235 'UPDATE stage_assignments SET
241 can_change_metadata = ?
242 WHERE stage_assignment_id = ?',
246 (
int) $stageAssignment->getSubmissionId(),
247 $this->nullOrInt($stageAssignment->getUserGroupId()),
248 $this->nullOrInt($stageAssignment->getUserId()),
249 (
int) $stageAssignment->getRecommendOnly(),
250 (
int) $stageAssignment->getCanChangeMetadata(),
251 (
int) $stageAssignment->getId()
262 $stageAssignment->getSubmissionId(),
263 $stageAssignment->getUserGroupId(),
264 $stageAssignment->getUserId()
276 'DELETE FROM stage_assignments
277 WHERE submission_id = ?
278 AND user_group_id = ?
280 array((
int) $submissionId, (
int) $userGroupId, (
int) $userId)
289 return $this->
_getInsertId(
'stage_assignments',
'stage_assignment_id');
305 function _getByIds($submissionId =
null, $stageId =
null, $userGroupId =
null, $userId =
null, $roleId =
null, $single =
false) {
306 $conditions = array();
308 if (isset($submissionId)) {
309 $conditions[] =
'sa.submission_id = ?';
310 $params[] = (int) $submissionId;
312 if (isset($stageId)) {
313 $conditions[] =
'ugs.stage_id = ?';
314 $params[] = (int) $stageId;
316 if (isset($userGroupId)) {
317 $conditions[] =
'sa.user_group_id = ?';
318 $params[] = (int) $userGroupId;
320 if (isset($userId)) {
321 $conditions[] =
'sa.user_id = ?';
322 $params[] = (int) $userId;
325 if (isset($roleId)) {
326 $conditions[] =
'ug.role_id = ?';
327 $params[] = (int) $roleId;
332 (isset($roleId)?
' LEFT JOIN user_groups ug ON sa.user_group_id = ug.user_group_id ':
'') .
333 'WHERE ' . (implode(
' AND ', $conditions)),
339 if (!$submissionId && !$stageId && !$userGroupId && !$userId)
return false;
341 if ($result->RecordCount() == 0)
return false;
342 $returner = $this->
_fromRow($result->GetRowAssoc(
false));
356 return 'SELECT ugs.stage_id AS stage_id, sa.* FROM stage_assignments sa
357 JOIN user_group_stage ugs ON sa.user_group_id = ugs.user_group_id ';