From 0d816daed3680bf216997fe7dcdfbc1215ba839e Mon Sep 17 00:00:00 2001 From: isaacclad Date: Thu, 25 Jun 2026 12:03:46 +0000 Subject: [PATCH] Add retail/restaurant mode toggle to the register MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A segmented Retail | Restaurant control in the register header flips the location's service_style in place (RegisterController@setMode → pos.mode.set). Switching to restaurant lands on the Floor and reveals Floor/Kitchen/Menu in the sidebar; switching to retail stays on the register. Covered by PosRestaurantTest. Co-Authored-By: Claude Opus 4.8 --- app/Http/Controllers/Pos/RegisterController.php | 16 ++++++++++++++++ resources/views/pos/register.blade.php | 15 +++++++++++++++ routes/web.php | 1 + tests/Feature/PosRestaurantTest.php | 15 +++++++++++++++ 4 files changed, 47 insertions(+) diff --git a/app/Http/Controllers/Pos/RegisterController.php b/app/Http/Controllers/Pos/RegisterController.php index 70bb85a..893571c 100644 --- a/app/Http/Controllers/Pos/RegisterController.php +++ b/app/Http/Controllers/Pos/RegisterController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Pos; use App\Http\Controllers\Controller; use App\Http\Controllers\Pos\Concerns\ScopesToAccount; +use App\Models\PosLocation; use App\Models\PosProduct; use App\Models\PosSale; use App\Services\Pos\PosLocationService; @@ -37,6 +38,21 @@ class RegisterController extends Controller ]); } + /** Quick switch between retail and restaurant service from the register. */ + public function setMode(Request $request): RedirectResponse + { + $data = $request->validate(['style' => ['required', 'in:retail,restaurant']]); + + $location = $this->locations->ensureDefault($this->ownerRef($request)); + $location->update(['service_style' => $data['style']]); + + if ($data['style'] === PosLocation::STYLE_RESTAURANT) { + return redirect()->route('pos.floor')->with('success', 'Restaurant mode on — Floor, Kitchen & Menu are now in the sidebar.'); + } + + return redirect()->route('pos.register')->with('success', 'Retail mode on.'); + } + /** @return list> */ private function crmCustomers(string $owner): array { diff --git a/resources/views/pos/register.blade.php b/resources/views/pos/register.blade.php index a52757f..06ee2b0 100644 --- a/resources/views/pos/register.blade.php +++ b/resources/views/pos/register.blade.php @@ -10,6 +10,21 @@

Register

{{ $location->name }} · {{ $location->currency }}

+
+ @csrf + + +