/** * 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; } }
/** * Get All users assigned to task * * @param string $TAS_UID * @return array users info * */ public function getAllUsersTask($TAS_UID) { require_once 'classes/model/Users.php'; $groupsTask = array(); $usersTask = array(); //getting task's users $criteria = new Criteria('workflow'); $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); $criteria->addSelectColumn(UsersPeer::USR_LASTNAME); $criteria->addSelectColumn(UsersPeer::USR_USERNAME); $criteria->addSelectColumn(TaskUserPeer::TAS_UID); $criteria->addSelectColumn(TaskUserPeer::USR_UID); $criteria->addSelectColumn(TaskUserPeer::TU_TYPE); $criteria->addSelectColumn(TaskUserPeer::TU_RELATION); $criteria->addJoin(TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); $criteria->add(TaskUserPeer::TAS_UID, $TAS_UID); $dataset = TaskUserPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($dataset->next()) { $row = $dataset->getRow(); if ($row["TU_RELATION"] == 2) { $gpr = new GroupUser(); $array = $gpr->getAllGroupUser($row["USR_UID"]); foreach ($array as $urow) { $usersTask[] = $urow; } } else { $usersTask[] = $row; } } return $usersTask; }