Правки по документации

- в мониторинг добавлено о приведении к строке
- актуализированы Client и Company
- мелочи в соотв. классах
This commit is contained in:
Anthony Axenov 2021-11-21 19:06:55 +08:00
parent 920c08c610
commit e1303f4fdb
5 changed files with 38 additions and 53 deletions

View File

@ -25,37 +25,21 @@ $customer = new AtolOnline\Entities\Client();
// 1 способ - через конструктор // 1 способ - через конструктор
$customer = new AtolOnline\Entities\Client( $customer = new AtolOnline\Entities\Client(
'John Doe', // наименование 'John Doe', // наименование
'+1/22/99*73s dsdas654 5s6', // номер телефона +122997365456
'john@example.com', // email 'john@example.com', // email
'+1/22/99*73s dsdas654 5s6', // номер телефона +122997365456
'+fasd3\qe3fs_=nac990139928czc' // номер ИНН 3399013928 '+fasd3\qe3fs_=nac990139928czc' // номер ИНН 3399013928
); );
// 2 способ - через сеттеры // 2 способ - через сеттеры
$customer = (new AtolOnline\Entities\Client()) $customer = (new AtolOnline\Entities\Client())
->setEmail('john@example.com') ->setEmail('john@example.com')
->setInn('+fasd3\q3fs_=nac9901 3928c-c') // 3399013928 ->setInn('+fasd3\q3fs_=nac9901 3928c-c')
->setName('John Doe') ->setName('John Doe')
->setPhone('+1/22/99*73s dsdas654 5s6'); // +122997365456 ->setPhone('+1/22/99*73s dsdas654 5s6');
// либо комбинация этих способов // либо комбинация этих способов
``` ```
Метод `setEmail()` проверяет входную строку на длину (до 64 символов) и валидность формата email.
Выбрасывает исключения:
* `AtolEmailTooLongException` (если слишком длинный email);
* `AtolEmailValidateException` (если email невалиден).
Метод `setInn()` чистит входную строку от всех символов, кроме цифр, и проверяет длину (либо 10, либо 12 цифр).
Выбрасывает исключение `AtolInnWrongLengthException` (если длина ИНН некорректна).
Метод `setName()` проверяет входную строку на длину (до 256 символов).
Выбрасывает исключение `AtolNameTooLongException` (если слишком длинное имя).
Метод `setPhone()` чистит входную строку от всех символов, кроме цифр и знака `+`, и проверяет длину (до 64 символов).
Выбрасывает исключение `AtolPhoneTooLongException` (если слишком длинный номер телефона).
Конструктор может выбрасывать любое из указанных выше исключений, если в него передаются значения.
Получить установленные значения атрибутов можно через геттеры: Получить установленные значения атрибутов можно через геттеры:
```php ```php
@ -65,7 +49,7 @@ $customer->getName();
$customer->getPhone(); $customer->getPhone();
``` ```
Объект класса приводится к JSON-строке автоматически или принудительным приведением к `string`: Объект класса приводится к JSON-строке автоматически или принудительно:
```php ```php
echo $customer; echo $customer;

View File

@ -22,16 +22,16 @@ $customer = new AtolOnline\Entities\Company();
Указать эти атрибуты можно двумя способами: Указать эти атрибуты можно двумя способами:
```php ```php
// 1 способ - через конструктор // 1 способ - через конструктор (все аргументы обязательны)
$company = new AtolOnline\Entities\Company( $company = new AtolOnline\Entities\Company(
'company@example.com' // email
AtolOnline\Constants\SnoTypes::OSN, // тип СНО AtolOnline\Constants\SnoTypes::OSN, // тип СНО
'5544332219', // номер ИНН '5544332219', // номер ИНН
'https://v4.online.atol.ru', // адрес места расчётов 'https://v4.online.atol.ru', // адрес места расчётов
'company@example.com' // email
); );
// 2 способ - через сеттеры // 2 способ - через сеттеры
$company = (new AtolOnline\Entities\Company()) $company
->setEmail('company@example.com') ->setEmail('company@example.com')
->setInn('5544332219') ->setInn('5544332219')
->setSno(AtolOnline\Constants\SnoTypes::USN_INCOME) ->setSno(AtolOnline\Constants\SnoTypes::USN_INCOME)
@ -40,19 +40,6 @@ $company = (new AtolOnline\Entities\Company())
// либо комбинация этих способов // либо комбинация этих способов
``` ```
Метод `setEmail()` проверяет входную строку на длину (до 64 символов) и валидность формата email.
Выбрасывает исключения:
* `AtolEmailTooLongException` (если слишком длинный email);
* `AtolEmailValidateException` (если email невалиден).
Метод `setInn()` чистит входную строку от всех символов, кроме цифр, и проверяет длину (либо 10, либо 12 цифр).
Выбрасывает исключение `AtolInnWrongLengthException` (если длина ИНН некорректна).
Метод `setPaymentAddress()` проверяет длину (до 256 символов).
Выбрасывает исключение `AtolPaymentAddressTooLongException` (если слишком длинный адрес места расчётов).
Конструктор может выбрасывать любое из указанных выше исключений, если в него передаются параметры.
Получить установленные значения параметров можно через геттеры: Получить установленные значения параметров можно через геттеры:
```php ```php
@ -62,7 +49,7 @@ $company->getPaymentAddress();
$company->getSno(); $company->getSno();
``` ```
Объект класса приводится к JSON-строке автоматически или принудительным приведением к `string`: Объект класса приводится к JSON-строке автоматически или принудительно:
```php ```php
echo $company; echo $company;

View File

@ -79,6 +79,19 @@ $kkt->networkErrorCode; // Код ошибки сети
Сопоставления кодов ошибок и их описаний доступны в массиве `AtolOnline\Entities\Kkt::ERROR_CODES`. Сопоставления кодов ошибок и их описаний доступны в массиве `AtolOnline\Entities\Kkt::ERROR_CODES`.
Объект класса приводится к JSON-строке автоматически или принудительно:
```php
echo $kkt;
$json_string = (string)$kkt;
```
Чтобы получить те же данные в виде массива, нужно вызвать метод `jsonSerialize()`:
```php
$json_array = $kkt->jsonSerialize();
```
## Получение данных об одной из своих ККТ ## Получение данных об одной из своих ККТ
Для этого следует вызвать метод `AtolOnline\Api\KktMonitor::getOne()`, передав на вход серийный номер (`serialNumber`) Для этого следует вызвать метод `AtolOnline\Api\KktMonitor::getOne()`, передав на вход серийный номер (`serialNumber`)

View File

@ -50,25 +50,26 @@ class Client extends Entity
* Конструктор объекта покупателя * Конструктор объекта покупателя
* *
* @param string|null $name Наименование. Тег ФФД - 1227. * @param string|null $name Наименование. Тег ФФД - 1227.
* @param string|null $phone Email. Тег ФФД - 1008. * @param string|null $phone Email. Тег ФФД - 1008.
* @param string|null $email Телефон покупателя. Тег ФФД - 1008. * @param string|null $email Телефон покупателя. Тег ФФД - 1008.
* @param string|null $inn ИНН. Тег ФФД - 1228. * @param string|null $inn ИНН. Тег ФФД - 1228.
* @throws TooLongNameException Слишком длинное имя * @throws TooLongNameException
* @throws TooLongPhoneException Слишком длинный телефон * @throws TooLongPhoneException
* @throws TooLongEmailException Слишком длинный email * @throws TooLongEmailException
* @throws InvalidEmailException Невалидный email * @throws InvalidEmailException
* @throws InvalidInnLengthException Некорректная длина ИНН * @throws InvalidInnLengthException
*/ */
public function __construct( public function __construct(
?string $name = null, ?string $name = null,
?string $email = null, ?string $email = null,
?string $phone = null, ?string $phone = null,
?string $inn = null ?string $inn = null
) { )
$name && $this->setName($name); {
$email && $this->setEmail($email); !is_null($name) && $this->setName($name);
$phone && $this->setPhone($phone); !is_null($email) && $this->setEmail($email);
$inn && $this->setInn($inn); !is_null($phone) && $this->setPhone($phone);
!is_null($inn) && $this->setInn($inn);
} }
/** /**
@ -92,7 +93,7 @@ class Client extends Entity
* @return $this * @return $this
* @throws TooLongNameException * @throws TooLongNameException
*/ */
public function setName(?string $name): Client public function setName(?string $name): self
{ {
if (is_string($name)) { if (is_string($name)) {
$name = preg_replace('/[\n\r\t]/', '', trim($name)); $name = preg_replace('/[\n\r\t]/', '', trim($name));
@ -157,7 +158,7 @@ class Client extends Entity
* @return $this * @return $this
* @throws TooLongPhoneException * @throws TooLongPhoneException
*/ */
public function setPhone(?string $phone): Client public function setPhone(?string $phone): self
{ {
if (is_string($phone)) { if (is_string($phone)) {
$phone = preg_replace('/[^\d]/', '', trim($phone)); $phone = preg_replace('/[^\d]/', '', trim($phone));

View File

@ -125,7 +125,7 @@ class Company extends Entity
* @return $this * @return $this
* @throws InvalidSnoException * @throws InvalidSnoException
*/ */
public function setSno(string $sno): Company public function setSno(string $sno): self
{ {
$sno = trim($sno); $sno = trim($sno);
if (empty($sno) || !in_array($sno, SnoTypes::toArray())) { if (empty($sno) || !in_array($sno, SnoTypes::toArray())) {
@ -188,7 +188,7 @@ class Company extends Entity
* @throws TooLongPaymentAddressException * @throws TooLongPaymentAddressException
* @throws InvalidPaymentAddressException * @throws InvalidPaymentAddressException
*/ */
public function setPaymentAddress(string $payment_address): Company public function setPaymentAddress(string $payment_address): self
{ {
$payment_address = trim($payment_address); $payment_address = trim($payment_address);
if (empty($payment_address)) { if (empty($payment_address)) {