mirror of
https://github.com/anthonyaxenov/atol-online.git
synced 2024-11-25 16:24:07 +00:00
Исправил обратно неисправную проверку количеств в массивах, удалил лишние исключения. Это была плохая идея.
This commit is contained in:
parent
7aa0d1ebb0
commit
aee25a993b
@ -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);
|
||||
if ((!empty($items) && count($items) >= self::MAX_COUNT) || count($this->items) >= self::MAX_COUNT) {
|
||||
throw new AtolTooManyItemsException(self::MAX_COUNT);
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверяет количество элементов в указанном массиве
|
||||
*
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
$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);
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверяет количество элементов в указанном массиве
|
||||
*
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
$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);
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверяет количество элементов в указанном массиве
|
||||
*
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Антон Аксенов (aka Anthony Axenov)
|
||||
*
|
||||
* This code is licensed under MIT.
|
||||
* Этот код распространяется по лицензии MIT.
|
||||
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее в случае если предметов расчёта в массиве слишком мало
|
||||
*
|
||||
* @package AtolOnline\Exceptions
|
||||
*/
|
||||
class AtolTooFewItemsException extends AtolException
|
||||
{
|
||||
/**
|
||||
* AtolTooFewItemsException constructor.
|
||||
*
|
||||
* @param int $min
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
*/
|
||||
public function __construct($min, $message = "", $code = 0, Throwable $previous = null)
|
||||
{
|
||||
$message = $message ?: 'Слишком мало предметов расчёта (мин. '.$min.')';
|
||||
parent::__construct($message, $code, $previous);
|
||||
}
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Антон Аксенов (aka Anthony Axenov)
|
||||
*
|
||||
* This code is licensed under MIT.
|
||||
* Этот код распространяется по лицензии MIT.
|
||||
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее в случае если платежей в массиве слишком мало
|
||||
*
|
||||
* @package AtolOnline\Exceptions
|
||||
*/
|
||||
class AtolTooFewPaymentsException extends AtolException
|
||||
{
|
||||
/**
|
||||
* AtolTooFewPaymentsException constructor.
|
||||
*
|
||||
* @param int $min
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
*/
|
||||
public function __construct($min, $message = "", $code = 0, Throwable $previous = null)
|
||||
{
|
||||
$message = $message ?: 'Слишком много платежей (мин. '.$min.')';
|
||||
parent::__construct($message, $code, $previous);
|
||||
}
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright (c) Антон Аксенов (aka Anthony Axenov)
|
||||
*
|
||||
* This code is licensed under MIT.
|
||||
* Этот код распространяется по лицензии MIT.
|
||||
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
namespace AtolOnline\Exceptions;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Исключение, возникающее в случае если ставок НДС в массиве слишком мало
|
||||
*
|
||||
* @package AtolOnline\Exceptions
|
||||
*/
|
||||
class AtolTooFewVatsException extends AtolException
|
||||
{
|
||||
/**
|
||||
* AtolTooFewVatsException constructor.
|
||||
*
|
||||
* @param int $min
|
||||
* @param string $message
|
||||
* @param int $code
|
||||
* @param Throwable|null $previous
|
||||
*/
|
||||
public function __construct($min, $message = "", $code = 0, Throwable $previous = null)
|
||||
{
|
||||
$message = $message ?: 'Слишком мало ставок НДС (мин. '.$min.')';
|
||||
parent::__construct($message, $code, $previous);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user