From 3a8cb727fa75ffe040cd12365d3d4bbf335bc17f Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Thu, 18 Jun 2026 01:08:09 +0700 Subject: [PATCH] feat: implement API endpoint for customer creation and enhance order form with quick customer creation modal --- .../Admin/Master/CustomerController.php | 13 ++ .../orders/CustomerQuickCreateModal.vue | 121 ++++++++++++++++++ .../admin/manage/orders/OrderPosForm.vue | 44 +++++-- routes/web.php | 4 + 4 files changed, 169 insertions(+), 13 deletions(-) create mode 100644 resources/js/components/admin/manage/orders/CustomerQuickCreateModal.vue diff --git a/app/Http/Controllers/Admin/Master/CustomerController.php b/app/Http/Controllers/Admin/Master/CustomerController.php index 4c8affc..6ad344c 100644 --- a/app/Http/Controllers/Admin/Master/CustomerController.php +++ b/app/Http/Controllers/Admin/Master/CustomerController.php @@ -8,6 +8,7 @@ use App\Http\Requests\Admin\Master\CustomerRequest; use App\Models\Customer; use App\Services\Master\CustomerService; +use Illuminate\Http\JsonResponse; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Inertia\Inertia; @@ -41,6 +42,18 @@ public function store(CustomerRequest $request): RedirectResponse return redirect()->route('admin.master.customers.index'); } + public function storeApi(CustomerRequest $request): JsonResponse + { + $this->customerService->create($request->validated()); + + $customer = Customer::query()->latest()->first(); + + return response()->json([ + 'id' => $customer->id, + 'name' => $customer->name, + ]); + } + public function update(CustomerRequest $request, Customer $customer): RedirectResponse { $this->customerService->update($customer, $request->validated()); diff --git a/resources/js/components/admin/manage/orders/CustomerQuickCreateModal.vue b/resources/js/components/admin/manage/orders/CustomerQuickCreateModal.vue new file mode 100644 index 0000000..dbc8080 --- /dev/null +++ b/resources/js/components/admin/manage/orders/CustomerQuickCreateModal.vue @@ -0,0 +1,121 @@ + + +