taskFinderModel->getById($task_id); $values = $this->prepare($project_id, $swimlane_id, $column_id, $category_id, $owner_id, $task); $this->checkDestinationProjectValues($values); $this->tagDuplicationModel->syncTaskTagsToAnotherProject($task_id, $project_id); if ($this->db->table(TaskModel::TABLE)->eq('id', $task['id'])->update($values)) { $event = new TaskEvent(array_merge($task, $values, array('task_id' => $task['id']))); $this->dispatcher->dispatch(TaskModel::EVENT_MOVE_PROJECT, $event); } return true; } /** * Prepare new task values * * @access protected * @param integer $project_id * @param integer $swimlane_id * @param integer $column_id * @param integer $category_id * @param integer $owner_id * @param array $task * @return array */ protected function prepare($project_id, $swimlane_id, $column_id, $category_id, $owner_id, array $task) { $values = array(); $values['is_active'] = 1; $values['project_id'] = $project_id; $values['column_id'] = $column_id !== null ? $column_id : $task['column_id']; $values['position'] = $this->taskFinderModel->countByColumnId($project_id, $values['column_id']) + 1; $values['swimlane_id'] = $swimlane_id !== null ? $swimlane_id : $task['swimlane_id']; $values['category_id'] = $category_id !== null ? $category_id : $task['category_id']; $values['owner_id'] = $owner_id !== null ? $owner_id : $task['owner_id']; return $values; } }