подпись в настройках. */ public const LABELS = [ self::COMMODITY => 'Товар', 'excise' => 'Подакцизный товар', 'job' => 'Работа', self::SERVICE => 'Услуга', 'gambling_bet' => 'Ставка азартной игры', 'gambling_prize' => 'Выигрыш азартной игры', 'lottery' => 'Лотерейный билет', 'lottery_prize' => 'Выигрыш лотереи', 'intellectual_activity' => 'Предоставление результатов интеллектуальной деятельности', 'payment' => 'Платёж', 'agent_commission' => 'Агентское вознаграждение', 'award' => 'Выплата (взнос, пени, штраф, вознаграждение, бонус)', 'composite' => 'Составной предмет расчёта', 'another' => 'Другое', 'property_right' => 'Имущественное право', 'non_operating' => 'Внереализационный доход', 'insurance_premium' => 'Страховой сбор', 'sales_tax' => 'Торговый сбор', 'resort_fee' => 'Курортный сбор', ]; /** @var string */ private $value; private function __construct(string $value) { $this->value = $value; } /** * Значение из настроек; неизвестное или пустое — товар (дефолт кассы). */ public static function fromSetting(?string $value): self { return new self(isset(self::LABELS[(string) $value]) ? (string) $value : self::COMMODITY); } public static function commodity(): self { return new self(self::COMMODITY); } public static function service(): self { return new self(self::SERVICE); } public function getValue(): string { return $this->value; } }