Task::linkElement()   A
last analyzed

Complexity

Conditions 4
Paths 4

Size

Total Lines 18

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 4

Importance

Changes 0
Metric Value
dl 0
loc 18
ccs 11
cts 11
cp 1
rs 9.6666
c 0
b 0
f 0
cc 4
nc 4
nop 1
crap 4
1
<?php
2
3
namespace linkprofit\AmoCRM\entities;
4
5
/**
6
 * Class Task
7
 * @package linkprofit\AmoCRM\entities
8
 */
9
class Task extends BaseEntity
10
{
11
    /**
12
     * Контакт
13
     */
14
    const CONTACT_ELEMENT_TYPE = 1;
15
16
    /**
17
     * Сделка
18
     */
19
    const LEAD_ELEMENT_TYPE = 2;
20
21
    /**
22
     * Компания
23
     */
24
    const COMPANY_ELEMENT_TYPE = 3;
25
26
    /**
27
     * Покупатель
28
     */
29
    const CUSTOMER_ELEMENT_TYPE = 12;
30
31
32
    /**
33
     * Звонок
34
     */
35
    const CALL_TASK_TYPE = 1;
36
37
    /**
38
     * Встреча
39
     */
40
    const MEETING_TASK_TYPE = 2;
41
42
    /**
43
     * Написать письмо
44
     */
45
    const MAIL_TASK_TYPE = 3;
46
47
48
    /**
49
     * @var int Уникальный идентификатор контакта или сделки (сделка или контакт указывается в element_type)
50
     */
51
    public $element_id;
52
53
    /**
54
     * @var int Тип привязываемого элемента (1 - контакт, 2- сделка, 3 - компания, 12 - покупатель)
55
     */
56
    public $element_type;
57
58
    /**
59
     * @var string Дата, до которой необходимо завершить задачу. Если указано время 23:59, то в интерфейсах системы вместо времени будет отображаться "Весь день".
60
     */
61
    public $complete_till_at;
62
63
    /**
64
     * @var int Тип задачи
65
     */
66
    public $task_type;
67
68
    /**
69
     * @var string Текст задачи
70
     */
71
    public $text;
72
73
    /**
74
     * @var bool Задача завершена или нет
75
     */
76
    public $is_completed;
77
78
    /**
79
     * @var array
80
     */
81
    protected $fieldList = [
82
        'id', 'element_id', 'element_type', 'complete_till_at', 'task_type',
83
        'text', 'created_at', 'updated_at', 'responsible_user_id', 'is_completed'
84
    ];
85
86
    /**
87
     * @param BaseEntity $element
88
     * @return bool
89
     */
90 4
    public function linkElement(BaseEntity $element)
91
    {
92 4
        if (empty($element->id)) {
93 1
            return false;
94
        }
95
96 3
        if ($element instanceof Contact) {
97 1
            $this->element_type = self::CONTACT_ELEMENT_TYPE;
98 3
        } elseif ($element instanceof Lead) {
99 1
            $this->element_type = self::LEAD_ELEMENT_TYPE;
100 1
        } else {
101 1
            return false;
102
        }
103
104 2
        $this->element_id = $element->id;
105
106 2
        return true;
107
    }
108
}