diff --git a/src/AtolOnline/Entities/ItemArray.php b/src/AtolOnline/Entities/ItemArray.php index 0b2eaa9..55d82cd 100644 --- a/src/AtolOnline/Entities/ItemArray.php +++ b/src/AtolOnline/Entities/ItemArray.php @@ -9,8 +9,6 @@ namespace AtolOnline\Entities; -use AtolOnline\Api\SellSchema; -use AtolOnline\Exceptions\AtolTooFewItemsException; use AtolOnline\Exceptions\AtolTooManyItemsException; /** @@ -36,7 +34,6 @@ class ItemArray extends Entity * ItemArray constructor. * * @param Item[]|null $items Массив предметов расчёта - * @throws AtolTooFewItemsException Слишком мало предметов расчёта * @throws AtolTooManyItemsException Слишком много предметов расчёта */ public function __construct(?array $items = null) @@ -51,7 +48,6 @@ class ItemArray extends Entity * * @param Item[] $items Массив предметов расчёта * @return $this - * @throws AtolTooFewItemsException Слишком мало предметов расчёта * @throws AtolTooManyItemsException Слишком много предметов расчёта */ public function set(array $items) @@ -67,7 +63,6 @@ class ItemArray extends Entity * * @param Item $item Объект предмета расчёта * @return $this - * @throws AtolTooFewItemsException Слишком мало предметов расчёта * @throws AtolTooManyItemsException Слишком много предметов расчёта */ public function add(Item $item) @@ -106,34 +101,13 @@ class ItemArray extends Entity * @param Item[]|null $items Если передать массив, то проверит количество его элементов. * Иначе проверит количество уже присвоенных элементов. * @return bool true если всё хорошо, иначе выбрасывает исключение - * @throws AtolTooFewItemsException Слишком мало предметов расчёта * @throws AtolTooManyItemsException Слишком много предметов расчёта */ - protected function validateCount(?array $items = null) + protected function validateCount(?array $items = null): bool { - return empty($items) - ? $this->checkCount($this->items) - : $this->checkCount($items); - } - - /** - * Проверяет количество элементов в указанном массиве - * - * @param array|null $elements - * @return bool true если всё хорошо, иначе выбрасывает исключение - * @throws AtolTooFewItemsException Слишком мало предметов расчёта - * @throws AtolTooManyItemsException Слишком много предметов расчёта - */ - protected function checkCount(?array $elements = null) - { - $min_count = SellSchema::get()->receipt->properties->items->minItems; - $max_count = self::MAX_COUNT; // maxItems отсутствует в схеме sell - if (empty($elements) || count($elements) < $min_count) { - throw new AtolTooFewItemsException($min_count); - } elseif (count($elements) >= $max_count) { - throw new AtolTooManyItemsException($max_count); - } else { - return true; + if ((!empty($items) && count($items) >= self::MAX_COUNT) || count($this->items) >= self::MAX_COUNT) { + throw new AtolTooManyItemsException(self::MAX_COUNT); } + return true; } } \ No newline at end of file diff --git a/src/AtolOnline/Entities/PaymentArray.php b/src/AtolOnline/Entities/PaymentArray.php index 6d71bb8..27e9b7d 100644 --- a/src/AtolOnline/Entities/PaymentArray.php +++ b/src/AtolOnline/Entities/PaymentArray.php @@ -10,7 +10,6 @@ namespace AtolOnline\Entities; use AtolOnline\Api\SellSchema; -use AtolOnline\Exceptions\AtolTooFewPaymentsException; use AtolOnline\Exceptions\AtolTooManyPaymentsException; /** @@ -29,7 +28,6 @@ class PaymentArray extends Entity * ItemArray constructor. * * @param Payment[]|null $payments Массив оплат - * @throws AtolTooFewPaymentsException Слишком мало оплат * @throws AtolTooManyPaymentsException Слишком много оплат */ public function __construct(?array $payments = null) @@ -44,7 +42,6 @@ class PaymentArray extends Entity * * @param Payment[] $payments * @return $this - * @throws AtolTooFewPaymentsException Слишком мало оплат * @throws AtolTooManyPaymentsException Слишком много оплат */ public function set(array $payments) @@ -60,7 +57,6 @@ class PaymentArray extends Entity * * @param Payment $payment Объект оплаты * @return $this - * @throws AtolTooFewPaymentsException Слишком мало оплат * @throws AtolTooManyPaymentsException Слишком много оплат */ public function add(Payment $payment) @@ -99,34 +95,14 @@ class PaymentArray extends Entity * @param Payment[]|null $payments Если передать массив, то проверит количество его элементов. * Иначе проверит количество уже присвоенных элементов. * @return bool true если всё хорошо, иначе выбрасывает исключение - * @throws AtolTooFewPaymentsException Слишком мало оплат * @throws AtolTooManyPaymentsException Слишком много оплат */ - protected function validateCount(?array $payments = null) + protected function validateCount(?array $payments = null): bool { - return empty($payments) - ? $this->checkCount($this->payments) - : $this->checkCount($payments); - } - - /** - * Проверяет количество элементов в указанном массиве - * - * @param array $elements - * @return bool true если всё хорошо, иначе выбрасывает исключение - * @throws AtolTooFewPaymentsException Слишком мало оплат - * @throws AtolTooManyPaymentsException Слишком много оплат - */ - protected function checkCount(?array $elements = null) - { - $min_count = SellSchema::get()->receipt->properties->payments->minItems; - $max_count = SellSchema::get()->receipt->properties->payments->maxItems; - if (empty($elements) || count($elements) < $min_count) { - throw new AtolTooFewPaymentsException($min_count); - } elseif (count($elements) >= $max_count) { - throw new AtolTooManyPaymentsException($max_count); - } else { - return true; + $max_items = SellSchema::get()->properties->receipt->properties->payments->maxItems; + if ((!empty($payments) && count($payments) >= $max_items) || count($this->payments) >= $max_items) { + throw new AtolTooManyPaymentsException($max_items); } + return true; } } \ No newline at end of file diff --git a/src/AtolOnline/Entities/VatArray.php b/src/AtolOnline/Entities/VatArray.php index 2b15f48..3ad156c 100644 --- a/src/AtolOnline/Entities/VatArray.php +++ b/src/AtolOnline/Entities/VatArray.php @@ -10,7 +10,6 @@ namespace AtolOnline\Entities; use AtolOnline\Api\SellSchema; -use AtolOnline\Exceptions\AtolTooFewVatsException; use AtolOnline\Exceptions\AtolTooManyVatsException; /** @@ -29,7 +28,6 @@ class VatArray extends Entity * VatArray constructor. * * @param Vat[]|null $vats Массив ставок НДС - * @throws AtolTooFewVatsException Слишком мало ставок НДС * @throws AtolTooManyVatsException Слишком много ставок НДС */ public function __construct(?array $vats = null) @@ -44,7 +42,6 @@ class VatArray extends Entity * * @param Vat[] $vats Массив ставок НДС * @return $this - * @throws AtolTooFewVatsException Слишком мало ставок НДС * @throws AtolTooManyVatsException Слишком много ставок НДС */ public function set(array $vats) @@ -60,7 +57,6 @@ class VatArray extends Entity * * @param Vat $vat Объект ставки НДС * @return $this - * @throws AtolTooFewVatsException Слишком мало ставок НДС * @throws AtolTooManyVatsException Слишком много ставок НДС */ public function add(Vat $vat) @@ -99,34 +95,14 @@ class VatArray extends Entity * @param Vat[]|null $vats Если передать массив, то проверит количество его элементов. * Иначе проверит количество уже присвоенных элементов. * @return bool true если всё хорошо, иначе выбрасывает исключение - * @throws AtolTooFewVatsException Слишком мало ставок НДС * @throws AtolTooManyVatsException Слишком много ставок НДС */ - protected function validateCount(?array $vats = null) + protected function validateCount(?array $vats = null): bool { - return empty($vats) - ? $this->checkCount($this->vats) - : $this->checkCount($vats); - } - - /** - * Проверяет количество элементов в указанном массиве - * - * @param array|null $elements - * @return bool true если всё хорошо, иначе выбрасывает исключение - * @throws AtolTooFewVatsException Слишком мало ставок НДС - * @throws AtolTooManyVatsException Слишком много ставок НДС - */ - protected function checkCount(?array $elements = null) - { - $min_count = SellSchema::get()->receipt->properties->vats->minItems; - $max_count = SellSchema::get()->receipt->properties->vats->maxItems; - if (empty($elements) || count($elements) < $min_count) { - throw new AtolTooFewVatsException($min_count); - } elseif (count($elements) >= $max_count) { - throw new AtolTooManyVatsException($max_count); - } else { - return true; + $max_items = SellSchema::get()->properties->receipt->properties->vats->maxItems; + if ((!empty($vats) && count($vats) >= $max_items) || count($this->vats) >= $max_items) { + throw new AtolTooManyVatsException($max_items); } + return true; } } \ No newline at end of file diff --git a/src/AtolOnline/Exceptions/AtolTooFewItemsException.php b/src/AtolOnline/Exceptions/AtolTooFewItemsException.php deleted file mode 100644 index eb6e6a3..0000000 --- a/src/AtolOnline/Exceptions/AtolTooFewItemsException.php +++ /dev/null @@ -1,34 +0,0 @@ -