Esempio n. 1
0
 protected function getTaskRelationHash()
 {
     $id = $this->taskId;
     $result = array();
     if ($id) {
         global $DB;
         $sql = DependenceTable::getSubTreeSql($id);
         $res = $DB->query($sql);
         $items = array();
         // all items
         $taskData = array($id => true);
         // actual task list in bundle
         while ($item = $res->fetch()) {
             // make datetime objects
             if ($item['CREATED_DATE']) {
                 $item['CREATED_DATE'] = DateTime::createFromUserTimeGmt($item['CREATED_DATE']);
             }
             if ($item['START_DATE_PLAN']) {
                 $item['START_DATE_PLAN'] = DateTime::createFromUserTimeGmt($item['START_DATE_PLAN']);
             }
             if ($item['END_DATE_PLAN']) {
                 $item['END_DATE_PLAN'] = DateTime::createFromUserTimeGmt($item['END_DATE_PLAN']);
             }
             $items[] = $item;
             $taskId = $item['TASK_ID'];
             unset($item['TASK_ID']);
             unset($item['TYPE']);
             unset($item['FROM_TASK_ID']);
             $taskData[$taskId] = $item;
         }
         $relations = array();
         foreach ($items as $item) {
             if (isset($taskData[$item['FROM_TASK_ID']])) {
                 $pid = $item['FROM_TASK_ID'];
                 $relations[$pid][$item['TASK_ID']] = array('TASK_ID' => $item['TASK_ID'], 'TYPE' => $item['TYPE'], 'FROM_TASK_ID' => $item['FROM_TASK_ID']);
             }
             // else skip this relation
         }
         $this->makeRelationTree($this->taskId, $relations, $taskData);
         $filteredRelations = array();
     }
 }