workflowutil.inc.php
1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
class KTWorkflowUtil {
function saveTransitionsFrom($oState, $aTransitionIds) {
$sTable = KTUtil::getTableName('workflow_state_transitions');
$aQuery = array(
"DELETE FROM $sTable WHERE state_id = ?",
array($oState->getId()),
);
$res = DBUtil::runQuery($aQuery);
if (PEAR::isError($res)) {
return $res;
}
$aOptions = array('noid' => true);
foreach ($aTransitionIds as $iTransitionId) {
$res = DBUtil::autoInsert($sTable, array(
'state_id' => $oState->getId(),
'transition_id' => $iTransitionId,
), $aOptions);
if (PEAR::isError($res)) {
return $res;
}
}
return;
}
function getTransitionsFrom($oState, $aOptions) {
$bIds = KTUtil::arrayGet($aOptions, 'ids');
$sTable = KTUtil::getTableName('workflow_state_transitions');
$aQuery = array(
"SELECT transition_id FROM $sTable WHERE state_id = ?",
array($oState->getId()),
);
$aTransitionIds = DBUtil::getResultArrayKey($aQuery, 'transition_id');
if (PEAR::isError($aTransitionIds)) {
return $aTransitionIds;
}
if ($bIds) {
return $aTransitionIds;
}
$aRet = array();
foreach ($aTransitionIds as $iId) {
$aRet[] =& KTWorkflowTransition::get($iId);
}
return $aRet;
}
}