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;

Калькулятор НДС онлайн

Закрыть