Procházet zdrojové kódy

fix: transaction master, button style and other

Muhammad Iqbal Afandi před 4 roky
rodič
revize
91fea650d8

+ 9
- 3
app/Http/Controllers/TransactionController.php Zobrazit soubor

@@ -121,6 +121,12 @@ class TransactionController extends Controller
121 121
                 ]);
122 122
             }
123 123
 
124
+            $transaction->mutations()->create([
125
+                'type' => 1,
126
+                'amount' => $transaction->totalPrice(),
127
+                'outlet_id' => auth()->user()->outlet_id,
128
+            ]);
129
+
124 130
             DB::commit();
125 131
 
126 132
             $transaction = Transaction::latest()->first();
@@ -128,9 +134,9 @@ class TransactionController extends Controller
128 134
             $thermalPrinting = new ThermalPrinting($transaction);
129 135
             $thermalPrinting->startPrinting(2);
130 136
 
131
-            return to_route('transactions.index')->with('success', __('Transaksi berhasil ditambahkan'));
137
+            return to_route('transactions.index')->with('success', __('messages.success.store.transaction'));
132 138
         } catch (QueryException $e) {
133
-            return back()->with('error', __('Penambahan transaksi gagal'));
139
+            return back()->with('error', __('messages.error.store.transaction'));
134 140
 
135 141
             DB::rollBack();
136 142
         }
@@ -196,7 +202,7 @@ class TransactionController extends Controller
196 202
     {
197 203
         $transaction->update($request->validated());
198 204
 
199
-        return back()->with('success', __('Transaksi berhasil diperbaharui'));
205
+        return back()->with('success', __('messages.success.update.transaction_status'));
200 206
     }
201 207
 
202 208
     /**

+ 1
- 1
app/Models/Customer.php Zobrazit soubor

@@ -21,7 +21,7 @@ class Customer extends Model
21 21
     protected function genderId(): Attribute
22 22
     {
23 23
         return Attribute::make(
24
-            get:fn($value) => $value == 1 ? __('Perempuan') : __('Laki-laki'),
24
+            get:fn($value) => $value == 1 ? __('words.female') : __('words.male'),
25 25
         );
26 26
     }
27 27
 

+ 6
- 0
app/Models/Transaction.php Zobrazit soubor

@@ -4,6 +4,7 @@ namespace App\Models;
4 4
 
5 5
 use App\Models\Customer;
6 6
 use App\Models\Helpers\HasHelper;
7
+use App\Models\Mutation;
7 8
 use App\Models\Outlet;
8 9
 use App\Models\TransactionDetail;
9 10
 use App\Models\TransactionStatus;
@@ -65,6 +66,11 @@ class Transaction extends Model
65 66
         return $this->belongsTo(User::class);
66 67
     }
67 68
 
69
+    public function mutations()
70
+    {
71
+        return $this->hasMany(Mutation::class);
72
+    }
73
+
68 74
     public function scopeFilter($query, array $filters)
69 75
     {
70 76
         $query->when($filters['search'] ?? null, function ($query, $search) {

+ 1
- 1
app/Models/User.php Zobrazit soubor

@@ -59,7 +59,7 @@ class User extends Authenticatable implements MustVerifyEmail
59 59
     protected function status(): Attribute
60 60
     {
61 61
         return Attribute::make(
62
-            get:fn($value) => $value ? __('Aktif') : __('Non Aktif'),
62
+            get:fn($value) => $value ? __('words.active') : __('words.not_active'),
63 63
         );
64 64
     }
65 65
 

+ 1
- 1
database/migrations/2022_02_22_031729_create_mutations_table.php Zobrazit soubor

@@ -19,7 +19,7 @@ return new class extends Migration
19 19
             $table->unsignedBigInteger('amount');
20 20
             $table->foreignId('outlet_id')->constrained();
21 21
             $table->foreignId('transaction_id')->constrained();
22
-            $table->foreignId('expense_id')->constrained();
22
+            $table->foreignId('expense_id')->nullable()->default(null)->constrained();
23 23
             $table->timestamps();
24 24
         });
25 25
     }

+ 1
- 1
designs/diagrams/database.puml Zobrazit soubor

@@ -94,8 +94,8 @@ entity Expense {
94 94
 }
95 95
 
96 96
 Mutation }|--|| Expense
97
-Mutation }|--|| Transaction
98 97
 Mutation ||--|{ Outlet
98
+Transaction }|--|| Mutation
99 99
 Transaction }|--|| TransactionDetail
100 100
 Transaction ||--|{ TransactionStatus
101 101
 Transaction ||--|{ Outlet

binární
designs/diagrams/database/Database.png Zobrazit soubor


+ 28
- 20
public/js/resources_js_pages_Access_vue.js Zobrazit soubor

@@ -19,8 +19,7 @@ __webpack_require__.r(__webpack_exports__);
19 19
     expose();
20 20
     var __returned__ = {
21 21
       Head: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__.Head,
22
-      Link: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__.Link,
23
-      useForm: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__.useForm
22
+      Link: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__.Link
24 23
     };
25 24
     Object.defineProperty(__returned__, '__isScriptSetup', {
26 25
       enumerable: false,
@@ -44,35 +43,42 @@ __webpack_require__.r(__webpack_exports__);
44 43
 /* harmony export */ });
45 44
 /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
46 45
 
47
-var _hoisted_1 = {
46
+
47
+var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("head", {
48
+  title: "Akses ditolak"
49
+}, null, -1
50
+/* HOISTED */
51
+);
52
+
53
+var _hoisted_2 = {
48 54
   "class": "surface-0 flex align-items-center justify-content-center min-h-screen min-w-screen overflow-hidden"
49 55
 };
50
-var _hoisted_2 = {
56
+var _hoisted_3 = {
51 57
   "class": "grid justify-content-center p-2 lg:p-0",
52 58
   style: {
53 59
     "min-width": "80%"
54 60
   }
55 61
 };
56
-var _hoisted_3 = {
62
+var _hoisted_4 = {
57 63
   "class": "col-12 xl:col-6",
58 64
   style: {
59 65
     "border-radius": "56px",
60 66
     "padding": "0.3rem",
61
-    "background": "linear-gradient("
67
+    "background": "linear-gradient(180deg, rgba(247, 149, 48, 0.4) 10%, rgba(247, 149, 48, 0) 30%)"
62 68
   }
63 69
 };
64
-var _hoisted_4 = {
70
+var _hoisted_5 = {
65 71
   "class": "h-full w-full m-0 py-7 px-4",
66 72
   style: {
67 73
     "border-radius": "53px",
68
-    "background": "linear-gradient("
74
+    "background": "linear-gradient(180deg, var(--surface-50) 38.9%, var(--surface-0))"
69 75
   }
70 76
 };
71
-var _hoisted_5 = {
77
+var _hoisted_6 = {
72 78
   "class": "grid flex flex-column align-items-center"
73 79
 };
74 80
 
75
-var _hoisted_6 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
81
+var _hoisted_7 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", {
76 82
   "class": "flex justify-content-center align-items-center bg-orange-500 border-circle",
77 83
   style: {
78 84
     "width": "3.2rem",
@@ -84,23 +90,23 @@ var _hoisted_6 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementV
84 90
 /* HOISTED */
85 91
 );
86 92
 
87
-var _hoisted_7 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", {
93
+var _hoisted_8 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", {
88 94
   "class": "text-900 font-bold text-4xl lg:text-5xl mb-2"
89
-}, " Access Denied ", -1
95
+}, "Akses ditolak", -1
90 96
 /* HOISTED */
91 97
 );
92 98
 
93
-var _hoisted_8 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", {
99
+var _hoisted_9 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", {
94 100
   "class": "text-600 text-center"
95
-}, "You do not have the necesary permisions. Please contact admins.", -1
101
+}, "Kamu tidak memiliki izi kehalaman ini, silakan hubungan admin", -1
96 102
 /* HOISTED */
97 103
 );
98 104
 
99
-var _hoisted_9 = {
105
+var _hoisted_10 = {
100 106
   "class": "col-12 mt-5 text-center"
101 107
 };
102 108
 
103
-var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("i", {
109
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("i", {
104 110
   "class": "pi pi-fw pi-arrow-left text-blue-500 mr-2",
105 111
   style: {
106 112
     "vertical-align": "center"
@@ -109,20 +115,22 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
109 115
 /* HOISTED */
110 116
 );
111 117
 
112
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)("Go to Dashboard");
118
+var _hoisted_12 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)("Kembali ke Dashboard");
113 119
 
114 120
 function render(_ctx, _cache, $props, $setup, $data, $options) {
115
-  return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(" <div class=\"col-12 mt-5 xl:mt-0 text-center\"> "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("   <img "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("     src=\"layout/images/logo-orange.svg\" "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("     alt=\"Sakai logo\" "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("     class=\"mb-5\" "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("     style=\"width: 81px; height: 60px\" "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("   /> "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(" </div> "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_5, [_hoisted_6, _hoisted_7, _hoisted_8, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(" <img "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("   src=\"layout/images/asset-access.svg\" "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("   alt=\"Access denied\" "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("   class=\"mt-5\" "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("   width=\"80%\" "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(" /> "), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_9, [_hoisted_10, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["Link"], {
121
+  return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [_hoisted_1, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_6, [_hoisted_7, _hoisted_8, _hoisted_9, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_10, [_hoisted_11, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["Link"], {
116 122
     href: "/",
117 123
     "class": "text-blue-500"
118 124
   }, {
119 125
     "default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
120
-      return [_hoisted_11];
126
+      return [_hoisted_12];
121 127
     }),
122 128
     _: 1
123 129
     /* STABLE */
124 130
 
125
-  })])])])])])]);
131
+  })])])])])])])], 64
132
+  /* STABLE_FRAGMENT */
133
+  );
126 134
 }
127 135
 
128 136
 /***/ }),

+ 4
- 2
public/js/resources_js_pages_customer_Create_vue.js Zobrazit soubor

@@ -1178,7 +1178,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1178 1178
             modelValue: $setup.form.customer_number,
1179 1179
             "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
1180 1180
               return $setup.form.customer_number = $event;
1181
-            })
1181
+            }),
1182
+            placeholder: "id customer"
1182 1183
           }, null, 8
1183 1184
           /* PROPS */
1184 1185
           , ["modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
@@ -1228,7 +1229,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1228 1229
           return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppButton"], {
1229 1230
             onClick: $setup.submit,
1230 1231
             label: "Simpan",
1231
-            icon: "pi pi-check"
1232
+            icon: "pi pi-check",
1233
+            "class": "p-button-text"
1232 1234
           })])];
1233 1235
         }),
1234 1236
         _: 1

+ 4
- 2
public/js/resources_js_pages_customer_Edit_vue.js Zobrazit soubor

@@ -1330,7 +1330,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1330 1330
             modelValue: $setup.form.customer_number,
1331 1331
             "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
1332 1332
               return $setup.form.customer_number = $event;
1333
-            })
1333
+            }),
1334
+            placeholder: "id customer"
1334 1335
           }, null, 8
1335 1336
           /* PROPS */
1336 1337
           , ["modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
@@ -1397,7 +1398,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1397 1398
           }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppButton"], {
1398 1399
             onClick: $setup.submit,
1399 1400
             label: "Simpan",
1400
-            icon: "pi pi-check"
1401
+            icon: "pi pi-check",
1402
+            "class": "p-button-text"
1401 1403
           })])];
1402 1404
         }),
1403 1405
         _: 1

+ 2
- 1
public/js/resources_js_pages_customer_Index_vue.js Zobrazit soubor

@@ -1016,7 +1016,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1016 1016
           , ["modelValue"])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppButton"], {
1017 1017
             href: _ctx.route('customers.create'),
1018 1018
             label: "Tambah Customer",
1019
-            icon: "pi pi-pencil"
1019
+            icon: "pi pi-pencil",
1020
+            "class": "p-button-text"
1020 1021
           }, null, 8
1021 1022
           /* PROPS */
1022 1023
           , ["href"])])])];

+ 2
- 1
public/js/resources_js_pages_laundry_Create_vue.js Zobrazit soubor

@@ -1026,7 +1026,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1026 1026
           return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppButton"], {
1027 1027
             onClick: $setup.submit,
1028 1028
             label: "Simpan",
1029
-            icon: "pi pi-check"
1029
+            icon: "pi pi-check",
1030
+            "class": "p-button-text"
1030 1031
           })])];
1031 1032
         }),
1032 1033
         _: 1

+ 2
- 1
public/js/resources_js_pages_laundry_Edit_vue.js Zobrazit soubor

@@ -1200,7 +1200,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1200 1200
           }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppButton"], {
1201 1201
             onClick: $setup.submit,
1202 1202
             label: "Simpan",
1203
-            icon: "pi pi-check"
1203
+            icon: "pi pi-check",
1204
+            "class": "p-button-text"
1204 1205
           })])];
1205 1206
         }),
1206 1207
         _: 1

+ 2
- 1
public/js/resources_js_pages_laundry_Index_vue.js Zobrazit soubor

@@ -1016,7 +1016,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1016 1016
           , ["modelValue"])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppButton"], {
1017 1017
             href: _ctx.route('laundries.create'),
1018 1018
             label: "Tambah Laundry",
1019
-            icon: "pi pi-pencil"
1019
+            icon: "pi pi-pencil",
1020
+            "class": "p-button-text"
1020 1021
           }, null, 8
1021 1022
           /* PROPS */
1022 1023
           , ["href"])])])];

+ 4
- 2
public/js/resources_js_pages_outlet_Create_vue.js Zobrazit soubor

@@ -1005,7 +1005,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1005 1005
             modelValue: $setup.form.outlet_number,
1006 1006
             "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
1007 1007
               return $setup.form.outlet_number = $event;
1008
-            })
1008
+            }),
1009
+            placeholder: "id outlet"
1009 1010
           }, null, 8
1010 1011
           /* PROPS */
1011 1012
           , ["modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
@@ -1044,7 +1045,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1044 1045
           return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppButton"], {
1045 1046
             onClick: $setup.submit,
1046 1047
             label: "Simpan",
1047
-            icon: "pi pi-check"
1048
+            icon: "pi pi-check",
1049
+            "class": "p-button-text"
1048 1050
           })])];
1049 1051
         }),
1050 1052
         _: 1

+ 4
- 2
public/js/resources_js_pages_outlet_Edit_vue.js Zobrazit soubor

@@ -1157,7 +1157,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1157 1157
             modelValue: $setup.form.outlet_number,
1158 1158
             "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
1159 1159
               return $setup.form.outlet_number = $event;
1160
-            })
1160
+            }),
1161
+            placeholder: "id outlet"
1161 1162
           }, null, 8
1162 1163
           /* PROPS */
1163 1164
           , ["modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
@@ -1213,7 +1214,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1213 1214
           }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppButton"], {
1214 1215
             onClick: $setup.submit,
1215 1216
             label: "Simpan",
1216
-            icon: "pi pi-check"
1217
+            icon: "pi pi-check",
1218
+            "class": "p-button-text"
1217 1219
           })])];
1218 1220
         }),
1219 1221
         _: 1

+ 2
- 1
public/js/resources_js_pages_outlet_Index_vue.js Zobrazit soubor

@@ -1016,7 +1016,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1016 1016
           , ["modelValue"])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppButton"], {
1017 1017
             href: _ctx.route('outlets.create'),
1018 1018
             label: "Tambah Outlet",
1019
-            icon: "pi pi-pencil"
1019
+            icon: "pi pi-pencil",
1020
+            "class": "p-button-text"
1020 1021
           }, null, 8
1021 1022
           /* PROPS */
1022 1023
           , ["href"])])])];

+ 1
- 1
public/js/vue.js Zobrazit soubor

@@ -43465,7 +43465,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
43465 43465
 /******/ 		// This function allow to reference async chunks
43466 43466
 /******/ 		__webpack_require__.u = (chunkId) => {
43467 43467
 /******/ 			// return url for filenames based on template
43468
-/******/ 			return "js/" + chunkId + ".js?id=" + {"resources_js_pages_Access_vue":"5c8a7a90d229c3f4","resources_js_pages_auth_ForgotPassword_vue":"9db08b886f3acf35","resources_js_pages_auth_Login_vue":"998ee232f83d0aa9","resources_js_pages_auth_ResetPassword_vue":"3191258dc6d8a4b7","resources_js_pages_auth_VerifyEmail_vue":"632c69e9e8e9c0af","resources_js_pages_customer_Create_vue":"49ac9c113ddac399","resources_js_pages_customer_Edit_vue":"5c8910eb625abf14","resources_js_pages_customer_Index_vue":"531ae28619c9501a","resources_js_pages_customer_TableHeader_js":"be6685f342bbd7c2","resources_js_pages_laundry_Create_vue":"24b222d472e458b9","resources_js_pages_laundry_Edit_vue":"e972d2d98c195ade","resources_js_pages_laundry_Index_vue":"a4df50af578d72ee","resources_js_pages_laundry_TableHeader_js":"494e577855bbcaf6","resources_js_pages_outlet_Create_vue":"916319d80a0821ca","resources_js_pages_outlet_Edit_vue":"a89fba3c72a8d6ef","resources_js_pages_outlet_Index_vue":"580d1ba885665300","resources_js_pages_outlet_TableHeader_js":"960433b5f8e003c1","resources_js_pages_transaction_Create_vue":"5390e70d3c3444be","resources_js_pages_transaction_Index_vue":"9fef47b26e89fec8","resources_js_pages_transaction_Show_vue":"961762e530a6b329","resources_js_pages_transaction_TableHeader_js":"8b928867ad174e10","resources_js_pages_user_Create_vue":"99b372fa4d1dac71","resources_js_pages_user_Edit_vue":"3412c1b357ee588a","resources_js_pages_user_Index_vue":"4823481d9c700d66","resources_js_pages_user_Show_vue":"c68356ef9b76e682","resources_js_pages_user_TableHeader_js":"c19ccf0fa7c2fb2b"}[chunkId] + "";
43468
+/******/ 			return "js/" + chunkId + ".js?id=" + {"resources_js_pages_Access_vue":"f8bbe21f8e264f5e","resources_js_pages_auth_ForgotPassword_vue":"9db08b886f3acf35","resources_js_pages_auth_Login_vue":"998ee232f83d0aa9","resources_js_pages_auth_ResetPassword_vue":"3191258dc6d8a4b7","resources_js_pages_auth_VerifyEmail_vue":"632c69e9e8e9c0af","resources_js_pages_customer_Create_vue":"6094488ff32b1fca","resources_js_pages_customer_Edit_vue":"5371c155150246a4","resources_js_pages_customer_Index_vue":"3e3b0deca1ce81ca","resources_js_pages_customer_TableHeader_js":"be6685f342bbd7c2","resources_js_pages_laundry_Create_vue":"f93b1958d8012978","resources_js_pages_laundry_Edit_vue":"5608f9c6d3dc1838","resources_js_pages_laundry_Index_vue":"099bc174221c4a43","resources_js_pages_laundry_TableHeader_js":"494e577855bbcaf6","resources_js_pages_outlet_Create_vue":"7e27e9f46cfffc59","resources_js_pages_outlet_Edit_vue":"025241a91a5d02cd","resources_js_pages_outlet_Index_vue":"9337745b50545546","resources_js_pages_outlet_TableHeader_js":"960433b5f8e003c1","resources_js_pages_transaction_Create_vue":"5390e70d3c3444be","resources_js_pages_transaction_Index_vue":"9fef47b26e89fec8","resources_js_pages_transaction_Show_vue":"961762e530a6b329","resources_js_pages_transaction_TableHeader_js":"8b928867ad174e10","resources_js_pages_user_Create_vue":"99b372fa4d1dac71","resources_js_pages_user_Edit_vue":"3412c1b357ee588a","resources_js_pages_user_Index_vue":"4823481d9c700d66","resources_js_pages_user_Show_vue":"c68356ef9b76e682","resources_js_pages_user_TableHeader_js":"c19ccf0fa7c2fb2b"}[chunkId] + "";
43469 43469
 /******/ 		};
43470 43470
 /******/ 	})();
43471 43471
 /******/ 	

+ 12
- 57
resources/js/pages/Access.vue Zobrazit soubor

@@ -1,81 +1,36 @@
1 1
 <script setup>
2
-import { Head, Link, useForm } from "@inertiajs/inertia-vue3";
2
+import { Head, Link } from '@inertiajs/inertia-vue3'
3 3
 </script>
4
+
4 5
 <template>
5
-  <div
6
-    class="
7
-      surface-0
8
-      flex
9
-      align-items-center
10
-      justify-content-center
11
-      min-h-screen min-w-screen
12
-      overflow-hidden
13
-    "
14
-  >
6
+  <head title="Akses ditolak" />
7
+
8
+  <div class="surface-0 flex align-items-center justify-content-center min-h-screen min-w-screen overflow-hidden">
15 9
     <div class="grid justify-content-center p-2 lg:p-0" style="min-width: 80%">
16
-      <!-- <div class="col-12 mt-5 xl:mt-0 text-center"> -->
17
-      <!--   <img -->
18
-      <!--     src="layout/images/logo-orange.svg" -->
19
-      <!--     alt="Sakai logo" -->
20
-      <!--     class="mb-5" -->
21
-      <!--     style="width: 81px; height: 60px" -->
22
-      <!--   /> -->
23
-      <!-- </div> -->
24 10
       <div
25 11
         class="col-12 xl:col-6"
26 12
         style="
27 13
           border-radius: 56px;
28 14
           padding: 0.3rem;
29
-          background: linear-gradient(
30
-            180deg,
31
-            rgba(247, 149, 48, 0.4) 10%,
32
-            rgba(247, 149, 48, 0) 30%
33
-          );
15
+          background: linear-gradient(180deg, rgba(247, 149, 48, 0.4) 10%, rgba(247, 149, 48, 0) 30%);
34 16
         "
35 17
       >
36 18
         <div
37 19
           class="h-full w-full m-0 py-7 px-4"
38
-          style="
39
-            border-radius: 53px;
40
-            background: linear-gradient(
41
-              180deg,
42
-              var(--surface-50) 38.9%,
43
-              var(--surface-0)
44
-            );
45
-          "
20
+          style="border-radius: 53px; background: linear-gradient(180deg, var(--surface-50) 38.9%, var(--surface-0))"
46 21
         >
47 22
           <div class="grid flex flex-column align-items-center">
48 23
             <div
49
-              class="
50
-                flex
51
-                justify-content-center
52
-                align-items-center
53
-                bg-orange-500
54
-                border-circle
55
-              "
24
+              class="flex justify-content-center align-items-center bg-orange-500 border-circle"
56 25
               style="width: 3.2rem; height: 3.2rem"
57 26
             >
58 27
               <i class="pi pi-fw pi-lock text-2xl text-50"></i>
59 28
             </div>
60
-            <h1 class="text-900 font-bold text-4xl lg:text-5xl mb-2">
61
-              Access Denied
62
-            </h1>
63
-            <span class="text-600 text-center"
64
-              >You do not have the necesary permisions. Please contact
65
-              admins.</span
66
-            >
67
-            <!-- <img -->
68
-            <!--   src="layout/images/asset-access.svg" -->
69
-            <!--   alt="Access denied" -->
70
-            <!--   class="mt-5" -->
71
-            <!--   width="80%" -->
72
-            <!-- /> -->
29
+            <h1 class="text-900 font-bold text-4xl lg:text-5xl mb-2">Akses ditolak</h1>
30
+            <span class="text-600 text-center">Kamu tidak memiliki izi kehalaman ini, silakan hubungan admin</span>
73 31
             <div class="col-12 mt-5 text-center">
74
-              <i
75
-                class="pi pi-fw pi-arrow-left text-blue-500 mr-2"
76
-                style="vertical-align: center"
77
-              ></i>
78
-              <Link href="/" class="text-blue-500">Go to Dashboard</Link>
32
+              <i class="pi pi-fw pi-arrow-left text-blue-500 mr-2" style="vertical-align: center"></i>
33
+              <Link href="/" class="text-blue-500">Kembali ke Dashboard</Link>
79 34
             </div>
80 35
           </div>
81 36
         </div>

+ 7
- 2
resources/js/pages/customer/Create.vue Zobrazit soubor

@@ -33,7 +33,12 @@ const submit = () => {
33 33
           <template #content>
34 34
             <div class="grid">
35 35
               <div class="col-12 md:col-6">
36
-                <AppInputText :disabled="true" label="Id Customer" v-model="form.customer_number" />
36
+                <AppInputText
37
+                  :disabled="true"
38
+                  label="Id Customer"
39
+                  v-model="form.customer_number"
40
+                  placeholder="id customer"
41
+                />
37 42
               </div>
38 43
 
39 44
               <div class="col-12 md:col-6">
@@ -62,7 +67,7 @@ const submit = () => {
62 67
 
63 68
           <template #footer>
64 69
             <div class="flex justify-content-end">
65
-              <AppButton @click="submit" label="Simpan" icon="pi pi-check" />
70
+              <AppButton @click="submit" label="Simpan" icon="pi pi-check" class="p-button-text" />
66 71
             </div>
67 72
           </template>
68 73
         </Card>

+ 7
- 2
resources/js/pages/customer/Edit.vue Zobrazit soubor

@@ -46,7 +46,12 @@ const onCancel = () => (visibleDialog.value = false)
46 46
           <template #content>
47 47
             <div class="grid">
48 48
               <div class="col-12 md:col-6">
49
-                <AppInputText :disabled="true" label="Id Customer" v-model="form.customer_number" />
49
+                <AppInputText
50
+                  :disabled="true"
51
+                  label="Id Customer"
52
+                  v-model="form.customer_number"
53
+                  placeholder="id customer"
54
+                />
50 55
               </div>
51 56
 
52 57
               <div class="col-12 md:col-6">
@@ -86,7 +91,7 @@ const onCancel = () => (visibleDialog.value = false)
86 91
 
87 92
               <Button label="Hapus" icon="pi pi-trash" class="p-button-text p-button-danger" @click="confirmDialog" />
88 93
 
89
-              <AppButton @click="submit" label="Simpan" icon="pi pi-check" />
94
+              <AppButton @click="submit" label="Simpan" icon="pi pi-check" class="p-button-text" />
90 95
             </div>
91 96
           </template>
92 97
         </Card>

+ 6
- 1
resources/js/pages/customer/Index.vue Zobrazit soubor

@@ -49,7 +49,12 @@ watch(
49 49
           </div>
50 50
 
51 51
           <div class="col-12 md:col-4 flex justify-content-end">
52
-            <AppButton :href="route('customers.create')" label="Tambah Customer" icon="pi pi-pencil" />
52
+            <AppButton
53
+              :href="route('customers.create')"
54
+              label="Tambah Customer"
55
+              icon="pi pi-pencil"
56
+              class="p-button-text"
57
+            />
53 58
           </div>
54 59
         </div>
55 60
       </template>

+ 1
- 1
resources/js/pages/laundry/Create.vue Zobrazit soubor

@@ -40,7 +40,7 @@ const submit = () => {
40 40
 
41 41
           <template #footer>
42 42
             <div class="flex justify-content-end">
43
-              <AppButton @click="submit" label="Simpan" icon="pi pi-check" />
43
+              <AppButton @click="submit" label="Simpan" icon="pi pi-check" class="p-button-text" />
44 44
             </div>
45 45
           </template>
46 46
         </Card>

+ 1
- 1
resources/js/pages/laundry/Edit.vue Zobrazit soubor

@@ -68,7 +68,7 @@ const onCancel = () => (visibleDialog.value = false)
68 68
 
69 69
               <Button label="Hapus" icon="pi pi-trash" class="p-button-text p-button-danger" @click="confirmDialog" />
70 70
 
71
-              <AppButton @click="submit" label="Simpan" icon="pi pi-check" />
71
+              <AppButton @click="submit" label="Simpan" icon="pi pi-check" class="p-button-text" />
72 72
             </div>
73 73
           </template>
74 74
         </Card>

+ 6
- 1
resources/js/pages/laundry/Index.vue Zobrazit soubor

@@ -49,7 +49,12 @@ watch(
49 49
           </div>
50 50
 
51 51
           <div class="col-12 md:col-4 flex justify-content-end">
52
-            <AppButton :href="route('laundries.create')" label="Tambah Laundry" icon="pi pi-pencil" />
52
+            <AppButton
53
+              :href="route('laundries.create')"
54
+              label="Tambah Laundry"
55
+              icon="pi pi-pencil"
56
+              class="p-button-text"
57
+            />
53 58
           </div>
54 59
         </div>
55 60
       </template>

+ 2
- 2
resources/js/pages/outlet/Create.vue Zobrazit soubor

@@ -30,7 +30,7 @@ const submit = () => {
30 30
           <template #content>
31 31
             <div class="grid">
32 32
               <div class="col-12 md:col-6">
33
-                <AppInputText :disabled="true" label="Id Outlet" v-model="form.outlet_number" />
33
+                <AppInputText :disabled="true" label="Id Outlet" v-model="form.outlet_number" placeholder="id outlet" />
34 34
               </div>
35 35
 
36 36
               <div class="col-12 md:col-6">
@@ -49,7 +49,7 @@ const submit = () => {
49 49
 
50 50
           <template #footer>
51 51
             <div class="flex justify-content-end">
52
-              <AppButton @click="submit" label="Simpan" icon="pi pi-check" />
52
+              <AppButton @click="submit" label="Simpan" icon="pi pi-check" class="p-button-text" />
53 53
             </div>
54 54
           </template>
55 55
         </Card>

+ 2
- 2
resources/js/pages/outlet/Edit.vue Zobrazit soubor

@@ -43,7 +43,7 @@ const onCancel = () => (visibleDialog.value = false)
43 43
           <template #content>
44 44
             <div class="grid">
45 45
               <div class="col-12 md:col-6">
46
-                <AppInputText :disabled="true" label="Id Outlet" v-model="form.outlet_number" />
46
+                <AppInputText :disabled="true" label="Id Outlet" v-model="form.outlet_number" placeholder="id outlet" />
47 47
               </div>
48 48
 
49 49
               <div class="col-12 md:col-6">
@@ -73,7 +73,7 @@ const onCancel = () => (visibleDialog.value = false)
73 73
 
74 74
               <Button label="Hapus" icon="pi pi-trash" class="p-button-text p-button-danger" @click="confirmDialog" />
75 75
 
76
-              <AppButton @click="submit" label="Simpan" icon="pi pi-check" />
76
+              <AppButton @click="submit" label="Simpan" icon="pi pi-check" class="p-button-text" />
77 77
             </div>
78 78
           </template>
79 79
         </Card>

+ 6
- 1
resources/js/pages/outlet/Index.vue Zobrazit soubor

@@ -49,7 +49,12 @@ watch(
49 49
           </div>
50 50
 
51 51
           <div class="col-12 md:col-4 flex justify-content-end">
52
-            <AppButton :href="route('outlets.create')" label="Tambah Outlet" icon="pi pi-pencil" />
52
+            <AppButton
53
+              :href="route('outlets.create')"
54
+              label="Tambah Outlet"
55
+              icon="pi pi-pencil"
56
+              class="p-button-text"
57
+            />
53 58
           </div>
54 59
         </div>
55 60
       </template>