File: D:/HostingSpaces/SBogers10/shop.komma.nl/app/Vat/Models/FinancialProperties.php
<?php declare(strict_types=1);
namespace App\Vat\Models;
use App\Vat\FinancialProperties as FinancialPropertiesTrait;
use App\Vat\HasFinancialPropertiesInterface;
use Illuminate\Contracts\Support\Arrayable;
use Komma\KMS\Globalization\RegionInfoInterface;
class FinancialProperties implements HasFinancialPropertiesInterface, Arrayable
{
use FinancialPropertiesTrait;
public string $vat_scenario_enum;
protected float $price = 0;
protected $fieldsToFormat = ['price', 'priceInc', 'priceEx', 'vatAmount'];
private ?RegionInfoInterface $regionInfo;
public function __construct(array $attributes = [])
{
$this->regionInfo = app(RegionInfoInterface::class);
}
/**
* @return string
*/
public function getVatScenarioEnum(): string
{
return $this->vat_scenario_enum;
}
/**
* @param string $vat_scenario_enum
* @return FinancialProperties
*/
public function setVatScenarioEnum(string $vat_scenario_enum)
{
$this->vat_scenario_enum = $vat_scenario_enum;
return $this;
}
/**
* @return float
*/
public function getPrice(): float
{
return $this->price;
}
/**
* @param float $price
* @return FinancialProperties
*/
public function setPrice(float $price): FinancialProperties
{
$this->price = $price;
return $this;
}
public function toArray()
{
$baseData = [
'vatScenarioEnum' => $this->vat_scenario_enum,
'price' => $this->price,
'priceInc' => $this->price_inc,
'priceEx' => $this->price_ex,
'vatAmount' => $this->vat_amount,
];
return array_merge($baseData, $this->formattedValues($baseData));
}
}