28 lines
825 B
PHP
28 lines
825 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace MonetaPhpShop\form;
|
|
|
|
use MonetaPhpShop\Money;
|
|
|
|
/**
|
|
* ×èñëî ñóììû äëÿ ïîêóïàòåëÿ òàê æå, êàê åãî ïèøåò âèòðèíà PHPShop: çíàêîâ ïîñëå òî÷êè — ïî
|
|
* íàñòðîéêå ìàãàçèíà «Çíàêîâ ïîñëå çàïÿòîé â öåíå» (`admoption.price_znak`), òûñÿ÷è ÷åðåç ïðîáåë.
|
|
* Çíàê âàëþòû äîáàâëÿåò âèòðèíà ({@see \MonetaPhpShop\host\ShopContext::currencyIcon()}).
|
|
*/
|
|
final class AmountText
|
|
{
|
|
private function __construct() {}
|
|
|
|
/**
|
|
* @param int $decimals çíàêîâ ïîñëå òî÷êè; âíå 0–2 — 0, êàê ó ÿäðà ïðè ïóñòîé íàñòðîéêå
|
|
*/
|
|
public static function format(Money $amount, int $decimals): string
|
|
{
|
|
$decimals = (($decimals >= 0) && ($decimals <= 2)) ? $decimals : 0;
|
|
|
|
return number_format((float) $amount->toDecimal(), $decimals, '.', ' ');
|
|
}
|
|
}
|