mirror of
https://github.com/anthonyaxenov/atol-online.git
synced 2024-11-22 15:04:33 +00:00
Enum
стал абстрактным внутри Enums
, наследникам созданы getFfdTags()
This commit is contained in:
parent
c9670a1321
commit
e2141551d5
23
src/Enum.php
23
src/Enum.php
@ -1,23 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types = 1);
|
|
||||||
|
|
||||||
namespace AtolOnline;
|
|
||||||
|
|
||||||
use AtolOnline\Exceptions\InvalidEnumValueException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Расширение класса перечисления
|
|
||||||
*/
|
|
||||||
class Enum extends \MyCLabs\Enum\Enum
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @inheritDoc
|
|
||||||
* @throws InvalidEnumValueException
|
|
||||||
*/
|
|
||||||
public static function isValid($value)
|
|
||||||
{
|
|
||||||
return parent::isValid($value)
|
|
||||||
?: throw new InvalidEnumValueException(static::class, $value);
|
|
||||||
}
|
|
||||||
}
|
|
@ -11,14 +11,10 @@ declare(strict_types = 1);
|
|||||||
|
|
||||||
namespace AtolOnline\Enums;
|
namespace AtolOnline\Enums;
|
||||||
|
|
||||||
use AtolOnline\Enum;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Константы, определяющие типы агента
|
* Константы, определяющие типы агента
|
||||||
*
|
*
|
||||||
* Тег ФФД - 1057
|
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 18
|
||||||
*
|
|
||||||
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 18 (agent_info)
|
|
||||||
*/
|
*/
|
||||||
final class AgentTypes extends Enum
|
final class AgentTypes extends Enum
|
||||||
{
|
{
|
||||||
@ -58,7 +54,7 @@ final class AgentTypes extends Enum
|
|||||||
const ANOTHER = 'another';
|
const ANOTHER = 'another';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return int[] Возвращает массив тегов ФФД
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public static function getFfdTags(): array
|
public static function getFfdTags(): array
|
||||||
{
|
{
|
||||||
|
@ -11,14 +11,10 @@ declare(strict_types = 1);
|
|||||||
|
|
||||||
namespace AtolOnline\Enums;
|
namespace AtolOnline\Enums;
|
||||||
|
|
||||||
use MyCLabs\Enum\Enum;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Константы, определяющие типы документов коррекции
|
* Константы, определяющие типы документов коррекции
|
||||||
*
|
*
|
||||||
* Тег ФФД - 1173
|
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 35
|
||||||
*
|
|
||||||
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 35 (correction_info)
|
|
||||||
*/
|
*/
|
||||||
final class CorrectionTypes extends Enum
|
final class CorrectionTypes extends Enum
|
||||||
{
|
{
|
||||||
@ -31,4 +27,12 @@ final class CorrectionTypes extends Enum
|
|||||||
* По предписанию
|
* По предписанию
|
||||||
*/
|
*/
|
||||||
const INSTRUCTION = 'instruction';
|
const INSTRUCTION = 'instruction';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function getFfdTags(): array
|
||||||
|
{
|
||||||
|
return [1173];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,6 @@ declare(strict_types = 1);
|
|||||||
|
|
||||||
namespace AtolOnline\Enums;
|
namespace AtolOnline\Enums;
|
||||||
|
|
||||||
use MyCLabs\Enum\Enum;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Константы, определяющие типы документов
|
* Константы, определяющие типы документов
|
||||||
*/
|
*/
|
||||||
@ -27,4 +25,12 @@ final class DocumentTypes extends Enum
|
|||||||
* Чек коррекции
|
* Чек коррекции
|
||||||
*/
|
*/
|
||||||
const CORRECTION = 'correction';
|
const CORRECTION = 'correction';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function getFfdTags(): array
|
||||||
|
{
|
||||||
|
return [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
37
src/Enums/Enum.php
Normal file
37
src/Enums/Enum.php
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020-2021 Антон Аксенов (Anthony Axenov)
|
||||||
|
*
|
||||||
|
* This code is licensed under MIT.
|
||||||
|
* Этот код распространяется по лицензии MIT.
|
||||||
|
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types = 1);
|
||||||
|
|
||||||
|
namespace AtolOnline\Enums;
|
||||||
|
|
||||||
|
use AtolOnline\Exceptions\InvalidEnumValueException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Расширение класса перечисления
|
||||||
|
*/
|
||||||
|
abstract class Enum extends \MyCLabs\Enum\Enum
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
* @throws InvalidEnumValueException
|
||||||
|
*/
|
||||||
|
public static function isValid($value)
|
||||||
|
{
|
||||||
|
return parent::isValid($value)
|
||||||
|
?: throw new InvalidEnumValueException(static::class, $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает массив тегов ФФД
|
||||||
|
*
|
||||||
|
* @return int[]
|
||||||
|
*/
|
||||||
|
abstract public static function getFfdTags(): array;
|
||||||
|
}
|
@ -11,14 +11,10 @@ declare(strict_types = 1);
|
|||||||
|
|
||||||
namespace AtolOnline\Enums;
|
namespace AtolOnline\Enums;
|
||||||
|
|
||||||
use MyCLabs\Enum\Enum;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Константы, определяющие признаки способов расчёта
|
* Константы, определяющие признаки способов расчёта
|
||||||
*
|
*
|
||||||
* Тег ФФД - 1214
|
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 22
|
||||||
*
|
|
||||||
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 22 (payment_method)
|
|
||||||
*/
|
*/
|
||||||
final class PaymentMethods extends Enum
|
final class PaymentMethods extends Enum
|
||||||
{
|
{
|
||||||
@ -56,4 +52,12 @@ final class PaymentMethods extends Enum
|
|||||||
* Оплата кредита
|
* Оплата кредита
|
||||||
*/
|
*/
|
||||||
const CREDIT_PAYMENT = 'credit_payment';
|
const CREDIT_PAYMENT = 'credit_payment';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function getFfdTags(): array
|
||||||
|
{
|
||||||
|
return [1214];
|
||||||
|
}
|
||||||
}
|
}
|
@ -11,14 +11,10 @@ declare(strict_types = 1);
|
|||||||
|
|
||||||
namespace AtolOnline\Enums;
|
namespace AtolOnline\Enums;
|
||||||
|
|
||||||
use MyCLabs\Enum\Enum;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Константы, определяющие признаки предметов расчёта
|
* Константы, определяющие признаки предметов расчёта
|
||||||
*
|
*
|
||||||
* Тег ФФД - 1212
|
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 23
|
||||||
*
|
|
||||||
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 23 (payment_object)
|
|
||||||
*/
|
*/
|
||||||
final class PaymentObjects extends Enum
|
final class PaymentObjects extends Enum
|
||||||
{
|
{
|
||||||
@ -115,7 +111,7 @@ final class PaymentObjects extends Enum
|
|||||||
const RESORT_FEE = 'resort_fee';
|
const RESORT_FEE = 'resort_fee';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Взнос в счёт оплаты пени, штрафе, вознаграждении, бонусе и ином аналогичном предмете расчета
|
* Взнос в счёт оплаты пени, штрафе, вознаграждении, бонусе и ином аналогичном предмете расчёта
|
||||||
*/
|
*/
|
||||||
const AWARD = 'award';
|
const AWARD = 'award';
|
||||||
|
|
||||||
@ -158,4 +154,12 @@ final class PaymentObjects extends Enum
|
|||||||
* Платёж казино
|
* Платёж казино
|
||||||
*/
|
*/
|
||||||
const CASINO_PAYMENT = 'casino_payment';
|
const CASINO_PAYMENT = 'casino_payment';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function getFfdTags(): array
|
||||||
|
{
|
||||||
|
return [1212];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,37 +11,35 @@ declare(strict_types = 1);
|
|||||||
|
|
||||||
namespace AtolOnline\Enums;
|
namespace AtolOnline\Enums;
|
||||||
|
|
||||||
use MyCLabs\Enum\Enum;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Константы, определяющие виды оплат
|
* Константы, определяющие виды оплат
|
||||||
*
|
*
|
||||||
* Теги ФФД: 1031, 1081, 1215, 1216, 1217
|
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 35
|
||||||
*/
|
*/
|
||||||
final class PaymentTypes extends Enum
|
final class PaymentTypes extends Enum
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Расчёт наличными. Тег ФФД - 1031.
|
* Расчёт наличными
|
||||||
*/
|
*/
|
||||||
const CASH = 0;
|
const CASH = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Расчёт безналичными. Тег ФФД - 1081.
|
* Расчёт безналичными
|
||||||
*/
|
*/
|
||||||
const ELECTRON = 1;
|
const ELECTRON = 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Предварительная оплата (зачёт аванса). Тег ФФД - 1215.
|
* Предварительная оплата (зачёт аванса)
|
||||||
*/
|
*/
|
||||||
const PRE_PAID = 2;
|
const PRE_PAID = 2;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Предварительная оплата (кредит). Тег ФФД - 1216.
|
* Предварительная оплата (кредит)
|
||||||
*/
|
*/
|
||||||
const CREDIT = 3;
|
const CREDIT = 3;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Иная форма оплаты (встречное предоставление). Тег ФФД - 1217.
|
* Иная форма оплаты (встречное предоставление)
|
||||||
*/
|
*/
|
||||||
const OTHER = 4;
|
const OTHER = 4;
|
||||||
|
|
||||||
@ -74,4 +72,12 @@ final class PaymentTypes extends Enum
|
|||||||
* Для каждого фискального типа оплаты можно указать расширенный тип оплаты
|
* Для каждого фискального типа оплаты можно указать расширенный тип оплаты
|
||||||
*/
|
*/
|
||||||
const ADD_9 = 9;
|
const ADD_9 = 9;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function getFfdTags(): array
|
||||||
|
{
|
||||||
|
return [1031, 1081, 1215, 1216, 1217];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,12 +11,10 @@ declare(strict_types = 1);
|
|||||||
|
|
||||||
namespace AtolOnline\Enums;
|
namespace AtolOnline\Enums;
|
||||||
|
|
||||||
use AtolOnline\Enum;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Константы, определяющие типы налогообложения
|
* Константы, определяющие типы налогообложения
|
||||||
*
|
*
|
||||||
* Тег ФДД - 1055
|
* @see https://online.atol.ru/files/API_atol_online_v4.pdf Документация, стр 35
|
||||||
*/
|
*/
|
||||||
final class SnoTypes extends Enum
|
final class SnoTypes extends Enum
|
||||||
{
|
{
|
||||||
@ -51,7 +49,7 @@ final class SnoTypes extends Enum
|
|||||||
const PATENT = 'patent';
|
const PATENT = 'patent';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return int[] Возвращает массив тегов ФФД
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public static function getFfdTags(): array
|
public static function getFfdTags(): array
|
||||||
{
|
{
|
||||||
|
@ -11,7 +11,7 @@ declare(strict_types = 1);
|
|||||||
|
|
||||||
namespace AtolOnline\Exceptions;
|
namespace AtolOnline\Exceptions;
|
||||||
|
|
||||||
use AtolOnline\Enum;
|
use AtolOnline\Enums\Enum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Исключение, возникающее при ошибке валидации типа агента
|
* Исключение, возникающее при ошибке валидации типа агента
|
||||||
|
@ -21,5 +21,5 @@ class TooLongUnitException extends TooLongException
|
|||||||
{
|
{
|
||||||
protected $message = 'Слишком длинная единица измерения предмета расчёта';
|
protected $message = 'Слишком длинная единица измерения предмета расчёта';
|
||||||
protected float $max = Constraints::MAX_LENGTH_MEASUREMENT_UNIT;
|
protected float $max = Constraints::MAX_LENGTH_MEASUREMENT_UNIT;
|
||||||
protected array $ffd_tags = [Ffd105Tags::ITEM_MEASURE];
|
protected array $ffd_tags = [Ffd105Tags::ITEM_MEASUREMENT_UNIT];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user