diff --git a/app/Http/Controllers/Settings/VatSettingController.php b/app/Http/Controllers/Settings/VatSettingController.php new file mode 100644 index 0000000..a575a33 --- /dev/null +++ b/app/Http/Controllers/Settings/VatSettingController.php @@ -0,0 +1,27 @@ +validate([ + 'vat_rate' => ['required', 'numeric', 'min:0', 'max:100'], + ]); + + Setting::set('vat_rate', (string) $validated['vat_rate']); + + return response()->json(['message' => 'VAT rate saved.', 'vat_rate' => $validated['vat_rate']]); + } +} diff --git a/resources/views/settings/vat.blade.php b/resources/views/settings/vat.blade.php new file mode 100644 index 0000000..ddbc76a --- /dev/null +++ b/resources/views/settings/vat.blade.php @@ -0,0 +1,59 @@ +@extends('layouts.app') + +@section('title', 'Settings — VAT') + +@section('content') +
+

VAT Settings

+

Set the global VAT rate applied to vatable items on supplier quotes.

+
+ +
+
+
+
VAT Configuration
+
+
+ +
+ + % +
+

+ Enter 0 to disable VAT. Suppliers will see a VAT checkbox on each item when this is greater than 0. +

+ +
+
+
+ + +@endsection diff --git a/routes/web.php b/routes/web.php index c739d1e..8aa6940 100644 --- a/routes/web.php +++ b/routes/web.php @@ -29,6 +29,7 @@ use App\Http\Controllers\Sales\SalesOrderController; use App\Http\Controllers\MailAccountController; use App\Http\Controllers\SettingsController; use App\Http\Controllers\Settings\ProjectSettingController; +use App\Http\Controllers\Settings\VatSettingController; use App\Models\Settings\Location; use Illuminate\Support\Facades\Route; @@ -163,6 +164,10 @@ Route::middleware(['auth', 'verified'])->group(function () { Route::post('settings/projects/companies/{company}/departments', [ProjectSettingController::class, 'storeDepartment'])->name('settings.projects.companies.departments.store'); Route::patch('settings/projects/companies/{company}/departments/{department}', [ProjectSettingController::class, 'updateDepartment'])->name('settings.projects.companies.departments.update'); Route::delete('settings/projects/companies/{company}/departments/{department}', [ProjectSettingController::class, 'destroyDepartment'])->name('settings.projects.companies.departments.destroy'); + + // VAT settings + Route::get('settings/vat', [VatSettingController::class, 'index'])->name('settings.vat'); + Route::post('settings/vat', [VatSettingController::class, 'update'])->name('settings.vat.update'); }); });