diff options
Diffstat (limited to 'app/Model/SubTask.php')
-rw-r--r-- | app/Model/SubTask.php | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/app/Model/SubTask.php b/app/Model/SubTask.php index 25979eda..87820c69 100644 --- a/app/Model/SubTask.php +++ b/app/Model/SubTask.php @@ -193,22 +193,22 @@ class SubTask extends Base */ public function duplicate($src_task_id, $dst_task_id) { - $subtasks = $this->db->table(self::TABLE) - ->columns('title', 'time_estimated') - ->eq('task_id', $src_task_id) - ->findAll(); + return $this->db->transaction(function ($db) use ($src_task_id, $dst_task_id) { - foreach ($subtasks as &$subtask) { + $subtasks = $db->table(self::TABLE) + ->columns('title', 'time_estimated') + ->eq('task_id', $src_task_id) + ->findAll(); - $subtask['task_id'] = $dst_task_id; - $subtask['time_spent'] = 0; + foreach ($subtasks as &$subtask) { - if (! $this->db->table(self::TABLE)->save($subtask)) { - return false; - } - } + $subtask['task_id'] = $dst_task_id; - return true; + if (! $db->table(self::TABLE)->save($subtask)) { + return false; + } + } + }); } /** |