feat: moneta 2.0, MONETA.Assistant payment module for PHPShop 6.7+
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace MonetaPhpShop\receipt;
|
||||
|
||||
/**
|
||||
* Ïðèçíàê ñïîñîáà ðàñ÷¸òà (`pm` â `INVENTORY`, `paymentMethod` â JSON Check URL): âåñü ïåðå÷åíü
|
||||
* `kassaspecification.pdf`. Äåéñòâóåò íà âñå ïîçèöèè ÷åêà, âêëþ÷àÿ äîñòàâêó.
|
||||
* Ðàñ÷¸òíûå ñòàâêè ÍÄÑ ïðè àâàíñå è ïðåäîïëàòå ìîäóëü ñàì íå âûáèðàåò.
|
||||
* Çíà÷åíèÿ õðàíÿòñÿ â íàñòðîéêàõ ìîäóëÿ — íå ïåðåèìåíîâûâàòü.
|
||||
*/
|
||||
final class PaymentMethod
|
||||
{
|
||||
public const FULL_PREPAYMENT = 'full_prepayment';
|
||||
public const PREPAYMENT = 'prepayment';
|
||||
public const ADVANCE = 'advance';
|
||||
public const FULL_PAYMENT = 'full_payment';
|
||||
public const PARTIAL_PAYMENT = 'partial_payment';
|
||||
public const CREDIT = 'credit';
|
||||
public const CREDIT_PAYMENT = 'credit_payment';
|
||||
|
||||
/** Çíà÷åíèå -> ïîäïèñü â íàñòðîéêàõ, ïîðÿäîê — êàê â `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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user