Completed
Pull Request — dev (#13)
by Konstantin
02:01
created

Task::linkSelf()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 11
c 0
b 0
f 0
ccs 7
cts 7
cp 1
rs 9.4285
cc 2
eloc 6
nc 2
nop 1
crap 2
1
<?php
2
3
namespace linkprofit\AmoCRM\entities;
4
5
/**
6
 * Class Task
7
 * @package linkprofit\AmoCRM\entities
8
 */
9
class Task extends LinkElementCapableEntity implements LinkableElement
10
{
11
    /**
12
     * Задача. Для задачи доступен только тип события TASK_RESULT
13
     */
14
    const ELEMENT_TYPE = 4;
15
16
17
    /**
18
     * Результат по задаче
19
     */
20
    const TASK_RESULT = 13;
21
22
23
    /**
24
     * Звонок
25
     */
26
    const CALL_TASK_TYPE = 1;
27
28
    /**
29
     * Встреча
30
     */
31
    const MEETING_TASK_TYPE = 2;
32
33
    /**
34
     * Написать письмо
35
     */
36
    const MAIL_TASK_TYPE = 3;
37
38
    /**
39
     * @var string Дата, до которой необходимо завершить задачу. Если указано время 23:59, то в интерфейсах системы вместо времени будет отображаться "Весь день".
40
     */
41
    public $complete_till_at;
42
43
    /**
44
     * @var int Тип задачи
45
     */
46
    public $task_type;
47
48
    /**
49
     * @var string Текст задачи
50
     */
51
    public $text;
52
53
    /**
54
     * @var bool Задача завершена или нет
55
     */
56
    public $is_completed;
57
58
    /**
59
     * @var array
60
     */
61
    protected $fieldList = [
62
        'id', 'element_id', 'element_type', 'complete_till_at', 'task_type',
63
        'text', 'created_at', 'updated_at', 'responsible_user_id', 'is_completed'
64
    ];
65
66
    /**
67
     * @param $entityClass
68
     *
69
     * @return bool
70
     */
71 2
    public function supports($entityClass)
72
    {
73 2
        $supportedClasses = [Note::class];
74
75 2
        return in_array($entityClass, $supportedClasses, 1) && !empty($this->id);
76
    }
77
78
    /**
79
     * @param LinkElementCapableEntity $entity
80
     *
81
     * @return LinkElementCapableEntity
82
     */
83 1
    public function linkSelf(LinkElementCapableEntity $entity)
84
    {
85 1
        $entity->element_type = self::ELEMENT_TYPE;
86 1
        $entity->element_id = $this->id;
87
88 1
        if ($entity instanceof Note) {
89 1
            $entity->note_type = Task::TASK_RESULT;
90 1
        }
91
92 1
        return $entity;
93
    }
94
}