File: D:/HostingSpaces/SBogers10/wingssprayer.komma.pro/app/Vat/VatController.php
<?php
namespace App\Vat;
use Komma\KMS\Core\SectionController;
use App\Vat\Models\Rate;
use App\Vat\Requests\CalculateVatRequest;
use App\Vat\Resources\VatCalculationResource;
final class VatController extends SectionController
{
protected $slug = "vatrates";
protected $classModelName = Rate::class;
/**
* RateController constructor.
*
* @param VatSection $section
*/
function __construct(VatSection $section)
{
parent::__construct($section);
}
/**
* Calculates the vat rate amount using a price.
* For ajax requests only. Used in product section
*
* @param CalculateVatRequest $request
* @return VatCalculationResource
*/
public function calculateVatRateAmount(CalculateVatRequest $request)
{
/** @var VatServiceInterface $rateService */
$rateService = app(VatServiceInterface::class);
$price = $request->get('price');
$isIncludingVat = $request->get('isIncludingVat');
if(!$isIncludingVat) {
$vatAmount = $rateService->calculateVatRateAmountFromExAmount($price);
$priceIncVat = $rateService->calculateIncVatRatePrice($price);
$priceExVat = $price;
} else {
$vatAmount = $rateService->calculateVatRateAmountFromIncAmount($price);
$priceIncVat = $price;
$priceExVat = $rateService->calculateExVatRatePrice($price);
}
$vatPercentage = $rateService->getVatRate();
$calculationResource = (new VatCalculationResource())
->setPriceExVat($priceExVat)
->setPriceIncVat($priceIncVat)
->setVatAmount($vatAmount)
->setVatPercentage($vatPercentage->percentage);
return $calculationResource;
}
}