PHP: Начислить/Выделить НДС
Небольшой класс для расчёта цены без/с НДС.
<?php
class Price
{
// Ставка НДС, %
const PRICE_VAT_SETTING = 20;
/**
* Расчёт цены без НДС
* @param $price
* @return string|null
*/
public static function notVat($price): ?string
{
if (!$price) return null;
$vat = -1 * ($price / (1 + self::PRICE_VAT_SETTING/100) - $price);
return self::format($price - $vat);
}
/**
* Расчёт цены с НДС
* @param $price
* @return string|null
*/
public static function vat($price): ?string
{
if (!$price) return null;
$vat = $price * self::PRICE_VAT_SETTING/100;
return self::format($price + $vat);
}
/**
* Простое форматирование цены
* @param $price
* @return string|null
*/
public static function format($price): ?string
{
if (!$price) return null;
return number_format(
str_replace(
' ',
'',
str_replace(',', '.', $price)
), 2, '.', ''
);
}
}
Использование:
echo "Выделяем НДС от суммы : $price" . PHP_EOL;
echo "Сумма без НДС: " . Price::notVat($price) . PHP_EOL;
echo "-----------------" . PHP_EOL;
echo "Начисляем НДС на сумму : $price" . PHP_EOL;
echo "Сумма с НДС: " . Price::vat($price) . PHP_EOL;