File "UpdateCompanySettingsController.php"
Full Path: /home/pulsehostuk9/public_html/invoicer.pulsehost.co.uk/app/Policies/UpdateCompanySettingsController.php
File size: 1.2 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace App\Http\Controllers\V1\Admin\Settings;
use App\Http\Controllers\Controller;
use App\Http\Requests\UpdateSettingsRequest;
use App\Models\Company;
use App\Models\CompanySetting;
use Illuminate\Support\Arr;
class UpdateCompanySettingsController extends Controller
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\UpdateSettingsRequest $request
* @return \Illuminate\Http\JsonResponse
*/
public function __invoke(UpdateSettingsRequest $request)
{
$company = Company::find($request->header('company'));
$this->authorize('manage company', $company);
$data = $request->settings;
if (
Arr::exists($data, 'currency') &&
(CompanySetting::getSetting('currency', $company->id) !== $data['currency']) &&
$company->hasTransactions()
) {
return response()->json([
'success' => false,
'message' => 'Cannot update company currency after transactions are created.',
]);
}
CompanySetting::setSettings($data, $request->header('company'));
return response()->json([
'success' => true,
]);
}
}