Начислить/Выделить НДС - класс PHP
Небольшой класс для расчёта цены без/с НДС.
<?php
class Price
{
// Ставка НДС, %
const PRICE_VAT_SETTING = 20;
/**
* Расчёт цены без НДС
* @param mixed $price
* @return float|null
*/
public static function notVat(mixed $price): ?float
{
if ($price):
$price = self::toFloat($price);
$vat = self::toFloat(-1 * ($price / (1 + self::PRICE_VAT_SETTING / 100) - $price));
return self::format($price - $vat);
endif;
return null;
}
/**
* Расчёт цены с НДС
* @param mixed $price
* @return float|null
*/
public static function vat(mixed $price): ?float
{
if ($price):
$vat = self::toFloat($price * self::PRICE_VAT_SETTING / 100);
return self::format($price + $vat);
endif;
return null;
}
/**
* Простое форматирование цены
* @param float $price
* @return float
*/
public static function format(float $price): float
{
return number_format(
str_replace(
' ',
'',
str_replace(',', '.', $price)
), 2, '.', ''
);
}
public static function toFloat(mixed $price): float
{
return (float) $price;
}
}
Использование:
echo "Выделяем НДС от суммы : $price" . PHP_EOL;
echo "Сумма без НДС: " . Price::notVat($price) . PHP_EOL;
echo "-----------------" . PHP_EOL;
echo "Начисляем НДС на сумму : $price" . PHP_EOL;
echo "Сумма с НДС: " . Price::vat($price) . PHP_EOL;
Предыдущая заметка
SQL Error [1449] [HY000]: The user specified as a definerСледующая заметка
Установка редактора Atom в Linux (Debian/Ubuntu/LMDE)