예제 #1
0
 /**
  * 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;
     }
 }
예제 #2
0
 /**
  * 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;
 }