Newer
Older
<?php
/**
* This file contains package_quiqqer_products_ajax_products_calcNettoPrice
*/
use QUI\ERP\Tax\TaxEntry;
use QUI\ERP\Tax\TaxType;
use QUI\ERP\Tax\Utils as TaxUtils;
use QUI\System\Log;
/**
* Calculate the netto price
*
* @param integer|float $price - Price to calc (brutto price)
* @param bool $formatted - output formatted?
* @param integer $vat - optional
*
* @return float
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_erp_ajax_calcBruttoPrice',
function ($price, $formatted, $vat) {
$price = QUI\ERP\Money\Price::validatePrice($price);
$Currency = QUI\ERP\Defaults::getCurrency();
if (empty($vat)) {
$Area = QUI\ERP\Defaults::getArea();
try {
$TaxType = TaxUtils::getTaxTypeByArea($Area);
$TaxEntry = TaxUtils::getTaxEntry($TaxType, $Area);
} catch (QUI\Exception $e) {
Log::addError($e->getMessage(), [
'ajax' => 'package_quiqqer_erp_ajax_calcBruttoPrice',
'price' => $price,
'vat' => $vat
]);
if (isset($formatted) && $formatted) {
return $Currency->format($price);
}
return $price;
}
$vat = $TaxEntry->getValue();
}
$vat = (100 + $vat) / 100;
$price = $price * $vat;
$price = round($price, $Currency->getPrecision());