2020-01-11 06:30:25 +00:00
|
|
|
|
# Работа с клиентами (покупателями)
|
|
|
|
|
|
2020-01-11 10:08:49 +00:00
|
|
|
|
[Вернуться к содержанию](readme.md)
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2020-01-11 06:30:25 +00:00
|
|
|
|
Объект покупателя инициализируется следующим образом:
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
$customer = new AtolOnline\Entities\Client();
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
У объекта покупателя могут быть указаны любые из следующих атрибутов:
|
|
|
|
|
* email (тег ФФД 1008);
|
|
|
|
|
* ИНН (тег ФФД 1128);
|
|
|
|
|
* наименование (тег ФФД 1127);
|
|
|
|
|
* номер телефона (тег ФФД 1008).
|
|
|
|
|
|
|
|
|
|
> Все эти атрибуты являются **необязательными**.
|
|
|
|
|
> Если указаны одновременно и email, и номер телефона, то ОФД отправит чек только на email.
|
|
|
|
|
|
|
|
|
|
Указать эти атрибуты можно двумя способами:
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
// 1 способ - через конструктор
|
|
|
|
|
$customer = new AtolOnline\Entities\Client(
|
|
|
|
|
'John Doe', // наименование
|
|
|
|
|
'+1/22/99*73s dsdas654 5s6', // номер телефона +122997365456
|
|
|
|
|
'john@example.com', // email
|
|
|
|
|
'+fasd3\qe3fs_=nac990139928czc' // номер ИНН 3399013928
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// 2 способ - через сеттеры
|
|
|
|
|
$customer = (new AtolOnline\Entities\Client())
|
|
|
|
|
->setEmail('john@example.com')
|
|
|
|
|
->setInn('+fasd3\q3fs_=nac9901 3928c-c') // 3399013928
|
|
|
|
|
->setName('John Doe')
|
|
|
|
|
->setPhone('+1/22/99*73s dsdas654 5s6'); // +122997365456
|
|
|
|
|
|
|
|
|
|
// либо комбинация этих способов
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Метод `setEmail()` проверяет входную строку на длину (до 64 символов) и валидность формата email.
|
|
|
|
|
Выбрасывает исключения:
|
|
|
|
|
* `AtolEmailTooLongException` (если слишком длинный email);
|
|
|
|
|
* `AtolEmailValidateException` (если email невалиден).
|
|
|
|
|
|
|
|
|
|
Метод `setInn()` чистит входную строку от всех символов, кроме цифр, и проверяет длину (либо 10, либо 12 цифр).
|
2020-06-07 11:39:26 +00:00
|
|
|
|
Выбрасывает исключение `AtolInnWrongLengthException` (если длина ИНН некорректна).
|
2020-01-11 06:30:25 +00:00
|
|
|
|
|
|
|
|
|
Метод `setName()` проверяет входную строку на длину (до 256 символов).
|
2020-06-07 11:39:26 +00:00
|
|
|
|
Выбрасывает исключение `AtolNameTooLongException` (если слишком длинное имя).
|
2020-01-11 06:30:25 +00:00
|
|
|
|
|
|
|
|
|
Метод `setPhone()` чистит входную строку от всех символов, кроме цифр и знака `+`, и проверяет длину (до 64 символов).
|
|
|
|
|
Выбрасывает исключение `AtolPhoneTooLongException` (если слишком длинный номер телефона).
|
|
|
|
|
|
|
|
|
|
Конструктор может выбрасывать любое из указанных выше исключений, если в него передаются значения.
|
|
|
|
|
|
|
|
|
|
Получить установленные значения атрибутов можно через геттеры:
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
$customer->getInn();
|
|
|
|
|
$customer->getEmail();
|
|
|
|
|
$customer->getName();
|
|
|
|
|
$customer->getPhone();
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Объект класса приводится к JSON-строке автоматически или принудительным приведением к `string`:
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
echo $customer;
|
|
|
|
|
$json_string = (string)$customer;
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Чтобы получить те же данные в виде массива, нужно вызвать метод `jsonSerialize()`:
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
$json_array = $customer->jsonSerialize();
|
|
|
|
|
```
|
2020-01-11 10:08:49 +00:00
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
[Вернуться к содержанию](readme.md)
|