подпись в настройках, порядок — как в `kassaspecification.pdf`. */ public const LABELS = [ self::FULL_PREPAYMENT => 'Полная предоплата', self::PREPAYMENT => 'Частичная предоплата', self::ADVANCE => 'Аванс', self::FULL_PAYMENT => 'Полный расчёт', self::PARTIAL_PAYMENT => 'Частичный расчёт и кредит', self::CREDIT => 'Кредит', self::CREDIT_PAYMENT => 'Выплата по кредиту', ]; /** @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::FULL_PAYMENT); } public static function fullPayment(): self { return new self(self::FULL_PAYMENT); } public function getValue(): string { return $this->value; } }