Exemple #1
0
 /**
  * @param int $fromUserId Task current user.
  * @param int $toUserId Task target user.
  * @param array|int $ids Task ids.
  * @param array $errors Error collection.
  * @return bool
  */
 public static function delegateTasks($fromUserId, $toUserId, $ids = array(), &$errors = array())
 {
     $filter = array('USER_ID' => $fromUserId, 'STATUS' => CBPTaskStatus::Running, 'USER_STATUS' => CBPTaskUserStatus::Waiting);
     if ($ids) {
         $ids = array_filter(array_map('intval', (array) $ids));
         if ($ids) {
             $filter['ID'] = $ids;
         }
     }
     $iterator = CBPTaskService::GetList(array('ID' => 'ASC'), $filter, false, false, array('ID', 'NAME'));
     $found = false;
     while ($task = $iterator->fetch()) {
         $found = true;
         if (!CBPTaskService::delegateTask($task['ID'], $fromUserId, $toUserId)) {
             $errors[] = GetMessage('BPCGDOC_ERROR_DELEGATE', array('#NAME#' => $task['NAME']));
         }
     }
     return $found;
 }