From e1303f4fdbda75d1cf60afcd1f10ddd92697f730 Mon Sep 17 00:00:00 2001 From: AnthonyAxenov Date: Sun, 21 Nov 2021 19:06:55 +0800 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - в мониторинг добавлено о приведении к строке - актуализированы Client и Company - мелочи в соотв. классах --- docs/client.md | 24 ++++-------------------- docs/company.md | 21 ++++----------------- docs/monitoring.md | 13 +++++++++++++ src/Entities/Client.php | 29 +++++++++++++++-------------- src/Entities/Company.php | 4 ++-- 5 files changed, 38 insertions(+), 53 deletions(-) diff --git a/docs/client.md b/docs/client.md index 01be506..73072ed 100644 --- a/docs/client.md +++ b/docs/client.md @@ -25,37 +25,21 @@ $customer = new AtolOnline\Entities\Client(); // 1 способ - через конструктор $customer = new AtolOnline\Entities\Client( 'John Doe', // наименование - '+1/22/99*73s dsdas654 5s6', // номер телефона +122997365456 'john@example.com', // email + '+1/22/99*73s dsdas654 5s6', // номер телефона +122997365456 '+fasd3\qe3fs_=nac990139928czc' // номер ИНН 3399013928 ); // 2 способ - через сеттеры $customer = (new AtolOnline\Entities\Client()) ->setEmail('john@example.com') - ->setInn('+fasd3\q3fs_=nac9901 3928c-c') // 3399013928 + ->setInn('+fasd3\q3fs_=nac9901 3928c-c') ->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 @@ -65,7 +49,7 @@ $customer->getName(); $customer->getPhone(); ``` -Объект класса приводится к JSON-строке автоматически или принудительным приведением к `string`: +Объект класса приводится к JSON-строке автоматически или принудительно: ```php echo $customer; diff --git a/docs/company.md b/docs/company.md index 912bd59..d13305e 100644 --- a/docs/company.md +++ b/docs/company.md @@ -22,16 +22,16 @@ $customer = new AtolOnline\Entities\Company(); Указать эти атрибуты можно двумя способами: ```php -// 1 способ - через конструктор +// 1 способ - через конструктор (все аргументы обязательны) $company = new AtolOnline\Entities\Company( + 'company@example.com' // email AtolOnline\Constants\SnoTypes::OSN, // тип СНО '5544332219', // номер ИНН 'https://v4.online.atol.ru', // адрес места расчётов - 'company@example.com' // email ); // 2 способ - через сеттеры -$company = (new AtolOnline\Entities\Company()) +$company ->setEmail('company@example.com') ->setInn('5544332219') ->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 @@ -62,7 +49,7 @@ $company->getPaymentAddress(); $company->getSno(); ``` -Объект класса приводится к JSON-строке автоматически или принудительным приведением к `string`: +Объект класса приводится к JSON-строке автоматически или принудительно: ```php echo $company; diff --git a/docs/monitoring.md b/docs/monitoring.md index 9addf52..6fafe5f 100644 --- a/docs/monitoring.md +++ b/docs/monitoring.md @@ -79,6 +79,19 @@ $kkt->networkErrorCode; // Код ошибки сети Сопоставления кодов ошибок и их описаний доступны в массиве `AtolOnline\Entities\Kkt::ERROR_CODES`. +Объект класса приводится к JSON-строке автоматически или принудительно: + +```php +echo $kkt; +$json_string = (string)$kkt; +``` + +Чтобы получить те же данные в виде массива, нужно вызвать метод `jsonSerialize()`: + +```php +$json_array = $kkt->jsonSerialize(); +``` + ## Получение данных об одной из своих ККТ Для этого следует вызвать метод `AtolOnline\Api\KktMonitor::getOne()`, передав на вход серийный номер (`serialNumber`) diff --git a/src/Entities/Client.php b/src/Entities/Client.php index 063090b..6b13421 100644 --- a/src/Entities/Client.php +++ b/src/Entities/Client.php @@ -50,25 +50,26 @@ class Client extends Entity * Конструктор объекта покупателя * * @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 $inn ИНН. Тег ФФД - 1228. - * @throws TooLongNameException Слишком длинное имя - * @throws TooLongPhoneException Слишком длинный телефон - * @throws TooLongEmailException Слишком длинный email - * @throws InvalidEmailException Невалидный email - * @throws InvalidInnLengthException Некорректная длина ИНН + * @param string|null $inn ИНН. Тег ФФД - 1228. + * @throws TooLongNameException + * @throws TooLongPhoneException + * @throws TooLongEmailException + * @throws InvalidEmailException + * @throws InvalidInnLengthException */ public function __construct( ?string $name = null, ?string $email = null, ?string $phone = null, ?string $inn = null - ) { - $name && $this->setName($name); - $email && $this->setEmail($email); - $phone && $this->setPhone($phone); - $inn && $this->setInn($inn); + ) + { + !is_null($name) && $this->setName($name); + !is_null($email) && $this->setEmail($email); + !is_null($phone) && $this->setPhone($phone); + !is_null($inn) && $this->setInn($inn); } /** @@ -92,7 +93,7 @@ class Client extends Entity * @return $this * @throws TooLongNameException */ - public function setName(?string $name): Client + public function setName(?string $name): self { if (is_string($name)) { $name = preg_replace('/[\n\r\t]/', '', trim($name)); @@ -157,7 +158,7 @@ class Client extends Entity * @return $this * @throws TooLongPhoneException */ - public function setPhone(?string $phone): Client + public function setPhone(?string $phone): self { if (is_string($phone)) { $phone = preg_replace('/[^\d]/', '', trim($phone)); diff --git a/src/Entities/Company.php b/src/Entities/Company.php index d5876d9..485bd0a 100644 --- a/src/Entities/Company.php +++ b/src/Entities/Company.php @@ -125,7 +125,7 @@ class Company extends Entity * @return $this * @throws InvalidSnoException */ - public function setSno(string $sno): Company + public function setSno(string $sno): self { $sno = trim($sno); if (empty($sno) || !in_array($sno, SnoTypes::toArray())) { @@ -188,7 +188,7 @@ class Company extends Entity * @throws TooLongPaymentAddressException * @throws InvalidPaymentAddressException */ - public function setPaymentAddress(string $payment_address): Company + public function setPaymentAddress(string $payment_address): self { $payment_address = trim($payment_address); if (empty($payment_address)) {