소스 검색

fix: purchase master

부모
커밋
716b7862ad
3개의 변경된 파일21개의 추가작업 그리고 15개의 파일을 삭제
  1. 9
    14
      app/Http/Controllers/PurchaseController.php
  2. 4
    0
      resources/js/pages/Composables/useCart.js
  3. 8
    1
      resources/js/pages/Purchases/Edit.vue

+ 9
- 14
app/Http/Controllers/PurchaseController.php 파일 보기

@@ -17,7 +17,6 @@ use App\Http\Requests\Purchase\StorePurchaseRequest;
17 17
 use App\Http\Requests\Purchase\UpdatePurchaseRequest;
18 18
 use App\Models\Company;
19 19
 use App\Models\User;
20
-use App\Policies\PurchasePolicy;
21 20
 use App\Services\FunctionService;
22 21
 use App\Services\PurchaseService;
23 22
 
@@ -244,21 +243,17 @@ class PurchaseController extends Controller
244 243
                 ];
245 244
 
246 245
                 if (!empty($product["label"])) {
247
-                    if ($product["label"] == "add") {
248
-                        $purchase->purchaseDetail()->create($validated);
249
-                    }
250
-
251
-                    if ($product["label"] == "edit") {
252
-                        $purchase->purchaseDetail
246
+                    match ($product["label"]) {
247
+                        "add" => $purchase
248
+                            ->purchaseDetail()
249
+                            ->create($validated),
250
+                        "edit" => $purchase->purchaseDetail
253 251
                             ->find($product["id"])
254
-                            ->update($validated);
255
-                    }
256
-
257
-                    if ($product["label"] == "delete") {
258
-                        $purchase->purchaseDetail
252
+                            ->update($validated),
253
+                        "delete" => $purchase->purchaseDetail
259 254
                             ->find($product["id"])
260
-                            ->delete();
261
-                    }
255
+                            ->delete(),
256
+                    };
262 257
                 }
263 258
 
264 259
                 if ($request->status == "success") {

+ 4
- 0
resources/js/pages/Composables/useCart.js 파일 보기

@@ -39,6 +39,10 @@ export function useCart(form, initialProducts = []) {
39 39
 
40 40
       if (itemExists) {
41 41
         itemExists.qty += Number(form.qty)
42
+
43
+        if (initialProducts.length && itemExists?.label === undefined) {
44
+          itemExists['label'] = 'edit'
45
+        }
42 46
       } else {
43 47
         cart.push({
44 48
           label: 'add',

+ 8
- 1
resources/js/pages/Purchases/Edit.vue 파일 보기

@@ -14,6 +14,7 @@ import AppDropdown from '@/components/AppDropdown.vue'
14 14
 import AppAutoComplete from '@/components/AppAutoComplete.vue'
15 15
 import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
16 16
 import { provide } from 'vue'
17
+import { Inertia } from '@inertiajs/inertia'
17 18
 
18 19
 const props = defineProps({
19 20
   id: Number,
@@ -48,7 +49,13 @@ const onSubmit = () => {
48 49
       products: [...cart, ...cartDeleted],
49 50
     }))
50 51
     .put(route('purchases.update', props.id), {
51
-      onSuccess: () => onClearCartDelete(),
52
+      onSuccess: () => {
53
+        onClearCartDelete()
54
+
55
+        Inertia.visit(route('purchases.edit', props.id), {
56
+          only: ['purchaseDetail'],
57
+        })
58
+      },
52 59
     })
53 60
 }
54 61