подпись в настройках, коды — по `kassaspecification.pdf`. */ public const LABELS = [ self::KASSA => 'Не передавать (из настроек кассы)', '1' => 'Общая (ОСНО)', '2' => 'Упрощённая (УСН) доход', '3' => 'Упрощённая (УСН) доход минус расход', '4' => 'Единый налог на вменённый доход (ЕНВД)', '5' => 'Единый сельскохозяйственный налог (ЕСХН)', '6' => 'Патентная (ПСН)', ]; /** @var string */ private $value; private function __construct(string $value) { $this->value = $value; } /** * Значение из настроек; неизвестное или пустое — не передавать. */ public static function fromSetting(?string $value): self { $value = (string) $value; return new self(isset(self::LABELS[$value]) ? $value : self::KASSA); } public static function kassa(): self { return new self(self::KASSA); } public function getValue(): string { return $this->value; } public function isPassed(): bool { return ($this->value !== self::KASSA); } }