From c14b680be4f5e208d3a0a2b72e36be0acdead2ce Mon Sep 17 00:00:00 2001 From: AnthonyAxenov Date: Mon, 1 Jun 2020 04:12:23 +0800 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B1=D1=80=D0=BE=D1=81=20ex?= =?UTF-8?q?ternal=5Fid=20=D0=BD=D0=B0=20=D1=80=D0=B5=D0=B3=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=B0=D1=86=D0=B8=D1=8E=20=D0=B4=D0=BE=D0=BA=D1=83?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AtolOnline/Api/Kkt.php | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/AtolOnline/Api/Kkt.php b/src/AtolOnline/Api/Kkt.php index 72017f9..c699d54 100644 --- a/src/AtolOnline/Api/Kkt.php +++ b/src/AtolOnline/Api/Kkt.php @@ -222,104 +222,115 @@ class Kkt extends Client * Регистрирует документ прихода * * @param \AtolOnline\Entities\Document $document + * @param string|null $external_id Уникальный код документа (если не указан, то будет создан UUID) * @return \AtolOnline\Api\KktResponse * @throws \AtolOnline\Exceptions\AtolWrongDocumentTypeException Некорректный тип документа * @throws \AtolOnline\Exceptions\AtolCorrectionInfoException В документе есть данные коррекции + * @throws \GuzzleHttp\Exception\GuzzleException */ - public function sell(Document $document) + public function sell(Document $document, ?string $external_id = null) { if ($document->getCorrectionInfo()) { throw new AtolCorrectionInfoException('Некорректная операция над документом коррекции'); } - return $this->registerDocument('sell', 'receipt', $document); + return $this->registerDocument('sell', 'receipt', $document, $external_id); } /** * Регистрирует документ возврата прихода * * @param \AtolOnline\Entities\Document $document + * @param string|null $external_id Уникальный код документа (если не указан, то будет создан UUID) * @return \AtolOnline\Api\KktResponse * @throws \AtolOnline\Exceptions\AtolPriceTooHighException Слишком большая сумма * @throws \AtolOnline\Exceptions\AtolTooManyVatsException Слишком много ставок НДС * @throws \AtolOnline\Exceptions\AtolWrongDocumentTypeException Некорректный тип документа * @throws \AtolOnline\Exceptions\AtolCorrectionInfoException В документе есть данные коррекции */ - public function sellRefund(Document $document) + public function sellRefund(Document $document, ?string $external_id = null) { if ($document->getCorrectionInfo()) { throw new AtolCorrectionInfoException('Некорректная операция над документом коррекции'); } - return $this->registerDocument('sell_refund', 'receipt', $document->clearVats()); + return $this->registerDocument('sell_refund', 'receipt', $document->clearVats(), $external_id); } /** * Регистрирует документ коррекции прихода * * @param \AtolOnline\Entities\Document $document + * @param string|null $external_id Уникальный код документа (если не указан, то будет создан UUID) * @return \AtolOnline\Api\KktResponse * @throws \AtolOnline\Exceptions\AtolWrongDocumentTypeException Некорректный тип документа * @throws \AtolOnline\Exceptions\AtolCorrectionInfoException В документе отсутствуют данные коррекции * @throws \AtolOnline\Exceptions\AtolTooManyItemsException Слишком много предметов расчёта + * @throws \GuzzleHttp\Exception\GuzzleException */ - public function sellCorrection(Document $document) + public function sellCorrection(Document $document, ?string $external_id = null) { if (!$document->getCorrectionInfo()) { throw new AtolCorrectionInfoException(); } $document->setClient(null)->setItems([]); - return $this->registerDocument('sell_correction', 'correction', $document); + return $this->registerDocument('sell_correction', 'correction', $document, $external_id); } /** * Регистрирует документ расхода * * @param \AtolOnline\Entities\Document $document + * @param string|null $external_id Уникальный код документа (если не указан, то будет создан UUID) * @return \AtolOnline\Api\KktResponse * @throws \AtolOnline\Exceptions\AtolWrongDocumentTypeException Некорректный тип документа * @throws \AtolOnline\Exceptions\AtolCorrectionInfoException В документе есть данные коррекции + * @throws \GuzzleHttp\Exception\GuzzleException */ - public function buy(Document $document) + public function buy(Document $document, ?string $external_id = null) { if ($document->getCorrectionInfo()) { throw new AtolCorrectionInfoException('Некорректная операция над документом коррекции'); } - return $this->registerDocument('buy', 'receipt', $document); + return $this->registerDocument('buy', 'receipt', $document, $external_id); } /** * Регистрирует документ возврата расхода * * @param \AtolOnline\Entities\Document $document + * @param string|null $external_id Уникальный код документа (если не указан, то будет создан UUID) * @return \AtolOnline\Api\KktResponse * @throws \AtolOnline\Exceptions\AtolPriceTooHighException Слишком большая сумма * @throws \AtolOnline\Exceptions\AtolTooManyVatsException Слишком много ставок НДС * @throws \AtolOnline\Exceptions\AtolWrongDocumentTypeException Некорректный тип документа * @throws \AtolOnline\Exceptions\AtolCorrectionInfoException В документе есть данные коррекции + * @throws \GuzzleHttp\Exception\GuzzleException */ - public function buyRefund(Document $document) + public function buyRefund(Document $document, ?string $external_id = null) { if ($document->getCorrectionInfo()) { throw new AtolCorrectionInfoException('Некорректная операция над документом коррекции'); } - return $this->registerDocument('buy_refund', 'receipt', $document->clearVats()); + return $this->registerDocument('buy_refund', 'receipt', $document->clearVats(), $external_id); } /** * Регистрирует документ коррекции расхода * - * @param Document $document + * @param Document $document + * @param string|null $external_id Уникальный код документа (если не указан, то будет создан UUID) * @return \AtolOnline\Api\KktResponse * @throws \AtolOnline\Exceptions\AtolWrongDocumentTypeException Некорректный тип документа * @throws \AtolOnline\Exceptions\AtolCorrectionInfoException В документе отсутствуют данные коррекции * @throws \AtolOnline\Exceptions\AtolTooManyItemsException Слишком много предметов расчёта + * @throws \GuzzleHttp\Exception\GuzzleException */ - public function buyCorrection(Document $document) + public function buyCorrection(Document $document, ?string $external_id = null) { if (!$document->getCorrectionInfo()) { throw new AtolCorrectionInfoException(); } $document->setClient(null)->setItems([]); - return $this->registerDocument('buy_correction', 'correction', $document); + return $this->registerDocument('buy_correction', 'correction', $document, $external_id); } /**