public function getSelfServiceCasesByEvaluate($userUid) { $cases = array(); //check groups assigned to SelfService task G::LoadClass('groups'); $group = new Groups(); $aGroups = $group->getActiveGroupsForAnUser($userUid); $c = new Criteria(); $c->clearSelectColumns(); $c->addSelectColumn(TaskPeer::TAS_UID); $c->addSelectColumn(TaskPeer::PRO_UID); $c->addSelectColumn(TaskPeer::TAS_GROUP_VARIABLE); $c->addJoin(TaskPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN); $c->addJoin(TaskPeer::TAS_UID, TaskUserPeer::TAS_UID, Criteria::LEFT_JOIN); $c->add(ProcessPeer::PRO_STATUS, 'ACTIVE'); $c->add(TaskPeer::TAS_ASSIGN_TYPE, 'SELF_SERVICE'); $c->add(TaskPeer::TAS_GROUP_VARIABLE, '', Criteria::NOT_EQUAL); $rs = TaskPeer::doSelectRS($c); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rs->next(); if ($rs->getRecordCount() > 0) { if (!class_exists('Cases')) { G::loadClass('case'); } $caseInstance = new Cases(); while ($row = $rs->getRow()) { $tasGroupVariable = str_replace(array('@', '#'), '', $row['TAS_GROUP_VARIABLE']); $c2 = new Criteria(); $c2->clearSelectColumns(); $c2->addSelectColumn(AppDelegationPeer::APP_UID); $c2->addSelectColumn(ApplicationPeer::APP_DATA); $c2->addJoin(AppDelegationPeer::APP_UID, ApplicationPeer::APP_UID, Criteria::LEFT_JOIN); $c2->add(AppDelegationPeer::TAS_UID, $row['TAS_UID']); $c2->add(AppDelegationPeer::USR_UID, ''); $c2->add(AppDelegationPeer::DEL_THREAD_STATUS, 'OPEN'); $rs2 = AppDelegationPeer::doSelectRS($c2); $rs2->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rs2->next(); while ($row2 = $rs2->getRow()) { $caseData = $caseInstance->unserializeData($row2['APP_DATA']); if (isset($caseData[$tasGroupVariable])) { if (trim($caseData[$tasGroupVariable]) != '') { if (in_array(trim($caseData[$tasGroupVariable]), $aGroups)) { $cases[] = $row2['APP_UID']; } } } $rs2->next(); } $rs->next(); } } return $cases; }
/** * Generate data * * return void */ public function generateData() { try { G::LoadClass("case"); AppAssignSelfServiceValuePeer::doDeleteAll(); //Delete all records //Generate data $case = new Cases(); $criteria = new Criteria("workflow"); $criteria->addSelectColumn(AppDelegationPeer::APP_UID); $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX); $criteria->addSelectColumn(ApplicationPeer::APP_DATA); $criteria->addSelectColumn(AppDelegationPeer::PRO_UID); $criteria->addSelectColumn(TaskPeer::TAS_UID); $criteria->addSelectColumn(TaskPeer::TAS_GROUP_VARIABLE); $criteria->addJoin(AppDelegationPeer::APP_UID, ApplicationPeer::APP_UID, Criteria::LEFT_JOIN); $criteria->addJoin(AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN); $criteria->add(TaskPeer::TAS_ASSIGN_TYPE, "SELF_SERVICE", Criteria::EQUAL); $criteria->add(TaskPeer::TAS_GROUP_VARIABLE, "", Criteria::NOT_EQUAL); $criteria->add(AppDelegationPeer::USR_UID, "", Criteria::EQUAL); $criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN", Criteria::EQUAL); $rsCriteria = AppDelegationPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $applicationData = $case->unserializeData($row["APP_DATA"]); $taskGroupVariable = trim($row["TAS_GROUP_VARIABLE"], " @#"); if ($taskGroupVariable != "" && isset($applicationData[$taskGroupVariable]) && trim($applicationData[$taskGroupVariable]) != "") { $this->create($row["APP_UID"], $row["DEL_INDEX"], array("PRO_UID" => $row["PRO_UID"], "TAS_UID" => $row["TAS_UID"], "GRP_UID" => trim($applicationData[$taskGroupVariable]))); } } } catch (Exception $e) { throw $e; } }
/** * Generate Data * * @return object criteria */ public function generateData($appUid, $delPreviusUsrUid) { try { G::LoadClass("case"); //Generate data $case = new Cases(); $criteria = new Criteria("workflow"); $criteria->addSelectColumn(AppDelegationPeer::APP_UID); $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX); $criteria->addSelectColumn(ApplicationPeer::APP_DATA); $criteria->addSelectColumn(AppDelegationPeer::PRO_UID); $criteria->addSelectColumn(AppDelegationPeer::DEL_TASK_DUE_DATE); $criteria->addSelectColumn(TaskPeer::TAS_UID); $criteria->addSelectColumn(TaskPeer::TAS_GROUP_VARIABLE); $criteria->addJoin(AppDelegationPeer::APP_UID, ApplicationPeer::APP_UID, Criteria::LEFT_JOIN); $criteria->addJoin(AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN); $criteria->add(TaskPeer::TAS_ASSIGN_TYPE, "SELF_SERVICE", Criteria::EQUAL); //$criteria->add(TaskPeer::TAS_GROUP_VARIABLE, "", Criteria::NOT_EQUAL); $criteria->add(AppDelegationPeer::USR_UID, "", Criteria::EQUAL); $criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN", Criteria::EQUAL); $criteria->add(AppDelegationPeer::APP_UID, $appUid, Criteria::EQUAL); $rsCriteria = AppDelegationPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $applicationData = $case->unserializeData($row["APP_DATA"]); $taskGroupVariable = trim($row["TAS_GROUP_VARIABLE"], " @#"); $delPreviusUsrUid = ''; $unaUid = $this->newRow($row, $delPreviusUsrUid); //Selfservice by group if ($taskGroupVariable != "" && isset($applicationData[$taskGroupVariable]) && trim($applicationData[$taskGroupVariable]) != "") { $gprUid = trim($applicationData[$taskGroupVariable]); //Define Users by Group $gpr = new GroupUser(); $arrayUsers = $gpr->getAllGroupUser($gprUid); foreach ($arrayUsers as $urow) { $newRow["USR_UID"] = $urow["USR_UID"]; $listUnassignedGpr = new ListUnassignedGroup(); $listUnassignedGpr->newRow($unaUid, $urow["USR_UID"], "GROUP", $gprUid); } } else { //Define all users assigned to Task $task = new TaskUser(); $arrayUsers = $task->getAllUsersTask($row["TAS_UID"]); foreach ($arrayUsers as $urow) { $newRow["USR_UID"] = $urow["USR_UID"]; $listUnassignedGpr = new ListUnassignedGroup(); $listUnassignedGpr->newRow($unaUid, $urow["USR_UID"], "USER", ""); } } } } catch (Exception $e) { throw $e; } }