xref: /plugin/bez/mdl/TaskFactory.php (revision 8a6381983135ed7de69b33e64aa0c1b16dbf69b0)
1*8a638198SSzymon Olewniczak<?php
2*8a638198SSzymon Olewniczak/**
3*8a638198SSzymon Olewniczak * Created by PhpStorm.
4*8a638198SSzymon Olewniczak * User: ghi
5*8a638198SSzymon Olewniczak * Date: 12.12.17
6*8a638198SSzymon Olewniczak * Time: 11:58
7*8a638198SSzymon Olewniczak */
8*8a638198SSzymon Olewniczak
9*8a638198SSzymon Olewniczaknamespace dokuwiki\plugin\bez\mdl;
10*8a638198SSzymon Olewniczak
11*8a638198SSzymon Olewniczakclass TaskFactory extends Factory {
12*8a638198SSzymon Olewniczak    protected function select_query() {
13*8a638198SSzymon Olewniczak        return "SELECT task.*, task_program.name AS task_program_name
14*8a638198SSzymon Olewniczak                  FROM task LEFT JOIN task_program ON task.task_program_id = task_program.id";
15*8a638198SSzymon Olewniczak    }
16*8a638198SSzymon Olewniczak
17*8a638198SSzymon Olewniczak    public function initial_save(Entity $task, $data) {
18*8a638198SSzymon Olewniczak        parent::initial_save($task, $data);
19*8a638198SSzymon Olewniczak
20*8a638198SSzymon Olewniczak        $task->set_data($data);
21*8a638198SSzymon Olewniczak        try {
22*8a638198SSzymon Olewniczak            $this->beginTransaction();
23*8a638198SSzymon Olewniczak            $this->save($task);
24*8a638198SSzymon Olewniczak
25*8a638198SSzymon Olewniczak            if ($task->thread) {
26*8a638198SSzymon Olewniczak                $task->thread->set_participant_flags($task->assignee, array('subscribent', 'task_assignee'));
27*8a638198SSzymon Olewniczak                $task->thread->update_last_activity();
28*8a638198SSzymon Olewniczak            }
29*8a638198SSzymon Olewniczak
30*8a638198SSzymon Olewniczak            $this->commitTransaction();
31*8a638198SSzymon Olewniczak        } catch(Exception $exception) {
32*8a638198SSzymon Olewniczak            $this->rollbackTransaction();
33*8a638198SSzymon Olewniczak        }
34*8a638198SSzymon Olewniczak
35*8a638198SSzymon Olewniczak        //$task->mail_notify_add();
36*8a638198SSzymon Olewniczak    }
37*8a638198SSzymon Olewniczak
38*8a638198SSzymon Olewniczak    public function update_save(Entity $task, $data) {
39*8a638198SSzymon Olewniczak        parent::update_save($task, $data);
40*8a638198SSzymon Olewniczak
41*8a638198SSzymon Olewniczak        $task->set_data($data);
42*8a638198SSzymon Olewniczak        try {
43*8a638198SSzymon Olewniczak            $this->beginTransaction();
44*8a638198SSzymon Olewniczak            $this->save($task);
45*8a638198SSzymon Olewniczak
46*8a638198SSzymon Olewniczak            if ($task->thread) {
47*8a638198SSzymon Olewniczak            }
48*8a638198SSzymon Olewniczak
49*8a638198SSzymon Olewniczak            $this->commitTransaction();
50*8a638198SSzymon Olewniczak        } catch(Exception $exception) {
51*8a638198SSzymon Olewniczak            $this->rollbackTransaction();
52*8a638198SSzymon Olewniczak        }
53*8a638198SSzymon Olewniczak    }
54*8a638198SSzymon Olewniczak}