From 920c08c610ec6b2c1da335e033c87eb993f3f56e Mon Sep 17 00:00:00 2001 From: AnthonyAxenov Date: Sun, 21 Nov 2021 18:58:03 +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 - добавлено про мониторинг - убрано про `base_name` из коррекции --- docs/client.md | 2 +- docs/correction_info.md | 6 +-- docs/monitoring.md | 103 ++++++++++++++++++++++++++++++++++++++++ docs/readme.md | 5 +- 4 files changed, 108 insertions(+), 8 deletions(-) create mode 100644 docs/monitoring.md diff --git a/docs/client.md b/docs/client.md index d22484a..01be506 100644 --- a/docs/client.md +++ b/docs/client.md @@ -80,4 +80,4 @@ $json_array = $customer->jsonSerialize(); --- -[Вернуться к содержанию](readme.md) \ No newline at end of file +[Вернуться к содержанию](readme.md) diff --git a/docs/correction_info.md b/docs/correction_info.md index dc67a09..c90cade 100644 --- a/docs/correction_info.md +++ b/docs/correction_info.md @@ -13,8 +13,7 @@ $info = new AtolOnline\Entities\CorrectionInfo(); У объекта должны быть указаны все следующие обязательные атрибуты: * тип коррекции (тег ФФД 1173) - все типы перечислены в классе `AtolOnline\Constants\CorrectionTypes`; * дата документа основания для коррекции в формате `d.m.Y` (тег ФФД 1178); -* номер документа основания для коррекции (тег ФФД 1179); -* описание коррекции (тег ФФД 1177). +* номер документа основания для коррекции (тег ФФД 1179). Указать эти атрибуты можно двумя способами: @@ -26,14 +25,12 @@ $info = new CorrectionInfo( CorrectionTypes::SELF, // тип коррекции '01.01.2019', // дата документа коррекции '12345', // номер документа коррекции - 'test' // описание коррекции ); // 2 способ - через сеттеры $info = (new CorrectionInfo()) ->setType(CorrectionTypes::INSTRUCTION) ->setDate('01.01.2019') - ->setName('test') ->setNumber('9999'); // либо комбинация этих способов @@ -44,7 +41,6 @@ $info = (new CorrectionInfo()) ```php $info->getType(); $info->getDate(); -$info->getName(); $info->getNumber(); ``` diff --git a/docs/monitoring.md b/docs/monitoring.md new file mode 100644 index 0000000..9addf52 --- /dev/null +++ b/docs/monitoring.md @@ -0,0 +1,103 @@ +# Мониторинг ККТ + +[Вернуться к содержанию](readme.md) + +--- + +Библиотека предоставляет возможность следить за состоянием ваших облачных ККТ через API. + +## Инициализация + +Для этого следует использовать класс `KktMonitor`: + +```php +// можно передать параметры подключения в конструктор +$monitor = new AtolOnline\Api\KktMonitor( + login: 'mylogin', + password: 'qwerty' +); + +// можно - отдельными сеттерами +$monitor = new AtolOnline\Api\KktMonitor(); + ->setLogin($credentials['login']) + ->setPassword($credentials['password']); +``` + +Логин и пароль для мониторинга те же, что для регистрации документов. + +**По умолчанию монитор работает в тестовом режиме.** +Перевести его в боевой режим можно: + +```php +// передачей в конструктор `false` первым параметром: +$monitor = new AtolOnline\Api\KktMonitor(false, /*...*/); + +// или отдельным сеттером +$monitor->setTestMode(false); +``` + +**Тестовый режим** нужен для проверки работоспособности библиотеки и API АТОЛ. + +**В боевом режиме** можно получать данные по своим ККТ. + +## Получение данных обо всех своих ККТ + +Для получения данных обо всех своих ККТ следует вызвать метод `AtolOnline\Api\KktMonitor::getAll()`: + +```php +$kkts = $monitor->getAll(); +``` + +В ответе будет итерируемая коллекция объектов `AtolOnline\Entities\Kkt`. Каждый из этих объектов содержит атрибуты: + +```php +// для примера получим первую ККТ из всех +$kkt = $kkts->first(); + +// посмотрим на её атрибуты: +$kkt->serialNumber; // Заводской номер ККТ +$kkt->registrationNumber; // Регистрационный номер машины (РНМ) +$kkt->deviceNumber; // Номер автоматического устройства (внутренний идентификатор устройства) +$kkt->fiscalizationDate; // Дата активации (фискализации) ФН с указанием таймзоны +$kkt->fiscalStorageExpiration; // Дата замены ФН (Срок действия ФН), с указанием таймзоны +$kkt->signedDocuments; // Количество подписанных документов в ФН +$kkt->fiscalStoragePercentageUse; // Наполненость ФН в % +$kkt->fiscalStorageINN; // ИНН компании (указанный в ФН) +$kkt->fiscalStorageSerialNumber; // Заводской (серийный) номер ФН +$kkt->fiscalStoragePaymentAddress; // Адрес расчёта, указанный в ФН +$kkt->groupCode; // Код группы кассы +$kkt->timestamp; // Время и дата формирования данных, UTC +$kkt->isShiftOpened; // Признак открыта смена (true) или закрыта (false) +$kkt->shiftNumber; // Номер смены (или "Номер закрытой смены", когда смена закрыта) +$kkt->shiftReceipt; // Номер документа за смену (или "Кол-во чеков закрытой смены", когда смена закрыта) +$kkt->unsentDocs; // Количество неотправленных документов. Указывается, если значение отлично от 0. +$kkt->firstUnsetDocTimestamp; // Дата первого неотправленного документа. Указывается, если есть неотправленные документы. +$kkt->networkErrorCode; // Код ошибки сети +``` + +Эти поля описаны в документации мониторинга на [стр. 11](https://online.atol.ru/files/API_service_information.pdf) + +Сопоставления кодов ошибок и их описаний доступны в массиве `AtolOnline\Entities\Kkt::ERROR_CODES`. + +## Получение данных об одной из своих ККТ + +Для этого следует вызвать метод `AtolOnline\Api\KktMonitor::getOne()`, передав на вход серийный номер (`serialNumber`) +нужной ККТ: + +```php +$kkt = $monitor->getOne($kkts->first()->serialNumber); +``` + +Метод вернёт единственный объект `AtolOnline\Entities\Kkt` с атрибутами, описанными выше. + +## Получение последнего ответа от сервера + +Класс `AtolOnline\Api\KktMonitor` расширяет абстрактный класс `AtolOnline\Api\AtolClient`. + +Это значит, что последний ответ от API АТОЛ всегда сохраняется объектом класса `AtolOnline\Api\KktResponse`. К нему +можно обратиться через метод `AtolOnline\Api\KktMonitor::getResponse()`, независимо от того, что возвращают другие +методы монитора. + +--- + +[Вернуться к содержанию](readme.md) \ No newline at end of file diff --git a/docs/readme.md b/docs/readme.md index 0887090..3375be6 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -1,4 +1,4 @@ -# Документация к библиотеке atol-online +# Документация к библиотеке Содержание: 1. [Работа с клиентами (покупателями)](client.md) @@ -9,7 +9,8 @@ 6. [Работа с данными коррекции](correction_info.md) 7. [Работа с документами](documents.md) 8. [Работа с ККТ](kkt.md) +9. [Мониторинг ККТ](monitoring.md) --- -Если вы нашли опечатку или какое-то несоответствие — делайте pull-request. +Если вы нашли опечатку или какое-то несоответствие — делайте pull-request.