mirror of
https://github.com/anthonyaxenov/atol-online.git
synced 2024-11-22 19:44:34 +00:00
Merge branch 'dev'. Мнда, я забыл слить изменения...
This commit is contained in:
commit
3385420005
@ -11,10 +11,10 @@ namespace AtolOnline\Api;
|
|||||||
|
|
||||||
use AtolOnline\{Entities\Document,
|
use AtolOnline\{Entities\Document,
|
||||||
Exceptions\AtolCorrectionInfoException,
|
Exceptions\AtolCorrectionInfoException,
|
||||||
|
Exceptions\AtolInvalidUuidException,
|
||||||
Exceptions\AtolKktLoginEmptyException,
|
Exceptions\AtolKktLoginEmptyException,
|
||||||
Exceptions\AtolKktLoginTooLongException,
|
Exceptions\AtolKktLoginTooLongException,
|
||||||
Exceptions\AtolKktPasswordEmptyException,
|
Exceptions\AtolKktPasswordEmptyException,
|
||||||
Exceptions\AtolUuidValidateException,
|
|
||||||
Exceptions\AtolWrongDocumentTypeException
|
Exceptions\AtolWrongDocumentTypeException
|
||||||
};
|
};
|
||||||
use GuzzleHttp\Client;
|
use GuzzleHttp\Client;
|
||||||
@ -327,13 +327,13 @@ class Kkt extends Client
|
|||||||
*
|
*
|
||||||
* @param string $uuid UUID регистрации
|
* @param string $uuid UUID регистрации
|
||||||
* @return \AtolOnline\Api\KktResponse
|
* @return \AtolOnline\Api\KktResponse
|
||||||
* @throws \AtolOnline\Exceptions\AtolUuidValidateException Некорректный UUID документа
|
* @throws \AtolOnline\Exceptions\AtolInvalidUuidException Некорректный UUID документа
|
||||||
*/
|
*/
|
||||||
public function getDocumentStatus(string $uuid)
|
public function getDocumentStatus(string $uuid)
|
||||||
{
|
{
|
||||||
$uuid = trim($uuid);
|
$uuid = trim($uuid);
|
||||||
if (!Uuid::isValid($uuid)) {
|
if (!Uuid::isValid($uuid)) {
|
||||||
throw new AtolUuidValidateException($uuid);
|
throw new AtolInvalidUuidException($uuid);
|
||||||
}
|
}
|
||||||
$this->auth();
|
$this->auth();
|
||||||
return $this->sendAtolRequest('GET', 'report/'.$uuid);
|
return $this->sendAtolRequest('GET', 'report/'.$uuid);
|
||||||
|
@ -10,6 +10,8 @@
|
|||||||
namespace AtolOnline\Entities;
|
namespace AtolOnline\Entities;
|
||||||
|
|
||||||
use AtolOnline\Exceptions\AtolCashierTooLongException;
|
use AtolOnline\Exceptions\AtolCashierTooLongException;
|
||||||
|
use AtolOnline\Exceptions\AtolException;
|
||||||
|
use AtolOnline\Exceptions\AtolInvalidJsonException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Класс, описывающий документ
|
* Класс, описывающий документ
|
||||||
@ -60,10 +62,6 @@ class Document extends Entity
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Document constructor.
|
* Document constructor.
|
||||||
*
|
|
||||||
* @throws \AtolOnline\Exceptions\AtolTooManyItemsException Слишком много предметов расчёта
|
|
||||||
* @throws \AtolOnline\Exceptions\AtolTooManyPaymentsException Слишком много оплат
|
|
||||||
* @throws \AtolOnline\Exceptions\AtolTooManyVatsException Слишком много ставок НДС
|
|
||||||
*/
|
*/
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
@ -82,10 +80,6 @@ class Document extends Entity
|
|||||||
public function clearVats()
|
public function clearVats()
|
||||||
{
|
{
|
||||||
$this->setVats([]);
|
$this->setVats([]);
|
||||||
foreach ($this->getItems() as &$item) {
|
|
||||||
$item->setVatType(null);
|
|
||||||
}
|
|
||||||
$this->calcTotal();
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,11 +92,7 @@ class Document extends Entity
|
|||||||
*/
|
*/
|
||||||
public function addVat(Vat $vat)
|
public function addVat(Vat $vat)
|
||||||
{
|
{
|
||||||
if (count($this->getVats()) == 0 && !$vat->getSum()) {
|
|
||||||
$vat->setSum($this->calcTotal());
|
|
||||||
}
|
|
||||||
$this->vats->add($vat);
|
$this->vats->add($vat);
|
||||||
$this->calcTotal();
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,7 +117,6 @@ class Document extends Entity
|
|||||||
public function setVats(array $vats)
|
public function setVats(array $vats)
|
||||||
{
|
{
|
||||||
$this->vats->set($vats);
|
$this->vats->set($vats);
|
||||||
$this->calcTotal();
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -271,8 +260,8 @@ class Document extends Entity
|
|||||||
public function setCashier(?string $cashier)
|
public function setCashier(?string $cashier)
|
||||||
{
|
{
|
||||||
$cashier = trim($cashier);
|
$cashier = trim($cashier);
|
||||||
if (strlen($cashier) > 64) {
|
if ((function_exists('mb_strlen') ? mb_strlen($cashier) : strlen($cashier)) > 64) {
|
||||||
throw new AtolCashierTooLongException($cashier);
|
throw new AtolCashierTooLongException($cashier, 64);
|
||||||
}
|
}
|
||||||
$this->cashier = $cashier;
|
$this->cashier = $cashier;
|
||||||
return $this;
|
return $this;
|
||||||
@ -309,11 +298,10 @@ class Document extends Entity
|
|||||||
public function calcTotal()
|
public function calcTotal()
|
||||||
{
|
{
|
||||||
$sum = 0;
|
$sum = 0;
|
||||||
|
$this->clearVats();
|
||||||
foreach ($this->items->get() as $item) {
|
foreach ($this->items->get() as $item) {
|
||||||
$sum += $item->calcSum();
|
$sum += $item->calcSum();
|
||||||
}
|
$this->addVat(new Vat($item->getVat()->getType(), $item->getSum()));
|
||||||
foreach ($this->vats->get() as $vat) {
|
|
||||||
$vat->setSum($sum);
|
|
||||||
}
|
}
|
||||||
return $this->total = round($sum, 2);
|
return $this->total = round($sum, 2);
|
||||||
}
|
}
|
||||||
@ -329,7 +317,89 @@ class Document extends Entity
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* Собирает объект документа из сырой json-строки
|
||||||
|
*
|
||||||
|
* @param string $json
|
||||||
|
* @return \AtolOnline\Entities\Document
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolEmailTooLongException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolEmailValidateException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolInnWrongLengthException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolInvalidJsonException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolNameTooLongException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolPaymentAddressTooLongException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolPhoneTooLongException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolPriceTooHighException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolTooManyException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolTooManyItemsException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolTooManyPaymentsException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolUnitTooLongException
|
||||||
|
* @throws \AtolOnline\Exceptions\AtolUserdataTooLongException
|
||||||
|
*/
|
||||||
|
public static function fromRaw(string $json)
|
||||||
|
{
|
||||||
|
$object = json_decode($json);
|
||||||
|
if (json_last_error() !== JSON_ERROR_NONE) {
|
||||||
|
throw new AtolInvalidJsonException();
|
||||||
|
}
|
||||||
|
$doc = new self();
|
||||||
|
if ($object->company) {
|
||||||
|
$doc->setCompany(new Company(
|
||||||
|
$object->company->sno ?? null,
|
||||||
|
$object->company->inn ?? null,
|
||||||
|
$object->company->payment_address ?? null,
|
||||||
|
$object->company->email ?? null
|
||||||
|
));
|
||||||
|
}
|
||||||
|
if ($object->client) {
|
||||||
|
$doc->setClient(new Client(
|
||||||
|
$object->client->name ?? null,
|
||||||
|
$object->client->phone ?? null,
|
||||||
|
$object->client->email ?? null,
|
||||||
|
$object->client->inn ?? null
|
||||||
|
));
|
||||||
|
}
|
||||||
|
if ($object->items) {
|
||||||
|
foreach ($object->items as $obj_item) {
|
||||||
|
$item = new Item(
|
||||||
|
$obj_item->name ?? null,
|
||||||
|
$obj_item->price ?? null,
|
||||||
|
$obj_item->quantity ?? null,
|
||||||
|
$obj_item->measurement_unit ?? null,
|
||||||
|
$obj_item->vat->type ?? null,
|
||||||
|
$obj_item->payment_object ?? null,
|
||||||
|
$obj_item->payment_method ?? null
|
||||||
|
);
|
||||||
|
if (!empty($obj_item->user_data)) {
|
||||||
|
$item->setUserData($obj_item->user_data ?? null);
|
||||||
|
}
|
||||||
|
$doc->addItem($item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($object->payments) {
|
||||||
|
foreach ($object->payments as $obj_payment) {
|
||||||
|
$doc->payments->add(new Payment(
|
||||||
|
$obj_payment->type,
|
||||||
|
$obj_payment->sum
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//if ($object->vats) {
|
||||||
|
// foreach ($object->vats as $obj_vat) {
|
||||||
|
// $doc->vats->add(new Vat(
|
||||||
|
// $obj_vat->type
|
||||||
|
// ));
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
if ($object->total != $doc->calcTotal()) {
|
||||||
|
throw new AtolException('Real total sum not equals to provided in JSON one');
|
||||||
|
}
|
||||||
|
return $doc;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает массив для кодирования в json
|
||||||
|
*
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function jsonSerialize()
|
public function jsonSerialize()
|
||||||
|
@ -11,11 +11,10 @@ namespace AtolOnline\Entities;
|
|||||||
|
|
||||||
use AtolOnline\{Exceptions\AtolNameTooLongException,
|
use AtolOnline\{Exceptions\AtolNameTooLongException,
|
||||||
Exceptions\AtolPriceTooHighException,
|
Exceptions\AtolPriceTooHighException,
|
||||||
Exceptions\AtolQuantityTooHighException,
|
Exceptions\AtolTooManyException,
|
||||||
Exceptions\AtolUnitTooLongException,
|
Exceptions\AtolUnitTooLongException,
|
||||||
Exceptions\AtolUserdataTooLongException,
|
Exceptions\AtolUserdataTooLongException,
|
||||||
Traits\RublesKopeksConverter
|
Traits\RublesKopeksConverter};
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Предмет расчёта (товар, услуга)
|
* Предмет расчёта (товар, услуга)
|
||||||
@ -83,7 +82,7 @@ class Item extends Entity
|
|||||||
* @param string|null $payment_method Способ расчёта
|
* @param string|null $payment_method Способ расчёта
|
||||||
* @throws AtolNameTooLongException Слишком длинное наименование
|
* @throws AtolNameTooLongException Слишком длинное наименование
|
||||||
* @throws AtolPriceTooHighException Слишком высокая цена за одну единицу
|
* @throws AtolPriceTooHighException Слишком высокая цена за одну единицу
|
||||||
* @throws AtolQuantityTooHighException Слишком большое количество
|
* @throws AtolTooManyException Слишком большое количество
|
||||||
* @throws AtolUnitTooLongException Слишком длинное название единицы измерения
|
* @throws AtolUnitTooLongException Слишком длинное название единицы измерения
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
@ -101,17 +100,17 @@ class Item extends Entity
|
|||||||
if ($price) {
|
if ($price) {
|
||||||
$this->setPrice($price);
|
$this->setPrice($price);
|
||||||
}
|
}
|
||||||
if ($payment_object) {
|
|
||||||
$this->setPaymentObject($payment_object);
|
|
||||||
}
|
|
||||||
if ($quantity) {
|
if ($quantity) {
|
||||||
$this->setQuantity($quantity);
|
$this->setQuantity($quantity);
|
||||||
}
|
}
|
||||||
|
if ($measurement_unit) {
|
||||||
|
$this->setMeasurementUnit($measurement_unit);
|
||||||
|
}
|
||||||
if ($vat_type) {
|
if ($vat_type) {
|
||||||
$this->setVatType($vat_type);
|
$this->setVatType($vat_type);
|
||||||
}
|
}
|
||||||
if ($measurement_unit) {
|
if ($payment_object) {
|
||||||
$this->setMeasurementUnit($measurement_unit);
|
$this->setPaymentObject($payment_object);
|
||||||
}
|
}
|
||||||
if ($payment_method) {
|
if ($payment_method) {
|
||||||
$this->setPaymentMethod($payment_method);
|
$this->setPaymentMethod($payment_method);
|
||||||
@ -188,7 +187,7 @@ class Item extends Entity
|
|||||||
* @param float $quantity Количество
|
* @param float $quantity Количество
|
||||||
* @param string|null $measurement_unit Единица измерения количества
|
* @param string|null $measurement_unit Единица измерения количества
|
||||||
* @return $this
|
* @return $this
|
||||||
* @throws AtolQuantityTooHighException Слишком большое количество
|
* @throws AtolTooManyException Слишком большое количество
|
||||||
* @throws AtolPriceTooHighException Слишком высокая общая стоимость
|
* @throws AtolPriceTooHighException Слишком высокая общая стоимость
|
||||||
* @throws AtolUnitTooLongException Слишком длинное название единицы измерения
|
* @throws AtolUnitTooLongException Слишком длинное название единицы измерения
|
||||||
*/
|
*/
|
||||||
@ -196,7 +195,7 @@ class Item extends Entity
|
|||||||
{
|
{
|
||||||
$quantity = round($quantity, 3);
|
$quantity = round($quantity, 3);
|
||||||
if ($quantity > 99999.999) {
|
if ($quantity > 99999.999) {
|
||||||
throw new AtolQuantityTooHighException($quantity, 99999.999);
|
throw new AtolTooManyException($quantity, 99999.999);
|
||||||
}
|
}
|
||||||
$this->quantity = $quantity;
|
$this->quantity = $quantity;
|
||||||
$this->calcSum();
|
$this->calcSum();
|
||||||
@ -226,7 +225,7 @@ class Item extends Entity
|
|||||||
public function setMeasurementUnit(string $measurement_unit)
|
public function setMeasurementUnit(string $measurement_unit)
|
||||||
{
|
{
|
||||||
$measurement_unit = trim($measurement_unit);
|
$measurement_unit = trim($measurement_unit);
|
||||||
if (strlen($measurement_unit) > 16) {
|
if ((function_exists('mb_strlen') ? mb_strlen($measurement_unit) : strlen($measurement_unit)) > 16) {
|
||||||
throw new AtolUnitTooLongException($measurement_unit, 16);
|
throw new AtolUnitTooLongException($measurement_unit, 16);
|
||||||
}
|
}
|
||||||
$this->measurement_unit = $measurement_unit;
|
$this->measurement_unit = $measurement_unit;
|
||||||
|
@ -26,12 +26,12 @@ class Vat extends Entity
|
|||||||
private $type;
|
private $type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int Сумма в копейках, от которой пересчитывается размер налога
|
* @var int Сумма в копейках, от которой пересчитывается размер НДС
|
||||||
*/
|
*/
|
||||||
private $sum_original = 0;
|
private $sum_original = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int Сумма налога в копейках
|
* @var int Сумма НДС в копейках
|
||||||
*/
|
*/
|
||||||
private $sum_final = 0;
|
private $sum_final = 0;
|
||||||
|
|
||||||
@ -66,18 +66,19 @@ class Vat extends Entity
|
|||||||
case VatTypes::VAT0:
|
case VatTypes::VAT0:
|
||||||
return 0;
|
return 0;
|
||||||
case VatTypes::VAT10:
|
case VatTypes::VAT10:
|
||||||
return $kopeks * 10 / 100;
|
//return $kopeks * 10 / 100;
|
||||||
case VatTypes::VAT110:
|
case VatTypes::VAT110:
|
||||||
return $kopeks * 10 / 110;
|
return $kopeks * 10 / 110;
|
||||||
case VatTypes::VAT18:
|
case VatTypes::VAT18:
|
||||||
return $kopeks * 18 / 100;
|
//return $kopeks * 18 / 100;
|
||||||
case VatTypes::VAT118:
|
case VatTypes::VAT118:
|
||||||
return $kopeks * 18 / 118;
|
return $kopeks * 18 / 118;
|
||||||
case VatTypes::VAT20:
|
case VatTypes::VAT20:
|
||||||
return $kopeks * 20 / 100;
|
//return $kopeks * 20 / 100;
|
||||||
case VatTypes::VAT120:
|
case VatTypes::VAT120:
|
||||||
return $kopeks * 20 / 120;
|
return $kopeks * 20 / 120;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,7 +62,11 @@ class VatArray extends Entity
|
|||||||
public function add(Vat $vat)
|
public function add(Vat $vat)
|
||||||
{
|
{
|
||||||
if ($this->validateCount()) {
|
if ($this->validateCount()) {
|
||||||
$this->vats[] = $vat;
|
if (isset($this->vats[$vat->getType()])) {
|
||||||
|
$this->vats[$vat->getType()]->addSum($vat->getSum());
|
||||||
|
} else {
|
||||||
|
$this->vats[$vat->getType()] = $vat;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@ -101,7 +105,7 @@ class VatArray extends Entity
|
|||||||
{
|
{
|
||||||
$max_items = SellSchema::get()->properties->receipt->properties->vats->maxItems;
|
$max_items = SellSchema::get()->properties->receipt->properties->vats->maxItems;
|
||||||
if ((!empty($vats) && count($vats) >= $max_items) || count($this->vats) >= $max_items) {
|
if ((!empty($vats) && count($vats) >= $max_items) || count($this->vats) >= $max_items) {
|
||||||
throw new AtolTooManyVatsException($max_items);
|
throw new AtolTooManyVatsException(count($vats), $max_items);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -9,26 +9,22 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать слишком длинное имя кассира
|
* Исключение, возникающее при попытке указать слишком длинное имя кассира
|
||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolCashierTooLongException extends AtolException
|
class AtolCashierTooLongException extends AtolTooLongException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolCashierTooLongException constructor.
|
* @inheritDoc
|
||||||
*
|
|
||||||
* @param $name
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($name, $message = "", $code = 0, Throwable $previous = null)
|
protected $ffd_tags = [
|
||||||
{
|
1021,
|
||||||
$message = $message ?: 'Слишком длинное имя кассира (макс. длина 64, фактически '.strlen($name).'): '.$name;
|
];
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
/**
|
||||||
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'Cashier name is too long';
|
||||||
}
|
}
|
@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке зарегистрировать документ без данных коррекции
|
* Исключение, возникающее при попытке зарегистрировать документ без данных коррекции
|
||||||
*
|
*
|
||||||
@ -19,15 +17,7 @@ use Throwable;
|
|||||||
class AtolCorrectionInfoException extends AtolException
|
class AtolCorrectionInfoException extends AtolException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolNoCorrectionInfoException constructor.
|
* @var string Сообщение об ошибке
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($message = "", $code = 0, Throwable $previous = null)
|
protected $message = 'Document must have correction info';
|
||||||
{
|
|
||||||
$message = $message ?: 'В документе отсутствуют данные коррекции';
|
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать пустой email
|
* Исключение, возникающее при попытке указать пустой email
|
||||||
*
|
*
|
||||||
@ -19,15 +17,15 @@ use Throwable;
|
|||||||
class AtolEmailEmptyException extends AtolException
|
class AtolEmailEmptyException extends AtolException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolEmailEmptyException constructor.
|
* @inheritDoc
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($message = "", $code = 0, Throwable $previous = null)
|
protected $ffd_tags = [
|
||||||
{
|
1008,
|
||||||
$message = $message ?: 'Email не может быть пустым';
|
1117,
|
||||||
parent::__construct($message, $code, $previous);
|
];
|
||||||
}
|
|
||||||
|
/**
|
||||||
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'Email cannot be empty';
|
||||||
}
|
}
|
@ -9,27 +9,23 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать слишком длинный email
|
* Исключение, возникающее при попытке указать слишком длинный email
|
||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolEmailTooLongException extends AtolException
|
class AtolEmailTooLongException extends AtolTooLongException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolEmailTooLongException constructor.
|
* @inheritDoc
|
||||||
*
|
|
||||||
* @param $email
|
|
||||||
* @param $max
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($email, $max, $message = "", $code = 0, Throwable $previous = null)
|
protected $ffd_tags = [
|
||||||
{
|
1008,
|
||||||
$message = $message ?: 'Слишком длинный email (макс. длина '.$max.', фактически '.strlen($email).'): '.$email;
|
1117,
|
||||||
parent::__construct($message, $code, $previous);
|
];
|
||||||
}
|
|
||||||
|
/**
|
||||||
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'Email is is too long';
|
||||||
}
|
}
|
@ -18,6 +18,14 @@ use Throwable;
|
|||||||
*/
|
*/
|
||||||
class AtolEmailValidateException extends AtolException
|
class AtolEmailValidateException extends AtolException
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
protected $ffd_tags = [
|
||||||
|
1008,
|
||||||
|
1117,
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AtolEmailValidateException constructor.
|
* AtolEmailValidateException constructor.
|
||||||
*
|
*
|
||||||
@ -28,7 +36,6 @@ class AtolEmailValidateException extends AtolException
|
|||||||
*/
|
*/
|
||||||
public function __construct($email, $message = "", $code = 0, Throwable $previous = null)
|
public function __construct($email, $message = "", $code = 0, Throwable $previous = null)
|
||||||
{
|
{
|
||||||
$message = $message ?: 'Некорректный email: '.$email;
|
parent::__construct($message ?: 'Invalid email: '.$email, $code, $previous);
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -10,6 +10,7 @@
|
|||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
|
use Throwable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при работе с АТОЛ Онлайн
|
* Исключение, возникающее при работе с АТОЛ Онлайн
|
||||||
@ -18,5 +19,33 @@ use Exception;
|
|||||||
*/
|
*/
|
||||||
class AtolException extends Exception
|
class AtolException extends Exception
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @var int[] Теги ФФД
|
||||||
|
*/
|
||||||
|
protected $ffd_tags = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AtolException constructor.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param int $code
|
||||||
|
* @param \Throwable|null $previous
|
||||||
|
*/
|
||||||
|
public function __construct($message = "", $code = 0, Throwable $previous = null)
|
||||||
|
{
|
||||||
|
if ($this->getFfdTags()) {
|
||||||
|
$message .= ' [FFD tags: '.implode(', ', $this->getFfdTags()).']';
|
||||||
|
}
|
||||||
|
parent::__construct($message, $code, $previous);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает теги ФФД, с которыми связано исключение
|
||||||
|
*
|
||||||
|
* @return array|null
|
||||||
|
*/
|
||||||
|
protected function getFfdTags(): ?array
|
||||||
|
{
|
||||||
|
return $this->ffd_tags;
|
||||||
|
}
|
||||||
}
|
}
|
@ -18,6 +18,16 @@ use Throwable;
|
|||||||
*/
|
*/
|
||||||
class AtolInnWrongLengthException extends AtolException
|
class AtolInnWrongLengthException extends AtolException
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
protected $ffd_tags = [
|
||||||
|
1016,
|
||||||
|
1018,
|
||||||
|
1226,
|
||||||
|
1228,
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AtolInnWrongLengthException constructor.
|
* AtolInnWrongLengthException constructor.
|
||||||
*
|
*
|
||||||
@ -28,7 +38,7 @@ class AtolInnWrongLengthException extends AtolException
|
|||||||
*/
|
*/
|
||||||
public function __construct($inn, $message = "", $code = 0, Throwable $previous = null)
|
public function __construct($inn, $message = "", $code = 0, Throwable $previous = null)
|
||||||
{
|
{
|
||||||
$message = $message ?: 'Длина ИНН должна быть 10 или 12 цифр, фактически '.strlen($inn).': '.$inn;
|
parent::__construct($message ?: 'INN length must be 10 or 12 digits only, but actual is '.
|
||||||
parent::__construct($message, $code, $previous);
|
(function_exists('mb_strlen') ? mb_strlen($inn) : strlen($inn)).')', $code, $previous);
|
||||||
}
|
}
|
||||||
}
|
}
|
32
src/AtolOnline/Exceptions/AtolInvalidJsonException.php
Normal file
32
src/AtolOnline/Exceptions/AtolInvalidJsonException.php
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Исключение, возникающее при работе с невалидным JSON
|
||||||
|
*
|
||||||
|
* @package AtolOnline\Exceptions
|
||||||
|
*/
|
||||||
|
class AtolInvalidJsonException extends AtolException
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* AtolInnWrongLengthException constructor.
|
||||||
|
*
|
||||||
|
* @param string $message
|
||||||
|
* @param int $code
|
||||||
|
* @param Throwable|null $previous
|
||||||
|
*/
|
||||||
|
public function __construct($message = "", $code = 0, Throwable $previous = null)
|
||||||
|
{
|
||||||
|
parent::__construct($message ?: 'Invalid JSON: ['.json_last_error().'] '.json_last_error_msg(), $code, $previous);
|
||||||
|
}
|
||||||
|
}
|
@ -16,10 +16,10 @@ use Throwable;
|
|||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolUuidValidateException extends AtolException
|
class AtolInvalidUuidException extends AtolException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolUuidValidateException constructor.
|
* AtolInvalidUuidException constructor.
|
||||||
*
|
*
|
||||||
* @param $uuid
|
* @param $uuid
|
||||||
* @param string $message
|
* @param string $message
|
||||||
@ -28,7 +28,6 @@ class AtolUuidValidateException extends AtolException
|
|||||||
*/
|
*/
|
||||||
public function __construct($uuid, $message = "", $code = 0, Throwable $previous = null)
|
public function __construct($uuid, $message = "", $code = 0, Throwable $previous = null)
|
||||||
{
|
{
|
||||||
$message = $message ?: 'Некорректный UUID: '.$uuid;
|
parent::__construct($message ?: 'Invalid UUID: '.$uuid, $code, $previous);
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать пустой логин ККТ
|
* Исключение, возникающее при попытке указать пустой логин ККТ
|
||||||
*
|
*
|
||||||
@ -19,15 +17,7 @@ use Throwable;
|
|||||||
class AtolKktLoginEmptyException extends AtolException
|
class AtolKktLoginEmptyException extends AtolException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolKktLoginEmptyException constructor.
|
* @var string Сообщение об ошибке
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($message = "", $code = 0, Throwable $previous = null)
|
protected $message = 'KKT login cannot be empty';
|
||||||
{
|
|
||||||
$message = $message ?: 'Логин ККТ не может быть пустым';
|
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -9,27 +9,15 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать слишком длинный логин ККТ
|
* Исключение, возникающее при попытке указать слишком длинный логин ККТ
|
||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolKktLoginTooLongException extends AtolException
|
class AtolKktLoginTooLongException extends AtolTooLongException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolKktLoginTooLongException constructor.
|
* @var string Сообщение об ошибке
|
||||||
*
|
|
||||||
* @param $login
|
|
||||||
* @param $max
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($login, $max, $message = "", $code = 0, Throwable $previous = null)
|
protected $message = 'KKT login is too long';
|
||||||
{
|
|
||||||
$message = $message ?: 'Слишком длинный логин ККТ (макс. длина '.$max.', фактически '.strlen($login).'): '.$login;
|
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать пустой пароль ККТ
|
* Исключение, возникающее при попытке указать пустой пароль ККТ
|
||||||
*
|
*
|
||||||
@ -19,15 +17,7 @@ use Throwable;
|
|||||||
class AtolKktPasswordEmptyException extends AtolException
|
class AtolKktPasswordEmptyException extends AtolException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolKktPasswordEmptyException constructor.
|
* @var string Сообщение об ошибке
|
||||||
*
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($message = "", $code = 0, Throwable $previous = null)
|
protected $message = 'KKT password cannot be empty';
|
||||||
{
|
|
||||||
$message = $message ?: 'Пароль ККТ не может быть пустым';
|
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -9,27 +9,26 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать слишком длинное имя
|
* Исключение, возникающее при попытке указать слишком длинное имя
|
||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolNameTooLongException extends AtolException
|
class AtolNameTooLongException extends AtolTooLongException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolNameTooLongException constructor.
|
* @inheritDoc
|
||||||
*
|
|
||||||
* @param $name
|
|
||||||
* @param $max
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($name, $max, $message = "", $code = 0, Throwable $previous = null)
|
protected $ffd_tags = [
|
||||||
{
|
1026,
|
||||||
$message = $message ?: 'Слишком длинное имя/наименование (макс. длина '.$max.', фактически '.strlen($name).'): '.$name;
|
1030,
|
||||||
parent::__construct($message, $code, $previous);
|
1085,
|
||||||
}
|
1225,
|
||||||
|
1227,
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'Name is too long';
|
||||||
}
|
}
|
@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать слишком длинный платёжный адрес
|
* Исключение, возникающее при попытке указать слишком длинный платёжный адрес
|
||||||
*
|
*
|
||||||
@ -19,17 +17,14 @@ use Throwable;
|
|||||||
class AtolPaymentAddressTooLongException extends AtolException
|
class AtolPaymentAddressTooLongException extends AtolException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolPaymentAddressTooLongException constructor.
|
* @inheritDoc
|
||||||
*
|
|
||||||
* @param $address
|
|
||||||
* @param $max
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($address, $max, $message = "", $code = 0, Throwable $previous = null)
|
protected $ffd_tags = [
|
||||||
{
|
1187,
|
||||||
$message = $message ?: 'Слишком длинный адрес (макс. длина '.$max.', фактически '.strlen($address).'): '.$address;
|
];
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
/**
|
||||||
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'Payment address is too long';
|
||||||
}
|
}
|
@ -9,27 +9,26 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать слишком длинный телефон
|
* Исключение, возникающее при попытке указать слишком длинный телефон
|
||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolPhoneTooLongException extends AtolException
|
class AtolPhoneTooLongException extends AtolTooLongException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolPhoneTooLongException constructor.
|
* @inheritDoc
|
||||||
*
|
|
||||||
* @param $phone
|
|
||||||
* @param $max
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($phone, $max, $message = "", $code = 0, Throwable $previous = null)
|
protected $ffd_tags = [
|
||||||
{
|
1008,
|
||||||
$message = $message ?: 'Слишком длинный телефон (макс. длина '.$max.', фактически '.strlen($phone).'): '.$phone;
|
1073,
|
||||||
parent::__construct($message, $code, $previous);
|
1074,
|
||||||
}
|
1075,
|
||||||
|
1171,
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'Phone is too long';
|
||||||
}
|
}
|
@ -9,27 +9,22 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать слишком высокую цену (сумму)
|
* Исключение, возникающее при попытке указать слишком высокую цену (сумму)
|
||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolPriceTooHighException extends AtolException
|
class AtolPriceTooHighException extends AtolTooManyException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolPriceTooHighException constructor.
|
* @inheritDoc
|
||||||
*
|
|
||||||
* @param $price
|
|
||||||
* @param $max
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($price, $max, $message = "", $code = 0, Throwable $previous = null)
|
protected $ffd_tags = [
|
||||||
{
|
1079,
|
||||||
$message = $message ?: 'Слишком большая сумма (макс. '.$max.'): '.$price;
|
];
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
/**
|
||||||
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'Price is too high';
|
||||||
}
|
}
|
40
src/AtolOnline/Exceptions/AtolTooLongException.php
Normal file
40
src/AtolOnline/Exceptions/AtolTooLongException.php
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<?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 AtolTooLongException extends AtolException
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'Parameter is too long';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AtolTooLongException constructor.
|
||||||
|
*
|
||||||
|
* @param $string
|
||||||
|
* @param $max
|
||||||
|
* @param string $message
|
||||||
|
* @param int $code
|
||||||
|
* @param Throwable|null $previous
|
||||||
|
*/
|
||||||
|
public function __construct($string, $max, $message = "", $code = 0, Throwable $previous = null)
|
||||||
|
{
|
||||||
|
parent::__construct($message ?: $this->message.' (max length - '.$max.', actual length - '.
|
||||||
|
(function_exists('mb_strlen') ? mb_strlen($string) : strlen($string)).')', $code, $previous);
|
||||||
|
}
|
||||||
|
}
|
@ -12,14 +12,19 @@ namespace AtolOnline\Exceptions;
|
|||||||
use Throwable;
|
use Throwable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать слишком большое количество
|
* Исключение, возникающее при попытке указать слишком большое количество чего-либо
|
||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolQuantityTooHighException extends AtolException
|
class AtolTooManyException extends AtolException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolQuantityTooHighException constructor.
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'Quantity is too high';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AtolTooManyException constructor.
|
||||||
*
|
*
|
||||||
* @param $quantity
|
* @param $quantity
|
||||||
* @param $max
|
* @param $max
|
||||||
@ -29,7 +34,7 @@ class AtolQuantityTooHighException extends AtolException
|
|||||||
*/
|
*/
|
||||||
public function __construct($quantity, $max, $message = "", $code = 0, Throwable $previous = null)
|
public function __construct($quantity, $max, $message = "", $code = 0, Throwable $previous = null)
|
||||||
{
|
{
|
||||||
$message = $message ?: 'Слишком большое количество (макс. '.$max.'): '.$quantity;
|
$message = $message ?: $this->message.' (max - '.$max.', actual - '.$quantity.')';
|
||||||
parent::__construct($message, $code, $previous);
|
parent::__construct($message, $code, $previous);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -9,26 +9,15 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке добавить слишком много предметов расчёта в массив
|
* Исключение, возникающее при попытке добавить слишком много предметов расчёта в массив
|
||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolTooManyItemsException extends AtolException
|
class AtolTooManyItemsException extends AtolTooManyException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolTooManyItemsException constructor.
|
* @var string Сообщение об ошибке
|
||||||
*
|
|
||||||
* @param int $max
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($max, $message = "", $code = 0, Throwable $previous = null)
|
protected $message = 'Too many items';
|
||||||
{
|
|
||||||
$message = $message ?: 'Слишком много предметов расчёта (макс. '.$max.')';
|
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -9,26 +9,25 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке добавить слишком много ставок НДС в массив
|
* Исключение, возникающее при попытке добавить слишком много платежей в массив
|
||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolTooManyPaymentsException extends AtolException
|
class AtolTooManyPaymentsException extends AtolTooManyException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolTooManyPaymentsException constructor.
|
* @inheritDoc
|
||||||
*
|
|
||||||
* @param int $max
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($max, $message = "", $code = 0, Throwable $previous = null)
|
protected $ffd_tags = [
|
||||||
{
|
1031,
|
||||||
$message = $message ?: 'Слишком много платежей (макс. '.$max.')';
|
1081,
|
||||||
parent::__construct($message, $code, $previous);
|
1215,
|
||||||
}
|
1217,
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'Too many payments';
|
||||||
}
|
}
|
@ -9,26 +9,27 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке добавить слишком много ставок НДС в массив
|
* Исключение, возникающее при попытке добавить слишком много ставок НДС в массив
|
||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolTooManyVatsException extends AtolException
|
class AtolTooManyVatsException extends AtolTooManyException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolTooManyVatsException constructor.
|
* @inheritDoc
|
||||||
*
|
|
||||||
* @param int $max
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($max, $message = "", $code = 0, Throwable $previous = null)
|
protected $ffd_tags = [
|
||||||
{
|
1102,
|
||||||
$message = $message ?: 'Слишком много ставок НДС (макс. '.$max.')';
|
1103,
|
||||||
parent::__construct($message, $code, $previous);
|
1104,
|
||||||
}
|
1105,
|
||||||
|
1106,
|
||||||
|
1107,
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'Too many vats';
|
||||||
}
|
}
|
@ -9,27 +9,22 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать слишком длинный телефон
|
* Исключение, возникающее при попытке указать слишком длинный телефон
|
||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolUnitTooLongException extends AtolException
|
class AtolUnitTooLongException extends AtolTooLongException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolUnitTooLongException constructor.
|
* @inheritDoc
|
||||||
*
|
|
||||||
* @param $unit
|
|
||||||
* @param $max
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($unit, $max, $message = "", $code = 0, Throwable $previous = null)
|
protected $ffd_tags = [
|
||||||
{
|
1197,
|
||||||
$message = $message ?: 'Слишком длинное название единицы измерения (макс. длина '.$max.', фактически '.strlen($unit).'): '.$unit;
|
];
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
/**
|
||||||
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'Measurement unit is too long';
|
||||||
}
|
}
|
@ -9,27 +9,22 @@
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use Throwable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при попытке указать слишком длинный телефон
|
* Исключение, возникающее при попытке указать слишком длинный дополнительный реквизит
|
||||||
*
|
*
|
||||||
* @package AtolOnline\Exceptions
|
* @package AtolOnline\Exceptions
|
||||||
*/
|
*/
|
||||||
class AtolUserdataTooLongException extends AtolException
|
class AtolUserdataTooLongException extends AtolTooLongException
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* AtolUserdataTooLongException constructor.
|
* @inheritDoc
|
||||||
*
|
|
||||||
* @param $data
|
|
||||||
* @param $max
|
|
||||||
* @param string $message
|
|
||||||
* @param int $code
|
|
||||||
* @param Throwable|null $previous
|
|
||||||
*/
|
*/
|
||||||
public function __construct($data, $max, $message = "", $code = 0, Throwable $previous = null)
|
protected $ffd_tags = [
|
||||||
{
|
1191,
|
||||||
$message = $message ?: 'Слишком длинный дополнительный реквизит (макс. длина '.$max.', фактически '.strlen($data).'): '.$data;
|
];
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
/**
|
||||||
|
* @var string Сообщение об ошибке
|
||||||
|
*/
|
||||||
|
protected $message = 'User data is too long';
|
||||||
}
|
}
|
@ -28,7 +28,6 @@ class AtolWrongDocumentTypeException extends AtolException
|
|||||||
*/
|
*/
|
||||||
public function __construct($type, $message = "", $code = 0, Throwable $previous = null)
|
public function __construct($type, $message = "", $code = 0, Throwable $previous = null)
|
||||||
{
|
{
|
||||||
$message = $message ?: 'Некорректный тип документа: ожидался \'receipt\' или \'correction\', указан \''.$type.'\'';
|
parent::__construct($message ?: "Wrong document type: 'receipt' or 'correction' expected, but '$type' provided", $code, $previous);
|
||||||
parent::__construct($message, $code, $previous);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -13,10 +13,9 @@ use AtolOnline\{Constants\PaymentMethods,
|
|||||||
Entities\Item,
|
Entities\Item,
|
||||||
Exceptions\AtolNameTooLongException,
|
Exceptions\AtolNameTooLongException,
|
||||||
Exceptions\AtolPriceTooHighException,
|
Exceptions\AtolPriceTooHighException,
|
||||||
Exceptions\AtolQuantityTooHighException,
|
Exceptions\AtolTooManyException,
|
||||||
Exceptions\AtolUnitTooLongException,
|
Exceptions\AtolUnitTooLongException,
|
||||||
Exceptions\AtolUserdataTooLongException
|
Exceptions\AtolUserdataTooLongException};
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ItemTest
|
* Class ItemTest
|
||||||
@ -28,7 +27,7 @@ class ItemTest extends BasicTestCase
|
|||||||
*
|
*
|
||||||
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
||||||
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
||||||
* @throws AtolOnline\Exceptions\AtolQuantityTooHighException
|
* @throws AtolOnline\Exceptions\AtolTooManyException
|
||||||
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
||||||
*/
|
*/
|
||||||
public function testConstructor()
|
public function testConstructor()
|
||||||
@ -57,7 +56,7 @@ class ItemTest extends BasicTestCase
|
|||||||
*
|
*
|
||||||
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
||||||
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
||||||
* @throws AtolOnline\Exceptions\AtolQuantityTooHighException
|
* @throws AtolOnline\Exceptions\AtolTooManyException
|
||||||
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
||||||
* @throws AtolOnline\Exceptions\AtolUserdataTooLongException
|
* @throws AtolOnline\Exceptions\AtolUserdataTooLongException
|
||||||
*/
|
*/
|
||||||
@ -88,7 +87,7 @@ class ItemTest extends BasicTestCase
|
|||||||
*
|
*
|
||||||
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
||||||
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
||||||
* @throws AtolOnline\Exceptions\AtolQuantityTooHighException
|
* @throws AtolOnline\Exceptions\AtolTooManyException
|
||||||
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
||||||
*/
|
*/
|
||||||
public function testSetVat()
|
public function testSetVat()
|
||||||
@ -105,7 +104,7 @@ class ItemTest extends BasicTestCase
|
|||||||
*
|
*
|
||||||
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
||||||
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
||||||
* @throws AtolOnline\Exceptions\AtolQuantityTooHighException
|
* @throws AtolOnline\Exceptions\AtolTooManyException
|
||||||
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
||||||
*/
|
*/
|
||||||
public function testAtolNameTooLongException()
|
public function testAtolNameTooLongException()
|
||||||
@ -119,14 +118,14 @@ class ItemTest extends BasicTestCase
|
|||||||
* Тестирует исключение о слишком высоком количестве
|
* Тестирует исключение о слишком высоком количестве
|
||||||
*
|
*
|
||||||
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
||||||
* @throws AtolOnline\Exceptions\AtolQuantityTooHighException
|
* @throws AtolOnline\Exceptions\AtolTooManyException
|
||||||
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
||||||
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
||||||
*/
|
*/
|
||||||
public function testAtolQuantityTooHighException()
|
public function testAtolQuantityTooHighException()
|
||||||
{
|
{
|
||||||
$item = new Item();
|
$item = new Item();
|
||||||
$this->expectException(AtolQuantityTooHighException::class);
|
$this->expectException(AtolTooManyException::class);
|
||||||
$item->setQuantity(100000.1);
|
$item->setQuantity(100000.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,7 +134,7 @@ class ItemTest extends BasicTestCase
|
|||||||
*
|
*
|
||||||
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
||||||
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
||||||
* @throws AtolOnline\Exceptions\AtolQuantityTooHighException
|
* @throws AtolOnline\Exceptions\AtolTooManyException
|
||||||
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
||||||
*/
|
*/
|
||||||
public function testAtolPriceTooHighException()
|
public function testAtolPriceTooHighException()
|
||||||
@ -151,7 +150,7 @@ class ItemTest extends BasicTestCase
|
|||||||
* @throws AtolOnline\Exceptions\AtolUserdataTooLongException
|
* @throws AtolOnline\Exceptions\AtolUserdataTooLongException
|
||||||
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
||||||
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
||||||
* @throws AtolOnline\Exceptions\AtolQuantityTooHighException
|
* @throws AtolOnline\Exceptions\AtolTooManyException
|
||||||
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
||||||
*/
|
*/
|
||||||
public function testAtolUserdataTooLongException()
|
public function testAtolUserdataTooLongException()
|
||||||
@ -166,7 +165,7 @@ class ItemTest extends BasicTestCase
|
|||||||
*
|
*
|
||||||
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
* @throws AtolOnline\Exceptions\AtolNameTooLongException
|
||||||
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
* @throws AtolOnline\Exceptions\AtolPriceTooHighException
|
||||||
* @throws AtolOnline\Exceptions\AtolQuantityTooHighException
|
* @throws AtolOnline\Exceptions\AtolTooManyException
|
||||||
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
* @throws AtolOnline\Exceptions\AtolUnitTooLongException
|
||||||
*/
|
*/
|
||||||
public function testAtolUnitTooLongException()
|
public function testAtolUnitTooLongException()
|
||||||
|
Loading…
Reference in New Issue
Block a user