From b499d998e304f821e738aa92ecaafb6fd8865054 Mon Sep 17 00:00:00 2001 From: AnthonyAxenov Date: Thu, 16 Apr 2020 21:46:02 +0800 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B8=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BA=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=B2=D0=B0=20=D0=BF=D1=80=D0=B5=D0=B4=D0=BC=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=20=D1=80=D0=B0=D1=81=D1=87=D1=91=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AtolOnline/Entities/ItemArray.php | 36 +++++++++++++++++++-------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/src/AtolOnline/Entities/ItemArray.php b/src/AtolOnline/Entities/ItemArray.php index 151ec79..5faebbb 100644 --- a/src/AtolOnline/Entities/ItemArray.php +++ b/src/AtolOnline/Entities/ItemArray.php @@ -98,25 +98,39 @@ class ItemArray extends AtolEntity } /** - * Проверяет количество элементов в массиве + * Проверяет количество предметов расчёта * * @param array|null $items Если передать массив, то проверит количество его элементов. * Иначе проверит количество уже присвоенных элементов. - * @return bool + * @return bool true если всё хорошо, иначе выбрасывает исключение * @throws \AtolOnline\Exceptions\AtolTooFewItemsException Слишком мало предметов расчёта * @throws \AtolOnline\Exceptions\AtolTooManyItemsException Слишком много предметов расчёта */ protected function validateCount(array $items = null) { - if (!empty($is_items) && is_array($items)) { - if (count($items) < SellSchema::get()->receipt->properties->items->minItems) { - throw new AtolTooFewItemsException(SellSchema::get()->receipt->properties->items->minItems); - } elseif (count($items) <= self::MAX_COUNT) { // maxItems отстутствует в схеме sell - return true; - } - } elseif (count($this->items) > self::MAX_COUNT) { - throw new AtolTooManyItemsException(self::MAX_COUNT); + return empty($items) + ? $this->checkCount($this->items) + : $this->checkCount($items); + } + + /** + * Проверяет количество элементов в указанном массиве + * + * @param array|null $items + * @return bool true если всё хорошо, иначе выбрасывает исключение + * @throws \AtolOnline\Exceptions\AtolTooFewItemsException Слишком мало предметов расчёта + * @throws \AtolOnline\Exceptions\AtolTooManyItemsException Слишком много предметов расчёта + */ + protected function checkCount(?array $items = null) + { + $min_count = SellSchema::get()->receipt->properties->items->minItems; + $max_count = self::MAX_COUNT; // maxItems отстутствует в схеме sell + if (empty($items) || count($items) < $min_count) { + throw new AtolTooFewItemsException($min_count); + } elseif (count($items) >= $max_count) { + throw new AtolTooManyItemsException($max_count); + } else { + return true; } - return false; } } \ No newline at end of file