CashDesk   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 145
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 66
c 1
b 0
f 0
dl 0
loc 145
rs 10
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A getFnFactoryNumber() 0 3 1
A getKktRegNumber() 0 3 1
A getPropertyInitMap() 0 5 1
A getName() 0 3 1
A getRuleList() 0 38 1
A getKktFactoryNumber() 0 3 1
1
<?php
2
3
namespace alekciy\ofd\providers\taxcom\Model;
4
5
use alekciy\ofd\BaseModel;
6
use alekciy\ofd\interfaces\CashDeskInterface;
7
use alekciy\ofd\providers\taxcom\Status;
8
9
/**
10
 * Детальная информация по кассе (ККТ).
11
 */
12
class CashDesk extends BaseModel implements CashDeskInterface
13
{
14
	/**
15
	 * @inheritDoc
16
	 */
17
	protected function getPropertyInitMap(): array
18
	{
19
		return [
20
			'cashdeskEndDateTime' => 'cashDeskEndDateTime',
21
			'cashdeskState' => 'cashDeskState',
22
		];
23
	}
24
25
	/** @var string Оплачена по */
26
	public $cashDeskEndDateTime;
27
28
	/** @var string Состояние  */
29
	public $cashDeskState;
30
31
	/** @var string Срок действия ФН */
32
	public $fnDuration;
33
34
	/** @var string Дата окончания действия ФН */
35
	public $fnEndDateTime;
36
37
	/** @var string Заводской номер ФН */
38
	public $fnFactoryNumber;
39
40
	/** @var string Дата регистрации ФН */
41
	public $fnRegDateTime;
42
43
	/** @var string Состояние ФН */
44
	public $fnState;
45
46
	/** @var string Заводской номер */
47
	public $kktFactoryNumber;
48
49
	/** @var string Модель */
50
	public $kktModelName;
51
52
	/** @var string Регистрационный номер */
53
	public $kktRegNumber;
54
55
	/** @var string Дата последнего документа */
56
	public $lastDocumentDateTime;
57
58
	/** @var string Статус последнего документа */
59
	public $lastDocumentState;
60
61
	/** @var string Название */
62
	public $name;
63
64
	/** @var string Статус смены */
65
	public $shiftStatus;
66
67
	// Состояние
68
	const STATUS_ACTIVE = 'Active'; // Подключена
69
	const STATUS_EXPIRES = 'Expires'; // Заканчивается оплата
70
	const STATUS_EXPIRED = 'Expired'; // Не оплачена
71
	const STATUS_INACTIVE = 'Inactive'; // Отключена пользователем
72
	const STATUS_ACTIVATION = 'Activation'; // Подключение
73
	const STATUS_DEACTIVATION = 'Deactivation'; // Отключение
74
	const STATUS_FN_CHANGE = 'FNChange'; // Замена ФН
75
	const STATUS_FN_REGISTRATION = 'FNSRegistration'; // Регистрация в ФНС
76
	const STATUS_FN_REGISTRATION_ERROR = 'FNSRegistrationError'; // Ошибка регистрации в ФНС
77
78
	// Состояние ФН
79
	const FN_STATUS_ACTIVE = 'Active'; // Активен
80
	const FN_STATUS_EXPIRES = 'Expires'; // Срок истекат
81
	const FN_STATUS_EXPIRED = 'Expired'; // Срок истек
82
83
	/**
84
	 * @inheritDoc
85
	 */
86
	public function getRuleList(): array
87
	{
88
		return [
89
			'name' => ['required', ['lengthMax', 255]],
90
			'kktRegNumber' => ['required', ['lengthMin', 1], ['lengthMax', 16]],
91
			'kktFactoryNumber' => ['required', ['lengthMin', 1], ['lengthMax', 20]],
92
			'fnFactoryNumber' => ['required', ['lengthMin', 1], ['lengthMax', 16]],
93
			'kktModelName' => [['lengthMin', 1], ['lengthMax', 16]],
94
			'fnDuration' => [['lengthMin', 1], ['lengthMax', 20]],
95
			'shiftStatus' => [['in', [
96
				Shift::STATUS_OPEN,
97
				Shift::STATUS_CLOSE,
98
			]]],
99
			'cashDeskState' => [['in', [
100
				self::STATUS_ACTIVE,
101
				self::STATUS_EXPIRES,
102
				self::STATUS_EXPIRED,
103
				self::STATUS_INACTIVE,
104
				self::STATUS_ACTIVATION,
105
				self::STATUS_DEACTIVATION,
106
				self::STATUS_FN_CHANGE,
107
				self::STATUS_FN_REGISTRATION,
108
				self::STATUS_FN_REGISTRATION_ERROR,
109
			]]],
110
			'fnState' => [['in', [
111
				self::FN_STATUS_ACTIVE,
112
				self::FN_STATUS_EXPIRES,
113
				self::FN_STATUS_EXPIRED,
114
			]]],
115
			'lastDocumentState' => [['in', [
116
				Status::OK,
117
				Status::PROBLEM,
118
				Status::WARNING,
119
			]]],
120
			'fnRegDateTime' => [['dateFormat', 'H-m-dTH:i:s']],
121
			'cashDeskEndDateTime' => [['dateFormat', 'H-m-dTH:i:s']],
122
			'fnEndDateTime' => [['dateFormat', 'H-m-dTH:i:s']],
123
			'lastDocumentDateTime' => [['dateFormat', 'H-m-dTH:i:s']],
124
		];
125
	}
126
127
	/**
128
	 * @inheritDoc
129
	 */
130
	public function getFnFactoryNumber(): string
131
	{
132
		return $this->fnFactoryNumber;
133
	}
134
135
	/**
136
	 * @inheritDoc
137
	 */
138
	public function getKktFactoryNumber(): string
139
	{
140
		return $this->kktFactoryNumber;
141
	}
142
143
	/**
144
	 * @inheritDoc
145
	 */
146
	public function getKktRegNumber(): string
147
	{
148
		return $this->kktRegNumber;
149
	}
150
151
	/**
152
	 * @inheritDoc
153
	 */
154
	public function getName(): string
155
	{
156
		return $this->name;
157
	}
158
}