Kaynağa Gözat

feat: discount master

Muhammad Iqbal Afandi 3 yıl önce
ebeveyn
işleme
d33f771f0e
33 değiştirilmiş dosya ile 2298 ekleme ve 1 silme
  1. 92
    0
      app/Http/Controllers/DiscountController.php
  2. 30
    0
      app/Http/Requests/StoreDiscountRequest.php
  3. 1
    0
      lang/en/messages.php
  4. 1
    0
      lang/id/messages.php
  5. 8
    0
      public/js/resources_js_pages_customer_Create_vue.js
  6. 8
    0
      public/js/resources_js_pages_customer_Edit_vue.js
  7. 8
    0
      public/js/resources_js_pages_customer_Index_vue.js
  8. 1902
    0
      public/js/resources_js_pages_discount_Index_vue.js
  9. 8
    0
      public/js/resources_js_pages_expense_Create_vue.js
  10. 8
    0
      public/js/resources_js_pages_expense_Index_vue.js
  11. 8
    0
      public/js/resources_js_pages_expense_Show_vue.js
  12. 8
    0
      public/js/resources_js_pages_laundry_Create_vue.js
  13. 8
    0
      public/js/resources_js_pages_laundry_Edit_vue.js
  14. 8
    0
      public/js/resources_js_pages_laundry_Index_vue.js
  15. 8
    0
      public/js/resources_js_pages_mutation_Report_vue.js
  16. 8
    0
      public/js/resources_js_pages_outlet_Create_vue.js
  17. 8
    0
      public/js/resources_js_pages_outlet_Edit_vue.js
  18. 8
    0
      public/js/resources_js_pages_outlet_Index_vue.js
  19. 8
    0
      public/js/resources_js_pages_product_Create_vue.js
  20. 8
    0
      public/js/resources_js_pages_product_Edit_vue.js
  21. 8
    0
      public/js/resources_js_pages_product_Index_vue.js
  22. 8
    0
      public/js/resources_js_pages_transaction_Create_vue.js
  23. 8
    0
      public/js/resources_js_pages_transaction_Index_vue.js
  24. 8
    0
      public/js/resources_js_pages_transaction_Report_vue.js
  25. 8
    0
      public/js/resources_js_pages_transaction_Show_vue.js
  26. 8
    0
      public/js/resources_js_pages_user_Create_vue.js
  27. 8
    0
      public/js/resources_js_pages_user_Edit_vue.js
  28. 8
    0
      public/js/resources_js_pages_user_Index_vue.js
  29. 8
    0
      public/js/resources_js_pages_user_Show_vue.js
  30. 9
    1
      public/js/vue.js
  31. 64
    0
      resources/js/pages/discount/Index.vue
  32. 4
    0
      resources/js/utils/menu-admin.js
  33. 3
    0
      routes/web.php

+ 92
- 0
app/Http/Controllers/DiscountController.php Dosyayı Görüntüle

@@ -0,0 +1,92 @@
1
+<?php
2
+
3
+namespace App\Http\Controllers;
4
+
5
+use App\Http\Requests\StoreDiscountRequest;
6
+use App\Models\Discount;
7
+use Illuminate\Http\Request;
8
+
9
+class DiscountController extends Controller
10
+{
11
+    /**
12
+     * Display a listing of the resource.
13
+     *
14
+     * @return \Inertia\Response
15
+     */
16
+    public function index()
17
+    {
18
+        return inertia('discount/Index', [
19
+            'id' => Discount::first()->id,
20
+            'discount' => Discount::first()->discount,
21
+        ]);
22
+    }
23
+
24
+    /**
25
+     * Show the form for creating a new resource.
26
+     *
27
+     * @return \Illuminate\Http\Response
28
+     */
29
+    public function create()
30
+    {
31
+        //
32
+    }
33
+
34
+    /**
35
+     * Store a newly created resource in storage.
36
+     *
37
+     * @param  \Illuminate\Http\Request  $request
38
+     * @return \Illuminate\Http\Response
39
+     */
40
+    public function store(StoreDiscountRequest $request)
41
+    {
42
+        Discount::truncate();
43
+        Discount::create($request->validated());
44
+
45
+        return back()->with('success', __('messages.success.store.discount'));
46
+    }
47
+
48
+    /**
49
+     * Display the specified resource.
50
+     *
51
+     * @param  int  $id
52
+     * @return \Illuminate\Http\Response
53
+     */
54
+    public function show($id)
55
+    {
56
+        //
57
+    }
58
+
59
+    /**
60
+     * Show the form for editing the specified resource.
61
+     *
62
+     * @param  int  $id
63
+     * @return \Illuminate\Http\Response
64
+     */
65
+    public function edit($id)
66
+    {
67
+        //
68
+    }
69
+
70
+    /**
71
+     * Update the specified resource in storage.
72
+     *
73
+     * @param  \Illuminate\Http\Request  $request
74
+     * @param  int  $id
75
+     * @return \Illuminate\Http\Response
76
+     */
77
+    public function update(Request $request, $id)
78
+    {
79
+        //
80
+    }
81
+
82
+    /**
83
+     * Remove the specified resource from storage.
84
+     *
85
+     * @param  int  $id
86
+     * @return \Illuminate\Http\Response
87
+     */
88
+    public function destroy($id)
89
+    {
90
+        //
91
+    }
92
+}

+ 30
- 0
app/Http/Requests/StoreDiscountRequest.php Dosyayı Görüntüle

@@ -0,0 +1,30 @@
1
+<?php
2
+
3
+namespace App\Http\Requests;
4
+
5
+use Illuminate\Foundation\Http\FormRequest;
6
+
7
+class StoreDiscountRequest extends FormRequest
8
+{
9
+    /**
10
+     * Determine if the user is authorized to make this request.
11
+     *
12
+     * @return bool
13
+     */
14
+    public function authorize()
15
+    {
16
+        return true;
17
+    }
18
+
19
+    /**
20
+     * Get the validation rules that apply to the request.
21
+     *
22
+     * @return array
23
+     */
24
+    public function rules()
25
+    {
26
+        return [
27
+            'discount' => 'required|numeric',
28
+        ];
29
+    }
30
+}

+ 1
- 0
lang/en/messages.php Dosyayı Görüntüle

@@ -22,6 +22,7 @@ return [
22 22
             'verify_email' => 'Email Verification link successfully sent',
23 23
         ],
24 24
         'store' => [
25
+            'discount' => 'Discount successfully added',
25 26
             'expense' => 'Expense successfully added',
26 27
             'transaction' => 'Transaction successfully added',
27 28
             'user' => 'User Account successfully added',

+ 1
- 0
lang/id/messages.php Dosyayı Görüntüle

@@ -22,6 +22,7 @@ return [
22 22
             'verify_email' => 'Link verifikasi email berhasil terkirim',
23 23
         ],
24 24
         'store' => [
25
+            'discount' => 'Diskon berhasil ditambahkan',
25 26
             'expense' => 'Pengeluaran berhasil ditambahkan',
26 27
             'transaction' => 'Transaksi berhasil ditambahkan',
27 28
             'user' => 'Akun user berhasil ditambahkan',

+ 8
- 0
public/js/resources_js_pages_customer_Create_vue.js Dosyayı Görüntüle

@@ -1436,6 +1436,14 @@ __webpack_require__.r(__webpack_exports__);
1436 1436
     to: '/products',
1437 1437
     component: 'product/Index'
1438 1438
   }]
1439
+}, {
1440
+  label: 'Pengaturan',
1441
+  items: [{
1442
+    label: 'Diskon',
1443
+    icon: 'pi pi-percentage',
1444
+    to: '/discounts',
1445
+    component: 'discount/Index'
1446
+  }]
1439 1447
 }]);
1440 1448
 
1441 1449
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_customer_Edit_vue.js Dosyayı Görüntüle

@@ -1857,6 +1857,14 @@ __webpack_require__.r(__webpack_exports__);
1857 1857
     to: '/products',
1858 1858
     component: 'product/Index'
1859 1859
   }]
1860
+}, {
1861
+  label: 'Pengaturan',
1862
+  items: [{
1863
+    label: 'Diskon',
1864
+    icon: 'pi pi-percentage',
1865
+    to: '/discounts',
1866
+    component: 'discount/Index'
1867
+  }]
1860 1868
 }]);
1861 1869
 
1862 1870
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_customer_Index_vue.js Dosyayı Görüntüle

@@ -1291,6 +1291,14 @@ __webpack_require__.r(__webpack_exports__);
1291 1291
     to: '/products',
1292 1292
     component: 'product/Index'
1293 1293
   }]
1294
+}, {
1295
+  label: 'Pengaturan',
1296
+  items: [{
1297
+    label: 'Diskon',
1298
+    icon: 'pi pi-percentage',
1299
+    to: '/discounts',
1300
+    component: 'discount/Index'
1301
+  }]
1294 1302
 }]);
1295 1303
 
1296 1304
 /***/ }),

+ 1902
- 0
public/js/resources_js_pages_discount_Index_vue.js
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


+ 8
- 0
public/js/resources_js_pages_expense_Create_vue.js Dosyayı Görüntüle

@@ -1473,6 +1473,14 @@ __webpack_require__.r(__webpack_exports__);
1473 1473
     to: '/products',
1474 1474
     component: 'product/Index'
1475 1475
   }]
1476
+}, {
1477
+  label: 'Pengaturan',
1478
+  items: [{
1479
+    label: 'Diskon',
1480
+    icon: 'pi pi-percentage',
1481
+    to: '/discounts',
1482
+    component: 'discount/Index'
1483
+  }]
1476 1484
 }]);
1477 1485
 
1478 1486
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_expense_Index_vue.js Dosyayı Görüntüle

@@ -1337,6 +1337,14 @@ __webpack_require__.r(__webpack_exports__);
1337 1337
     to: '/products',
1338 1338
     component: 'product/Index'
1339 1339
   }]
1340
+}, {
1341
+  label: 'Pengaturan',
1342
+  items: [{
1343
+    label: 'Diskon',
1344
+    icon: 'pi pi-percentage',
1345
+    to: '/discounts',
1346
+    component: 'discount/Index'
1347
+  }]
1340 1348
 }]);
1341 1349
 
1342 1350
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_expense_Show_vue.js Dosyayı Görüntüle

@@ -1034,6 +1034,14 @@ __webpack_require__.r(__webpack_exports__);
1034 1034
     to: '/products',
1035 1035
     component: 'product/Index'
1036 1036
   }]
1037
+}, {
1038
+  label: 'Pengaturan',
1039
+  items: [{
1040
+    label: 'Diskon',
1041
+    icon: 'pi pi-percentage',
1042
+    to: '/discounts',
1043
+    component: 'discount/Index'
1044
+  }]
1037 1045
 }]);
1038 1046
 
1039 1047
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_laundry_Create_vue.js Dosyayı Görüntüle

@@ -1448,6 +1448,14 @@ __webpack_require__.r(__webpack_exports__);
1448 1448
     to: '/products',
1449 1449
     component: 'product/Index'
1450 1450
   }]
1451
+}, {
1452
+  label: 'Pengaturan',
1453
+  items: [{
1454
+    label: 'Diskon',
1455
+    icon: 'pi pi-percentage',
1456
+    to: '/discounts',
1457
+    component: 'discount/Index'
1458
+  }]
1451 1459
 }]);
1452 1460
 
1453 1461
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_laundry_Edit_vue.js Dosyayı Görüntüle

@@ -1616,6 +1616,14 @@ __webpack_require__.r(__webpack_exports__);
1616 1616
     to: '/products',
1617 1617
     component: 'product/Index'
1618 1618
   }]
1619
+}, {
1620
+  label: 'Pengaturan',
1621
+  items: [{
1622
+    label: 'Diskon',
1623
+    icon: 'pi pi-percentage',
1624
+    to: '/discounts',
1625
+    component: 'discount/Index'
1626
+  }]
1619 1627
 }]);
1620 1628
 
1621 1629
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_laundry_Index_vue.js Dosyayı Görüntüle

@@ -1270,6 +1270,14 @@ __webpack_require__.r(__webpack_exports__);
1270 1270
     to: '/products',
1271 1271
     component: 'product/Index'
1272 1272
   }]
1273
+}, {
1274
+  label: 'Pengaturan',
1275
+  items: [{
1276
+    label: 'Diskon',
1277
+    icon: 'pi pi-percentage',
1278
+    to: '/discounts',
1279
+    component: 'discount/Index'
1280
+  }]
1273 1281
 }]);
1274 1282
 
1275 1283
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_mutation_Report_vue.js Dosyayı Görüntüle

@@ -1352,6 +1352,14 @@ __webpack_require__.r(__webpack_exports__);
1352 1352
     to: '/products',
1353 1353
     component: 'product/Index'
1354 1354
   }]
1355
+}, {
1356
+  label: 'Pengaturan',
1357
+  items: [{
1358
+    label: 'Diskon',
1359
+    icon: 'pi pi-percentage',
1360
+    to: '/discounts',
1361
+    component: 'discount/Index'
1362
+  }]
1355 1363
 }]);
1356 1364
 
1357 1365
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_outlet_Create_vue.js Dosyayı Görüntüle

@@ -1250,6 +1250,14 @@ __webpack_require__.r(__webpack_exports__);
1250 1250
     to: '/products',
1251 1251
     component: 'product/Index'
1252 1252
   }]
1253
+}, {
1254
+  label: 'Pengaturan',
1255
+  items: [{
1256
+    label: 'Diskon',
1257
+    icon: 'pi pi-percentage',
1258
+    to: '/discounts',
1259
+    component: 'discount/Index'
1260
+  }]
1253 1261
 }]);
1254 1262
 
1255 1263
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_outlet_Edit_vue.js Dosyayı Görüntüle

@@ -1413,6 +1413,14 @@ __webpack_require__.r(__webpack_exports__);
1413 1413
     to: '/products',
1414 1414
     component: 'product/Index'
1415 1415
   }]
1416
+}, {
1417
+  label: 'Pengaturan',
1418
+  items: [{
1419
+    label: 'Diskon',
1420
+    icon: 'pi pi-percentage',
1421
+    to: '/discounts',
1422
+    component: 'discount/Index'
1423
+  }]
1416 1424
 }]);
1417 1425
 
1418 1426
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_outlet_Index_vue.js Dosyayı Görüntüle

@@ -1271,6 +1271,14 @@ __webpack_require__.r(__webpack_exports__);
1271 1271
     to: '/products',
1272 1272
     component: 'product/Index'
1273 1273
   }]
1274
+}, {
1275
+  label: 'Pengaturan',
1276
+  items: [{
1277
+    label: 'Diskon',
1278
+    icon: 'pi pi-percentage',
1279
+    to: '/discounts',
1280
+    component: 'discount/Index'
1281
+  }]
1274 1282
 }]);
1275 1283
 
1276 1284
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_product_Create_vue.js Dosyayı Görüntüle

@@ -1448,6 +1448,14 @@ __webpack_require__.r(__webpack_exports__);
1448 1448
     to: '/products',
1449 1449
     component: 'product/Index'
1450 1450
   }]
1451
+}, {
1452
+  label: 'Pengaturan',
1453
+  items: [{
1454
+    label: 'Diskon',
1455
+    icon: 'pi pi-percentage',
1456
+    to: '/discounts',
1457
+    component: 'discount/Index'
1458
+  }]
1451 1459
 }]);
1452 1460
 
1453 1461
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_product_Edit_vue.js Dosyayı Görüntüle

@@ -1616,6 +1616,14 @@ __webpack_require__.r(__webpack_exports__);
1616 1616
     to: '/products',
1617 1617
     component: 'product/Index'
1618 1618
   }]
1619
+}, {
1620
+  label: 'Pengaturan',
1621
+  items: [{
1622
+    label: 'Diskon',
1623
+    icon: 'pi pi-percentage',
1624
+    to: '/discounts',
1625
+    component: 'discount/Index'
1626
+  }]
1619 1627
 }]);
1620 1628
 
1621 1629
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_product_Index_vue.js Dosyayı Görüntüle

@@ -1270,6 +1270,14 @@ __webpack_require__.r(__webpack_exports__);
1270 1270
     to: '/products',
1271 1271
     component: 'product/Index'
1272 1272
   }]
1273
+}, {
1274
+  label: 'Pengaturan',
1275
+  items: [{
1276
+    label: 'Diskon',
1277
+    icon: 'pi pi-percentage',
1278
+    to: '/discounts',
1279
+    component: 'discount/Index'
1280
+  }]
1273 1281
 }]);
1274 1282
 
1275 1283
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_transaction_Create_vue.js Dosyayı Görüntüle

@@ -2532,6 +2532,14 @@ __webpack_require__.r(__webpack_exports__);
2532 2532
     to: '/products',
2533 2533
     component: 'product/Index'
2534 2534
   }]
2535
+}, {
2536
+  label: 'Pengaturan',
2537
+  items: [{
2538
+    label: 'Diskon',
2539
+    icon: 'pi pi-percentage',
2540
+    to: '/discounts',
2541
+    component: 'discount/Index'
2542
+  }]
2535 2543
 }]);
2536 2544
 
2537 2545
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_transaction_Index_vue.js Dosyayı Görüntüle

@@ -2245,6 +2245,14 @@ __webpack_require__.r(__webpack_exports__);
2245 2245
     to: '/products',
2246 2246
     component: 'product/Index'
2247 2247
   }]
2248
+}, {
2249
+  label: 'Pengaturan',
2250
+  items: [{
2251
+    label: 'Diskon',
2252
+    icon: 'pi pi-percentage',
2253
+    to: '/discounts',
2254
+    component: 'discount/Index'
2255
+  }]
2248 2256
 }]);
2249 2257
 
2250 2258
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_transaction_Report_vue.js Dosyayı Görüntüle

@@ -1376,6 +1376,14 @@ __webpack_require__.r(__webpack_exports__);
1376 1376
     to: '/products',
1377 1377
     component: 'product/Index'
1378 1378
   }]
1379
+}, {
1380
+  label: 'Pengaturan',
1381
+  items: [{
1382
+    label: 'Diskon',
1383
+    icon: 'pi pi-percentage',
1384
+    to: '/discounts',
1385
+    component: 'discount/Index'
1386
+  }]
1379 1387
 }]);
1380 1388
 
1381 1389
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_transaction_Show_vue.js Dosyayı Görüntüle

@@ -1290,6 +1290,14 @@ __webpack_require__.r(__webpack_exports__);
1290 1290
     to: '/products',
1291 1291
     component: 'product/Index'
1292 1292
   }]
1293
+}, {
1294
+  label: 'Pengaturan',
1295
+  items: [{
1296
+    label: 'Diskon',
1297
+    icon: 'pi pi-percentage',
1298
+    to: '/discounts',
1299
+    component: 'discount/Index'
1300
+  }]
1293 1301
 }]);
1294 1302
 
1295 1303
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_user_Create_vue.js Dosyayı Görüntüle

@@ -1465,6 +1465,14 @@ __webpack_require__.r(__webpack_exports__);
1465 1465
     to: '/products',
1466 1466
     component: 'product/Index'
1467 1467
   }]
1468
+}, {
1469
+  label: 'Pengaturan',
1470
+  items: [{
1471
+    label: 'Diskon',
1472
+    icon: 'pi pi-percentage',
1473
+    to: '/discounts',
1474
+    component: 'discount/Index'
1475
+  }]
1468 1476
 }]);
1469 1477
 
1470 1478
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_user_Edit_vue.js Dosyayı Görüntüle

@@ -1642,6 +1642,14 @@ __webpack_require__.r(__webpack_exports__);
1642 1642
     to: '/products',
1643 1643
     component: 'product/Index'
1644 1644
   }]
1645
+}, {
1646
+  label: 'Pengaturan',
1647
+  items: [{
1648
+    label: 'Diskon',
1649
+    icon: 'pi pi-percentage',
1650
+    to: '/discounts',
1651
+    component: 'discount/Index'
1652
+  }]
1645 1653
 }]);
1646 1654
 
1647 1655
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_user_Index_vue.js Dosyayı Görüntüle

@@ -1283,6 +1283,14 @@ __webpack_require__.r(__webpack_exports__);
1283 1283
     to: '/products',
1284 1284
     component: 'product/Index'
1285 1285
   }]
1286
+}, {
1287
+  label: 'Pengaturan',
1288
+  items: [{
1289
+    label: 'Diskon',
1290
+    icon: 'pi pi-percentage',
1291
+    to: '/discounts',
1292
+    component: 'discount/Index'
1293
+  }]
1286 1294
 }]);
1287 1295
 
1288 1296
 /***/ }),

+ 8
- 0
public/js/resources_js_pages_user_Show_vue.js Dosyayı Görüntüle

@@ -923,6 +923,14 @@ __webpack_require__.r(__webpack_exports__);
923 923
     to: '/products',
924 924
     component: 'product/Index'
925 925
   }]
926
+}, {
927
+  label: 'Pengaturan',
928
+  items: [{
929
+    label: 'Diskon',
930
+    icon: 'pi pi-percentage',
931
+    to: '/discounts',
932
+    component: 'discount/Index'
933
+  }]
926 934
 }]);
927 935
 
928 936
 /***/ }),

+ 9
- 1
public/js/vue.js Dosyayı Görüntüle

@@ -57089,6 +57089,14 @@ var map = {
57089 57089
 		"./resources/js/pages/customer/TableHeader.js",
57090 57090
 		"resources_js_pages_customer_TableHeader_js"
57091 57091
 	],
57092
+	"./discount/Index": [
57093
+		"./resources/js/pages/discount/Index.vue",
57094
+		"resources_js_pages_discount_Index_vue"
57095
+	],
57096
+	"./discount/Index.vue": [
57097
+		"./resources/js/pages/discount/Index.vue",
57098
+		"resources_js_pages_discount_Index_vue"
57099
+	],
57092 57100
 	"./expense/Create": [
57093 57101
 		"./resources/js/pages/expense/Create.vue",
57094 57102
 		"resources_js_pages_expense_Create_vue"
@@ -57430,7 +57438,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
57430 57438
 /******/ 		// This function allow to reference async chunks
57431 57439
 /******/ 		__webpack_require__.u = (chunkId) => {
57432 57440
 /******/ 			// return url for filenames based on template
57433
-/******/ 			return "js/" + chunkId + ".js?id=" + {"resources_js_pages_Access_vue":"a18ed856923fae52","resources_js_pages_auth_ForgotPassword_vue":"c9f401672b6f2423","resources_js_pages_auth_Login_vue":"cb0cb153b976d2c1","resources_js_pages_auth_ResetPassword_vue":"1078df5cebf2e3c6","resources_js_pages_auth_VerifyEmail_vue":"2c5cb3cdec6b103a","resources_js_pages_customer_Create_vue":"59fc706943ba50c8","resources_js_pages_customer_Edit_vue":"1788c6553ad2707d","resources_js_pages_customer_Index_vue":"a6f3448a51fc963c","resources_js_pages_customer_TableHeader_js":"71be5afdca048a9c","resources_js_pages_expense_Create_vue":"daab3b05799290e7","resources_js_pages_expense_Index_vue":"2340ad4cdb68acdb","resources_js_pages_expense_Show_vue":"9e34bd0b23f1b884","resources_js_pages_expense_TableHeader_js":"72e3dee74175b1c0","resources_js_pages_laundry_Create_vue":"97f2f2be1167448e","resources_js_pages_laundry_Edit_vue":"4a82c06b4bb37612","resources_js_pages_laundry_Index_vue":"6b720d4bcadfbb1c","resources_js_pages_laundry_TableHeader_js":"494e577855bbcaf6","resources_js_pages_mutation_Report_vue":"59ca533fe2809e0e","resources_js_pages_mutation_TableHeader_js":"82c2999bd7d098a1","resources_js_pages_outlet_Create_vue":"82331454695ef242","resources_js_pages_outlet_Edit_vue":"402632d8613ef71a","resources_js_pages_outlet_Index_vue":"4658a1b356e13a9e","resources_js_pages_outlet_TableHeader_js":"498bf7e64bc0d0c4","resources_js_pages_product_Create_vue":"4a4ce3aaccd86cd1","resources_js_pages_product_Edit_vue":"9e836628d8736af0","resources_js_pages_product_Index_vue":"c78b26d054c05f52","resources_js_pages_product_TableHeader_js":"b8eaaa9de25a2322","resources_js_pages_transaction_Create_vue":"b26f3cdfbaeaac64","resources_js_pages_transaction_Index_vue":"4566c2f0d8ee498f","resources_js_pages_transaction_Report_vue":"2fc34c6e9fa862d4","resources_js_pages_transaction_Show_vue":"eedcfa9f40999e8a","resources_js_pages_transaction_TableHeader_js":"ba35ab28bb4ac891","resources_js_pages_user_Create_vue":"e60fc75a0ddf8631","resources_js_pages_user_Edit_vue":"a265ed59609ad615","resources_js_pages_user_Index_vue":"c3ffb431084eb016","resources_js_pages_user_Show_vue":"bb0798bfd556e1f1","resources_js_pages_user_TableHeader_js":"5653ecbcd70fd235"}[chunkId] + "";
57441
+/******/ 			return "js/" + chunkId + ".js?id=" + {"resources_js_pages_Access_vue":"a18ed856923fae52","resources_js_pages_auth_ForgotPassword_vue":"c9f401672b6f2423","resources_js_pages_auth_Login_vue":"cb0cb153b976d2c1","resources_js_pages_auth_ResetPassword_vue":"1078df5cebf2e3c6","resources_js_pages_auth_VerifyEmail_vue":"2c5cb3cdec6b103a","resources_js_pages_customer_Create_vue":"4355caf3d2b48fb4","resources_js_pages_customer_Edit_vue":"7862732dd415921b","resources_js_pages_customer_Index_vue":"e95585e9255bed2b","resources_js_pages_customer_TableHeader_js":"71be5afdca048a9c","resources_js_pages_discount_Index_vue":"620fb86bb8bb497a","resources_js_pages_expense_Create_vue":"f50b5fa54c5a58b8","resources_js_pages_expense_Index_vue":"51a3326559ffd7ce","resources_js_pages_expense_Show_vue":"19793e4301beb99d","resources_js_pages_expense_TableHeader_js":"72e3dee74175b1c0","resources_js_pages_laundry_Create_vue":"ef263b86c1463566","resources_js_pages_laundry_Edit_vue":"277422f22f626724","resources_js_pages_laundry_Index_vue":"ddad487ddac2c512","resources_js_pages_laundry_TableHeader_js":"494e577855bbcaf6","resources_js_pages_mutation_Report_vue":"350fadc9e6b469ec","resources_js_pages_mutation_TableHeader_js":"82c2999bd7d098a1","resources_js_pages_outlet_Create_vue":"45dd394eabb2289e","resources_js_pages_outlet_Edit_vue":"a1ab832724a40105","resources_js_pages_outlet_Index_vue":"ae2bfeb3e41ffe2a","resources_js_pages_outlet_TableHeader_js":"498bf7e64bc0d0c4","resources_js_pages_product_Create_vue":"1a19b410fe7c1bb9","resources_js_pages_product_Edit_vue":"b9f35e95f8e0281a","resources_js_pages_product_Index_vue":"9f2118d931a89639","resources_js_pages_product_TableHeader_js":"b8eaaa9de25a2322","resources_js_pages_transaction_Create_vue":"94d89ad1966de0e6","resources_js_pages_transaction_Index_vue":"dffb876a6c81f748","resources_js_pages_transaction_Report_vue":"168106ce353c3b02","resources_js_pages_transaction_Show_vue":"95afbdbb5de7eef7","resources_js_pages_transaction_TableHeader_js":"ba35ab28bb4ac891","resources_js_pages_user_Create_vue":"d35ecedd82badeca","resources_js_pages_user_Edit_vue":"c150c3bdcc68b028","resources_js_pages_user_Index_vue":"bf9346bcc095a7ef","resources_js_pages_user_Show_vue":"e7e912342634addf","resources_js_pages_user_TableHeader_js":"5653ecbcd70fd235"}[chunkId] + "";
57434 57442
 /******/ 		};
57435 57443
 /******/ 	})();
57436 57444
 /******/ 	

+ 64
- 0
resources/js/pages/discount/Index.vue Dosyayı Görüntüle

@@ -0,0 +1,64 @@
1
+<script setup>
2
+import { ref, watch } from 'vue'
3
+import { Head, useForm } from '@inertiajs/inertia-vue3'
4
+import AppInputNumber from '@/components/AppInputNumber.vue'
5
+import AppButton from '@/components/AppButton.vue'
6
+import AppLayout from '@/layouts/AppLayout.vue'
7
+
8
+const props = defineProps({
9
+  id: Number,
10
+  discount: Number,
11
+})
12
+
13
+const btnDisabled = ref(true)
14
+
15
+const form = useForm({
16
+  discount: props.discount,
17
+})
18
+
19
+const submit = () => {
20
+  if (form.discount == null) {
21
+    form.discount = 0
22
+  }
23
+
24
+  form.post(route('discounts.store'), { onSuccess: () => (btnDisabled.value = true) })
25
+}
26
+</script>
27
+
28
+<template>
29
+  <Head title="Pengaturan Diskon" />
30
+
31
+  <AppLayout>
32
+    <h1>Diskon</h1>
33
+
34
+    <div class="grid">
35
+      <div class="col-12 md:col-6">
36
+        <Card>
37
+          <template #content>
38
+            <AppInputNumber
39
+              class="md:w-16rem"
40
+              label="Jumlah diskon"
41
+              placeholder="jumlah diskon"
42
+              :disabled="btnDisabled"
43
+              :error="form.errors.discount"
44
+              v-model="form.discount"
45
+            />
46
+          </template>
47
+
48
+          <template #footer>
49
+            <div class="flex flex-column sm:flex-row sm:justify-content-between">
50
+              <Button
51
+                label="Edit"
52
+                icon="pi pi-trash"
53
+                class="p-button-text p-button-warning mb-3 sm:md-0"
54
+                @click="btnDisabled = false"
55
+              />
56
+
57
+              <AppButton @click="submit" label="Simpan" icon="pi pi-check" class="p-button-text" />
58
+            </div>
59
+          </template>
60
+        </Card>
61
+      </div>
62
+    </div>
63
+  </AppLayout>
64
+</template>

+ 4
- 0
resources/js/utils/menu-admin.js Dosyayı Görüntüle

@@ -24,4 +24,8 @@ export default [
24 24
       { label: 'Product', icon: 'pi pi-table', to: '/products', component: 'product/Index' },
25 25
     ],
26 26
   },
27
+  {
28
+    label: 'Pengaturan',
29
+    items: [{ label: 'Diskon', icon: 'pi pi-percentage', to: '/discounts', component: 'discount/Index' }],
30
+  },
27 31
 ]

+ 3
- 0
routes/web.php Dosyayı Görüntüle

@@ -1,6 +1,7 @@
1 1
 <?php
2 2
 
3 3
 use App\Http\Controllers\CustomerController;
4
+use App\Http\Controllers\DiscountController;
4 5
 use App\Http\Controllers\ExpenseController;
5 6
 use App\Http\Controllers\LaundryController;
6 7
 use App\Http\Controllers\OutletController;
@@ -37,6 +38,8 @@ Route::middleware(['auth'])->group(function () {
37 38
 
38 39
     Route::resource('/products', ProductController::class);
39 40
 
41
+    Route::resource('/discounts', DiscountController::class);
42
+
40 43
     Route::resource('/transactions', TransactionController::class);
41 44
 
42 45
     Route::resource('/expenses', ExpenseController::class);