<?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()); if (isset($formatted) && $formatted) { return $Currency->format($price); } return $price; }, ['price', 'formatted', 'vat'] );