44 lines
1.1 KiB
PHP
44 lines
1.1 KiB
PHP
<?php
|
|
|
|
use App\Enums\VoucherType;
|
|
use Illuminate\Support\Number;
|
|
use Illuminate\Support\Str;
|
|
|
|
if (! function_exists('currency')) {
|
|
function currency(?string $value = null, ?string $currency = null, ?string $locale = 'id_ID'): string
|
|
{
|
|
if ($value === null) {
|
|
return '';
|
|
}
|
|
|
|
return $currency.Number::format($value, locale: $locale);
|
|
}
|
|
}
|
|
|
|
if (! function_exists('replaceCurrency')) {
|
|
function replaceCurrency(?string $value = null)
|
|
{
|
|
if ($value === null) {
|
|
return null;
|
|
}
|
|
|
|
return (int) Str::replace('.', '', $value);
|
|
}
|
|
}
|
|
|
|
if (! function_exists('percentage')) {
|
|
function percentage(int|float $value, int $precision = 2, int $maxPrecision = 2, ?string $locale = 'id_ID'): string
|
|
{
|
|
return Number::percentage($value, $precision, $maxPrecision, $locale);
|
|
}
|
|
}
|
|
|
|
if (! function_exists('formatDiscount')) {
|
|
function formatDiscount($amount, VoucherType $type, string $currency = 'Rp'): string
|
|
{
|
|
return $type === VoucherType::PERCENTAGE
|
|
? percentage($amount)
|
|
: currency($amount, $currency);
|
|
}
|
|
}
|