Bläddra i källkod

feat: customer history transaction

Muhammad Iqbal Afandi 4 år sedan
förälder
incheckning
35e6db0b29
33 ändrade filer med 565 tillägg och 120 borttagningar
  1. 18
    0
      app/Http/Controllers/CustomerController.php
  2. 1
    1
      app/Http/Requests/Expense/StoreExpenseRequest.php
  3. 6
    0
      app/Models/Customer.php
  4. 14
    11
      composer.lock
  5. 318
    3
      public/js/resources_js_pages_customer_Edit_vue.js
  6. 26
    9
      public/js/resources_js_pages_customer_Index_vue.js
  7. 20
    3
      public/js/resources_js_pages_customer_TableHeader_js.js
  8. 22
    24
      public/js/resources_js_pages_expense_Create_vue.js
  9. 1
    1
      public/js/resources_js_pages_expense_Index_vue.js
  10. 1
    1
      public/js/resources_js_pages_laundry_Index_vue.js
  11. 1
    1
      public/js/resources_js_pages_mutation_Report_vue.js
  12. 1
    1
      public/js/resources_js_pages_outlet_Index_vue.js
  13. 1
    1
      public/js/resources_js_pages_product_Index_vue.js
  14. 4
    4
      public/js/resources_js_pages_transaction_Create_vue.js
  15. 1
    1
      public/js/resources_js_pages_transaction_Index_vue.js
  16. 1
    1
      public/js/resources_js_pages_transaction_Report_vue.js
  17. 1
    1
      public/js/resources_js_pages_user_Index_vue.js
  18. 1
    1
      public/js/vue.js
  19. 1
    1
      resources/js/components/AppEditor.vue
  20. 64
    0
      resources/js/pages/customer/Edit.vue
  21. 6
    6
      resources/js/pages/customer/Index.vue
  22. 9
    1
      resources/js/pages/customer/TableHeader.js
  23. 14
    15
      resources/js/pages/expense/Create.vue
  24. 1
    1
      resources/js/pages/expense/Index.vue
  25. 1
    1
      resources/js/pages/laundry/Index.vue
  26. 1
    1
      resources/js/pages/mutation/Report.vue
  27. 1
    1
      resources/js/pages/outlet/Index.vue
  28. 1
    1
      resources/js/pages/product/Index.vue
  29. 4
    4
      resources/js/pages/transaction/Create.vue
  30. 1
    1
      resources/js/pages/transaction/Index.vue
  31. 1
    1
      resources/js/pages/transaction/Report.vue
  32. 1
    1
      resources/js/pages/user/Index.vue
  33. 21
    21
      yarn.lock

+ 18
- 0
app/Http/Controllers/CustomerController.php Visa fil

@@ -96,6 +96,24 @@ class CustomerController extends Controller
96 96
                 ['label' => 'Perempuan', 'value' => 1],
97 97
                 ['label' => 'Laki-laki', 'value' => 2],
98 98
             ],
99
+            'transactions' => $customer->transaction()
100
+                ->latest()
101
+                ->paginate(10)
102
+                ->withQueryString()
103
+                ->through(fn($transaction) => [
104
+                    'id' => $transaction->id,
105
+                    'transactionNumber' => $transaction->transaction_number,
106
+                    'createdAt' => $transaction->created_at,
107
+                    'customer' => [
108
+                        'number' => $customer->customer_number,
109
+                        'name' => $customer->name,
110
+                        'phone' => $customer->phone,
111
+                    ],
112
+                    'price' => $transaction->totalPriceAsFullString(),
113
+                    'outlet' => $transaction->outlet->name,
114
+                    'transactionStatusName' => $transaction->transactionStatus->name,
115
+                    'transactionStatusId' => $transaction->transactionStatus->id,
116
+                ]),
99 117
         ]);
100 118
     }
101 119
 

+ 1
- 1
app/Http/Requests/Expense/StoreExpenseRequest.php Visa fil

@@ -24,7 +24,7 @@ class StoreExpenseRequest extends FormRequest
24 24
     public function rules()
25 25
     {
26 26
         return [
27
-            'description' => 'required|string',
27
+            'description' => 'required',
28 28
             'amount' => 'required|numeric',
29 29
         ];
30 30
     }

+ 6
- 0
app/Models/Customer.php Visa fil

@@ -2,6 +2,7 @@
2 2
 
3 3
 namespace App\Models;
4 4
 
5
+use App\Models\Transaction;
5 6
 use Illuminate\Database\Eloquent\Casts\Attribute;
6 7
 use Illuminate\Database\Eloquent\Factories\HasFactory;
7 8
 use Illuminate\Database\Eloquent\Model;
@@ -24,6 +25,11 @@ class Customer extends Model
24 25
         );
25 26
     }
26 27
 
28
+    public function transaction()
29
+    {
30
+        return $this->hasMany(Transaction::class, 'customer_number', 'customer_number');
31
+    }
32
+
27 33
     public function scopeFilter($query, $filters)
28 34
     {
29 35
         $query->when($filters['search'] ?? null, function ($query, $search) {

+ 14
- 11
composer.lock Visa fil

@@ -7745,16 +7745,16 @@
7745 7745
         },
7746 7746
         {
7747 7747
             "name": "phpunit/phpunit",
7748
-            "version": "9.5.19",
7748
+            "version": "9.5.20",
7749 7749
             "source": {
7750 7750
                 "type": "git",
7751 7751
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
7752
-                "reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807"
7752
+                "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba"
7753 7753
             },
7754 7754
             "dist": {
7755 7755
                 "type": "zip",
7756
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/35ea4b7f3acabb26f4bb640f8c30866c401da807",
7757
-                "reference": "35ea4b7f3acabb26f4bb640f8c30866c401da807",
7756
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba",
7757
+                "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba",
7758 7758
                 "shasum": ""
7759 7759
             },
7760 7760
             "require": {
@@ -7832,7 +7832,7 @@
7832 7832
             ],
7833 7833
             "support": {
7834 7834
                 "issues": "https://github.com/sebastianbergmann/phpunit/issues",
7835
-                "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.19"
7835
+                "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20"
7836 7836
             },
7837 7837
             "funding": [
7838 7838
                 {
@@ -7844,7 +7844,7 @@
7844 7844
                     "type": "github"
7845 7845
                 }
7846 7846
             ],
7847
-            "time": "2022-03-15T09:57:31+00:00"
7847
+            "time": "2022-04-01T12:37:26+00:00"
7848 7848
         },
7849 7849
         {
7850 7850
             "name": "sebastian/cli-parser",
@@ -9008,16 +9008,16 @@
9008 9008
         },
9009 9009
         {
9010 9010
             "name": "spatie/laravel-ignition",
9011
-            "version": "1.1.1",
9011
+            "version": "1.2.0",
9012 9012
             "source": {
9013 9013
                 "type": "git",
9014 9014
                 "url": "https://github.com/spatie/laravel-ignition.git",
9015
-                "reference": "f3243fd99351e0a79df6886a5354d8dd88d6d0d2"
9015
+                "reference": "2b54c8c66f2d280f25e15064ebe3d5e3eda19820"
9016 9016
             },
9017 9017
             "dist": {
9018 9018
                 "type": "zip",
9019
-                "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/f3243fd99351e0a79df6886a5354d8dd88d6d0d2",
9020
-                "reference": "f3243fd99351e0a79df6886a5354d8dd88d6d0d2",
9019
+                "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/2b54c8c66f2d280f25e15064ebe3d5e3eda19820",
9020
+                "reference": "2b54c8c66f2d280f25e15064ebe3d5e3eda19820",
9021 9021
                 "shasum": ""
9022 9022
             },
9023 9023
             "require": {
@@ -9056,6 +9056,9 @@
9056 9056
                 }
9057 9057
             },
9058 9058
             "autoload": {
9059
+                "files": [
9060
+                    "src/helpers.php"
9061
+                ],
9059 9062
                 "psr-4": {
9060 9063
                     "Spatie\\LaravelIgnition\\": "src"
9061 9064
                 }
@@ -9091,7 +9094,7 @@
9091 9094
                     "type": "github"
9092 9095
                 }
9093 9096
             ],
9094
-            "time": "2022-03-21T07:13:26+00:00"
9097
+            "time": "2022-04-01T21:01:58+00:00"
9095 9098
         },
9096 9099
         {
9097 9100
             "name": "theseer/tokenizer",

+ 318
- 3
public/js/resources_js_pages_customer_Edit_vue.js Visa fil

@@ -295,6 +295,38 @@ __webpack_require__.r(__webpack_exports__);
295 295
 
296 296
 /***/ }),
297 297
 
298
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppPagination.vue?vue&type=script&setup=true&lang=js":
299
+/*!******************************************************************************************************************************************************************************************************************!*\
300
+  !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppPagination.vue?vue&type=script&setup=true&lang=js ***!
301
+  \******************************************************************************************************************************************************************************************************************/
302
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
303
+
304
+__webpack_require__.r(__webpack_exports__);
305
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
306
+/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
307
+/* harmony export */ });
308
+/* harmony import */ var _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @inertiajs/inertia-vue3 */ "./node_modules/@inertiajs/inertia-vue3/dist/index.js");
309
+
310
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
311
+  props: {
312
+    links: Array
313
+  },
314
+  setup: function setup(__props, _ref) {
315
+    var expose = _ref.expose;
316
+    expose();
317
+    var __returned__ = {
318
+      Link: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__.Link
319
+    };
320
+    Object.defineProperty(__returned__, '__isScriptSetup', {
321
+      enumerable: false,
322
+      value: true
323
+    });
324
+    return __returned__;
325
+  }
326
+});
327
+
328
+/***/ }),
329
+
298 330
 /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppSidebar.vue?vue&type=script&setup=true&lang=js":
299 331
 /*!***************************************************************************************************************************************************************************************************************!*\
300 332
   !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppSidebar.vue?vue&type=script&setup=true&lang=js ***!
@@ -562,7 +594,11 @@ __webpack_require__.r(__webpack_exports__);
562 594
 /* harmony import */ var _components_AppDropdown_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/AppDropdown.vue */ "./resources/js/components/AppDropdown.vue");
563 595
 /* harmony import */ var _components_AppInputText_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/AppInputText.vue */ "./resources/js/components/AppInputText.vue");
564 596
 /* harmony import */ var _components_AppDialog_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/AppDialog.vue */ "./resources/js/components/AppDialog.vue");
565
-/* harmony import */ var _layouts_AppLayout_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/layouts/AppLayout.vue */ "./resources/js/layouts/AppLayout.vue");
597
+/* harmony import */ var _components_AppPagination_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/AppPagination.vue */ "./resources/js/components/AppPagination.vue");
598
+/* harmony import */ var _layouts_AppLayout_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/layouts/AppLayout.vue */ "./resources/js/layouts/AppLayout.vue");
599
+/* harmony import */ var _TableHeader__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./TableHeader */ "./resources/js/pages/customer/TableHeader.js");
600
+
601
+
566 602
 
567 603
 
568 604
 
@@ -574,7 +610,8 @@ __webpack_require__.r(__webpack_exports__);
574 610
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
575 611
   props: {
576 612
     customer: Object,
577
-    genders: Array
613
+    genders: Array,
614
+    transactions: Object
578 615
   },
579 616
   setup: function setup(__props, _ref) {
580 617
     var expose = _ref.expose;
@@ -631,7 +668,9 @@ __webpack_require__.r(__webpack_exports__);
631 668
       AppDropdown: _components_AppDropdown_vue__WEBPACK_IMPORTED_MODULE_4__["default"],
632 669
       AppInputText: _components_AppInputText_vue__WEBPACK_IMPORTED_MODULE_5__["default"],
633 670
       AppDialog: _components_AppDialog_vue__WEBPACK_IMPORTED_MODULE_6__["default"],
634
-      AppLayout: _layouts_AppLayout_vue__WEBPACK_IMPORTED_MODULE_7__["default"]
671
+      AppPagination: _components_AppPagination_vue__WEBPACK_IMPORTED_MODULE_7__["default"],
672
+      AppLayout: _layouts_AppLayout_vue__WEBPACK_IMPORTED_MODULE_8__["default"],
673
+      TransactionTable: _TableHeader__WEBPACK_IMPORTED_MODULE_9__.TransactionTable
635 674
     };
636 675
     Object.defineProperty(__returned__, '__isScriptSetup', {
637 676
       enumerable: false,
@@ -1040,6 +1079,55 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1040 1079
 
1041 1080
 /***/ }),
1042 1081
 
1082
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppPagination.vue?vue&type=template&id=4da56ec0":
1083
+/*!***********************************************************************************************************************************************************************************************************************************************************************************!*\
1084
+  !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppPagination.vue?vue&type=template&id=4da56ec0 ***!
1085
+  \***********************************************************************************************************************************************************************************************************************************************************************************/
1086
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1087
+
1088
+__webpack_require__.r(__webpack_exports__);
1089
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1090
+/* harmony export */   "render": () => (/* binding */ render)
1091
+/* harmony export */ });
1092
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
1093
+
1094
+var _hoisted_1 = {
1095
+  key: 0,
1096
+  "class": "p-paginator p-component flex justify-content-start"
1097
+};
1098
+var _hoisted_2 = {
1099
+  "class": "p-paginator-pages"
1100
+};
1101
+var _hoisted_3 = ["innerHTML"];
1102
+function render(_ctx, _cache, $props, $setup, $data, $options) {
1103
+  return $props.links.length > 3 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("nav", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($props.links, function (link, key) {
1104
+    return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [link.url === null ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", {
1105
+      key: "link-".concat(key),
1106
+      "class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(["p-paginator-page p-paginator-element p-link", {
1107
+        'p-disabled': link
1108
+      }]),
1109
+      innerHTML: link.label
1110
+    }, null, 10
1111
+    /* CLASS, PROPS */
1112
+    , _hoisted_3)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true), link.url !== null ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1113
+      key: "link-".concat(key),
1114
+      href: link.url,
1115
+      "class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([{
1116
+        'p-highlight': link.active
1117
+      }, "p-paginator-page p-paginator-element p-link"]),
1118
+      innerHTML: link.label
1119
+    }, null, 8
1120
+    /* PROPS */
1121
+    , ["href", "class", "innerHTML"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)], 64
1122
+    /* STABLE_FRAGMENT */
1123
+    );
1124
+  }), 256
1125
+  /* UNKEYED_FRAGMENT */
1126
+  ))])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true);
1127
+}
1128
+
1129
+/***/ }),
1130
+
1043 1131
 /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppSidebar.vue?vue&type=template&id=22a4e926":
1044 1132
 /*!********************************************************************************************************************************************************************************************************************************************************************************!*\
1045 1133
   !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppSidebar.vue?vue&type=template&id=22a4e926 ***!
@@ -1440,11 +1528,34 @@ var _hoisted_7 = {
1440 1528
 var _hoisted_8 = {
1441 1529
   "class": "flex flex-column sm:flex-row align-items-center sm:justify-content-center sm:justify-content-between"
1442 1530
 };
1531
+
1532
+var _hoisted_9 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h2", null, "Riwayat Transaksi", -1
1533
+/* HOISTED */
1534
+);
1535
+
1536
+var _hoisted_10 = {
1537
+  "class": "grid"
1538
+};
1539
+var _hoisted_11 = {
1540
+  "class": "col-12"
1541
+};
1542
+var _hoisted_12 = {
1543
+  "class": "font-bold"
1544
+};
1545
+var _hoisted_13 = {
1546
+  "class": "font-bold"
1547
+};
1443 1548
 function render(_ctx, _cache, $props, $setup, $data, $options) {
1444 1549
   var _component_Button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Button");
1445 1550
 
1446 1551
   var _component_Card = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Card");
1447 1552
 
1553
+  var _component_Badge = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Badge");
1554
+
1555
+  var _component_Column = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Column");
1556
+
1557
+  var _component_DataTable = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("DataTable");
1558
+
1448 1559
   return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["Head"], {
1449 1560
     title: "Ubah Customer"
1450 1561
   }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppLayout"], null, {
@@ -1522,6 +1633,110 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1522 1633
         _: 1
1523 1634
         /* STABLE */
1524 1635
 
1636
+      })])]), _hoisted_9, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_11, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Card, null, {
1637
+        content: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1638
+          return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_DataTable, {
1639
+            "responsive-layout": "scroll",
1640
+            "column-resize-mode": "expand",
1641
+            value: $props.transactions.data,
1642
+            "row-hover": true,
1643
+            "striped-rows": true
1644
+          }, {
1645
+            "default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1646
+              return [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.TransactionTable, function (transactionTable) {
1647
+                return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_Column, {
1648
+                  field: transactionTable.field,
1649
+                  header: transactionTable.header,
1650
+                  key: transactionTable.field
1651
+                }, {
1652
+                  body: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function (_ref) {
1653
+                    var data = _ref.data,
1654
+                        field = _ref.field;
1655
+                    return [field === 'transactionNumber' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
1656
+                      key: 0
1657
+                    }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_12, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(data[field]), 1
1658
+                    /* TEXT */
1659
+                    ), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(data.createdAt), 1
1660
+                    /* TEXT */
1661
+                    )], 64
1662
+                    /* STABLE_FRAGMENT */
1663
+                    )) : field === 'customer' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
1664
+                      key: 1
1665
+                    }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", _hoisted_13, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(data.customer.number), 1
1666
+                    /* TEXT */
1667
+                    ), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(data.customer.name), 1
1668
+                    /* TEXT */
1669
+                    ), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("p", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(data.customer.phone), 1
1670
+                    /* TEXT */
1671
+                    )], 64
1672
+                    /* STABLE_FRAGMENT */
1673
+                    )) : field === 'transactionStatusName' ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
1674
+                      key: 2
1675
+                    }, [data['transactionStatusId'] === 1 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_Badge, {
1676
+                      key: 0,
1677
+                      value: data[field]
1678
+                    }, null, 8
1679
+                    /* PROPS */
1680
+                    , ["value"])) : data['transactionStatusId'] === 2 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_Badge, {
1681
+                      key: 1,
1682
+                      value: data[field],
1683
+                      severity: "warning"
1684
+                    }, null, 8
1685
+                    /* PROPS */
1686
+                    , ["value"])) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_Badge, {
1687
+                      key: 2,
1688
+                      value: data[field],
1689
+                      severity: "success"
1690
+                    }, null, 8
1691
+                    /* PROPS */
1692
+                    , ["value"]))], 2112
1693
+                    /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
1694
+                    )) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
1695
+                      key: 3
1696
+                    }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)((0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(data[field]), 1
1697
+                    /* TEXT */
1698
+                    )], 2112
1699
+                    /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
1700
+                    ))];
1701
+                  }),
1702
+                  _: 2
1703
+                  /* DYNAMIC */
1704
+
1705
+                }, 1032
1706
+                /* PROPS, DYNAMIC_SLOTS */
1707
+                , ["field", "header"]);
1708
+              }), 128
1709
+              /* KEYED_FRAGMENT */
1710
+              )), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Column, null, {
1711
+                body: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function (_ref2) {
1712
+                  var data = _ref2.data;
1713
+                  return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppButton"], {
1714
+                    icon: "pi pi-angle-double-right",
1715
+                    "class": "p-button-icon-only p-button-rounded p-button-text",
1716
+                    href: _ctx.route('transactions.show', data.id)
1717
+                  }, null, 8
1718
+                  /* PROPS */
1719
+                  , ["href"])];
1720
+                }),
1721
+                _: 1
1722
+                /* STABLE */
1723
+
1724
+              })];
1725
+            }),
1726
+            _: 1
1727
+            /* STABLE */
1728
+
1729
+          }, 8
1730
+          /* PROPS */
1731
+          , ["value"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppPagination"], {
1732
+            links: $props.transactions.links
1733
+          }, null, 8
1734
+          /* PROPS */
1735
+          , ["links"])];
1736
+        }),
1737
+        _: 1
1738
+        /* STABLE */
1739
+
1525 1740
       })])])];
1526 1741
     }),
1527 1742
     _: 1
@@ -1534,6 +1749,49 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1534 1749
 
1535 1750
 /***/ }),
1536 1751
 
1752
+/***/ "./resources/js/pages/customer/TableHeader.js":
1753
+/*!****************************************************!*\
1754
+  !*** ./resources/js/pages/customer/TableHeader.js ***!
1755
+  \****************************************************/
1756
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1757
+
1758
+__webpack_require__.r(__webpack_exports__);
1759
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1760
+/* harmony export */   "IndexTable": () => (/* binding */ IndexTable),
1761
+/* harmony export */   "TransactionTable": () => (/* binding */ TransactionTable)
1762
+/* harmony export */ });
1763
+var IndexTable = [{
1764
+  field: 'customer_number',
1765
+  header: 'Id Customer'
1766
+}, {
1767
+  field: 'name',
1768
+  header: 'Nama'
1769
+}, {
1770
+  field: 'phone',
1771
+  header: 'HP'
1772
+}, {
1773
+  field: 'gender',
1774
+  header: 'Jenis Kelamin'
1775
+}];
1776
+var TransactionTable = [{
1777
+  field: 'transactionNumber',
1778
+  header: 'Id Transaksi'
1779
+}, {
1780
+  field: 'customer',
1781
+  header: 'Id Customer'
1782
+}, {
1783
+  field: 'price',
1784
+  header: 'Total Harga'
1785
+}, {
1786
+  field: 'transactionStatusName',
1787
+  header: 'Status'
1788
+}, {
1789
+  field: 'outlet',
1790
+  header: 'Outlet'
1791
+}];
1792
+
1793
+/***/ }),
1794
+
1537 1795
 /***/ "./resources/js/utils/menu-admin.js":
1538 1796
 /*!******************************************!*\
1539 1797
   !*** ./resources/js/utils/menu-admin.js ***!
@@ -1839,6 +2097,33 @@ const __exports__ = /*#__PURE__*/(0,_home_dijitalcode_Projects_dev_node_modules_
1839 2097
 if (false) {}
1840 2098
 
1841 2099
 
2100
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);
2101
+
2102
+/***/ }),
2103
+
2104
+/***/ "./resources/js/components/AppPagination.vue":
2105
+/*!***************************************************!*\
2106
+  !*** ./resources/js/components/AppPagination.vue ***!
2107
+  \***************************************************/
2108
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2109
+
2110
+__webpack_require__.r(__webpack_exports__);
2111
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2112
+/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2113
+/* harmony export */ });
2114
+/* harmony import */ var _AppPagination_vue_vue_type_template_id_4da56ec0__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppPagination.vue?vue&type=template&id=4da56ec0 */ "./resources/js/components/AppPagination.vue?vue&type=template&id=4da56ec0");
2115
+/* harmony import */ var _AppPagination_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppPagination.vue?vue&type=script&setup=true&lang=js */ "./resources/js/components/AppPagination.vue?vue&type=script&setup=true&lang=js");
2116
+/* harmony import */ var _home_dijitalcode_Projects_dev_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
2117
+
2118
+
2119
+
2120
+
2121
+;
2122
+const __exports__ = /*#__PURE__*/(0,_home_dijitalcode_Projects_dev_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_AppPagination_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_AppPagination_vue_vue_type_template_id_4da56ec0__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/AppPagination.vue"]])
2123
+/* hot reload */
2124
+if (false) {}
2125
+
2126
+
1842 2127
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);
1843 2128
 
1844 2129
 /***/ }),
@@ -2051,6 +2336,21 @@ __webpack_require__.r(__webpack_exports__);
2051 2336
 /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppMessage_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppMessage.vue?vue&type=script&setup=true&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppMessage.vue?vue&type=script&setup=true&lang=js");
2052 2337
  
2053 2338
 
2339
+/***/ }),
2340
+
2341
+/***/ "./resources/js/components/AppPagination.vue?vue&type=script&setup=true&lang=js":
2342
+/*!**************************************************************************************!*\
2343
+  !*** ./resources/js/components/AppPagination.vue?vue&type=script&setup=true&lang=js ***!
2344
+  \**************************************************************************************/
2345
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2346
+
2347
+__webpack_require__.r(__webpack_exports__);
2348
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2349
+/* harmony export */   "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppPagination_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"])
2350
+/* harmony export */ });
2351
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppPagination_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppPagination.vue?vue&type=script&setup=true&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppPagination.vue?vue&type=script&setup=true&lang=js");
2352
+ 
2353
+
2054 2354
 /***/ }),
2055 2355
 
2056 2356
 /***/ "./resources/js/components/AppSidebar.vue?vue&type=script&setup=true&lang=js":
@@ -2216,6 +2516,21 @@ __webpack_require__.r(__webpack_exports__);
2216 2516
 /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppMessage_vue_vue_type_template_id_07159051__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppMessage.vue?vue&type=template&id=07159051 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppMessage.vue?vue&type=template&id=07159051");
2217 2517
 
2218 2518
 
2519
+/***/ }),
2520
+
2521
+/***/ "./resources/js/components/AppPagination.vue?vue&type=template&id=4da56ec0":
2522
+/*!*********************************************************************************!*\
2523
+  !*** ./resources/js/components/AppPagination.vue?vue&type=template&id=4da56ec0 ***!
2524
+  \*********************************************************************************/
2525
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2526
+
2527
+__webpack_require__.r(__webpack_exports__);
2528
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2529
+/* harmony export */   "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppPagination_vue_vue_type_template_id_4da56ec0__WEBPACK_IMPORTED_MODULE_0__.render)
2530
+/* harmony export */ });
2531
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppPagination_vue_vue_type_template_id_4da56ec0__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppPagination.vue?vue&type=template&id=4da56ec0 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppPagination.vue?vue&type=template&id=4da56ec0");
2532
+
2533
+
2219 2534
 /***/ }),
2220 2535
 
2221 2536
 /***/ "./resources/js/components/AppSidebar.vue?vue&type=template&id=22a4e926":

+ 26
- 9
public/js/resources_js_pages_customer_Index_vue.js Visa fil

@@ -448,7 +448,7 @@ __webpack_require__.r(__webpack_exports__);
448 448
       AppButton: _components_AppButton_vue__WEBPACK_IMPORTED_MODULE_5__["default"],
449 449
       AppPagination: _components_AppPagination_vue__WEBPACK_IMPORTED_MODULE_6__["default"],
450 450
       AppLayout: _layouts_AppLayout_vue__WEBPACK_IMPORTED_MODULE_7__["default"],
451
-      TableHeader: _TableHeader__WEBPACK_IMPORTED_MODULE_8__["default"]
451
+      IndexTable: _TableHeader__WEBPACK_IMPORTED_MODULE_8__.IndexTable
452 452
     };
453 453
     Object.defineProperty(__returned__, '__isScriptSetup', {
454 454
       enumerable: false,
@@ -1080,7 +1080,7 @@ __webpack_require__.r(__webpack_exports__);
1080 1080
 /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
1081 1081
 
1082 1082
 
1083
-var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h5", null, "Customer", -1
1083
+var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", null, "Customer", -1
1084 1084
 /* HOISTED */
1085 1085
 );
1086 1086
 
@@ -1134,11 +1134,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1134 1134
           , ["href"])])])];
1135 1135
         }),
1136 1136
         "default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1137
-          return [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.TableHeader, function (tableHeader) {
1137
+          return [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.IndexTable, function (indexTable) {
1138 1138
             return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_Column, {
1139
-              field: tableHeader.field,
1140
-              header: tableHeader.header,
1141
-              key: tableHeader.field
1139
+              field: indexTable.field,
1140
+              header: indexTable.header,
1141
+              key: indexTable.field
1142 1142
             }, null, 8
1143 1143
             /* PROPS */
1144 1144
             , ["field", "header"]);
@@ -1190,9 +1190,10 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1190 1190
 "use strict";
1191 1191
 __webpack_require__.r(__webpack_exports__);
1192 1192
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1193
-/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1193
+/* harmony export */   "IndexTable": () => (/* binding */ IndexTable),
1194
+/* harmony export */   "TransactionTable": () => (/* binding */ TransactionTable)
1194 1195
 /* harmony export */ });
1195
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ([{
1196
+var IndexTable = [{
1196 1197
   field: 'customer_number',
1197 1198
   header: 'Id Customer'
1198 1199
 }, {
@@ -1204,7 +1205,23 @@ __webpack_require__.r(__webpack_exports__);
1204 1205
 }, {
1205 1206
   field: 'gender',
1206 1207
   header: 'Jenis Kelamin'
1207
-}]);
1208
+}];
1209
+var TransactionTable = [{
1210
+  field: 'transactionNumber',
1211
+  header: 'Id Transaksi'
1212
+}, {
1213
+  field: 'customer',
1214
+  header: 'Id Customer'
1215
+}, {
1216
+  field: 'price',
1217
+  header: 'Total Harga'
1218
+}, {
1219
+  field: 'transactionStatusName',
1220
+  header: 'Status'
1221
+}, {
1222
+  field: 'outlet',
1223
+  header: 'Outlet'
1224
+}];
1208 1225
 
1209 1226
 /***/ }),
1210 1227
 

+ 20
- 3
public/js/resources_js_pages_customer_TableHeader_js.js Visa fil

@@ -9,9 +9,10 @@
9 9
 
10 10
 __webpack_require__.r(__webpack_exports__);
11 11
 /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12
-/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
12
+/* harmony export */   "IndexTable": () => (/* binding */ IndexTable),
13
+/* harmony export */   "TransactionTable": () => (/* binding */ TransactionTable)
13 14
 /* harmony export */ });
14
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ([{
15
+var IndexTable = [{
15 16
   field: 'customer_number',
16 17
   header: 'Id Customer'
17 18
 }, {
@@ -23,7 +24,23 @@ __webpack_require__.r(__webpack_exports__);
23 24
 }, {
24 25
   field: 'gender',
25 26
   header: 'Jenis Kelamin'
26
-}]);
27
+}];
28
+var TransactionTable = [{
29
+  field: 'transactionNumber',
30
+  header: 'Id Transaksi'
31
+}, {
32
+  field: 'customer',
33
+  header: 'Id Customer'
34
+}, {
35
+  field: 'price',
36
+  header: 'Total Harga'
37
+}, {
38
+  field: 'transactionStatusName',
39
+  header: 'Status'
40
+}, {
41
+  field: 'outlet',
42
+  header: 'Outlet'
43
+}];
27 44
 
28 45
 /***/ })
29 46
 

+ 22
- 24
public/js/resources_js_pages_expense_Create_vue.js Visa fil

@@ -704,8 +704,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
704 704
     "model-value": $props.modelValue,
705 705
     "editor-style": $props.editorStyle,
706 706
     placeholder: $props.placeholder,
707
-    onInput: _cache[0] || (_cache[0] = function ($event) {
708
-      return _ctx.$emit('update:modelValue', $event);
707
+    onTextChange: _cache[0] || (_cache[0] = function ($event) {
708
+      return _ctx.$emit('update:modelValue', $event.htmlValue);
709 709
     })
710 710
   }, {
711 711
     toolbar: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
@@ -1295,35 +1295,32 @@ var _hoisted_1 = {
1295 1295
   "class": "grid"
1296 1296
 };
1297 1297
 var _hoisted_2 = {
1298
-  "class": "col-12 md:col-3"
1298
+  "class": "col-12 md:col-8"
1299 1299
 };
1300 1300
 var _hoisted_3 = {
1301
-  "class": "col-12"
1302
-};
1303
-var _hoisted_4 = {
1304 1301
   "class": "q-formats"
1305 1302
 };
1306
-var _hoisted_5 = {
1303
+var _hoisted_4 = {
1307 1304
   "class": "ql-bold"
1308 1305
 };
1309
-var _hoisted_6 = {
1306
+var _hoisted_5 = {
1310 1307
   "class": "ql-italic"
1311 1308
 };
1312
-var _hoisted_7 = {
1309
+var _hoisted_6 = {
1313 1310
   "class": "ql-underline"
1314 1311
 };
1315
-var _hoisted_8 = {
1312
+var _hoisted_7 = {
1316 1313
   "class": "ql-formats"
1317 1314
 };
1318
-var _hoisted_9 = {
1315
+var _hoisted_8 = {
1319 1316
   "class": "ql-list",
1320 1317
   value: "ordered"
1321 1318
 };
1322
-var _hoisted_10 = {
1319
+var _hoisted_9 = {
1323 1320
   "class": "ql-list",
1324 1321
   value: "bullet"
1325 1322
 };
1326
-var _hoisted_11 = {
1323
+var _hoisted_10 = {
1327 1324
   "class": "flex justify-content-end"
1328 1325
 };
1329 1326
 function render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -1333,19 +1330,20 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1333 1330
 
1334 1331
   return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["AppLayout"], null, {
1335 1332
     "default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1336
-      return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Card, null, {
1333
+      return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Card, null, {
1337 1334
         content: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1338
-          return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputNumber"], {
1335
+          return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputNumber"], {
1339 1336
             modelValue: $setup.form.amount,
1340 1337
             "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
1341 1338
               return $setup.form.amount = $event;
1342 1339
             }),
1340
+            "class": "md:w-16rem",
1343 1341
             label: "Pengeluaran",
1344 1342
             placeholder: "pengeluaran",
1345 1343
             error: $setup.form.errors.amount
1346 1344
           }, null, 8
1347 1345
           /* PROPS */
1348
-          , ["modelValue", "error"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppEditor"], {
1346
+          , ["modelValue", "error"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppEditor"], {
1349 1347
             label: "Keterangan",
1350 1348
             modelValue: $setup.form.description,
1351 1349
             "onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
@@ -1356,23 +1354,23 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1356 1354
             error: $setup.form.errors.description
1357 1355
           }, {
1358 1356
             toolbar: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1359
-              return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("button", _hoisted_5, null, 512
1357
+              return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("button", _hoisted_4, null, 512
1360 1358
               /* NEED_PATCH */
1361 1359
               ), [[_directive_tooltip, 'Bold', void 0, {
1362 1360
                 bottom: true
1363
-              }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("button", _hoisted_6, null, 512
1361
+              }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("button", _hoisted_5, null, 512
1364 1362
               /* NEED_PATCH */
1365 1363
               ), [[_directive_tooltip, 'Italic', void 0, {
1366 1364
                 bottom: true
1367
-              }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("button", _hoisted_7, null, 512
1365
+              }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("button", _hoisted_6, null, 512
1368 1366
               /* NEED_PATCH */
1369 1367
               ), [[_directive_tooltip, 'Underline', void 0, {
1370 1368
                 bottom: true
1371
-              }]])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("button", _hoisted_9, null, 512
1369
+              }]])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("button", _hoisted_8, null, 512
1372 1370
               /* NEED_PATCH */
1373 1371
               ), [[_directive_tooltip, 'Ordered', void 0, {
1374 1372
                 bottom: true
1375
-              }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("button", _hoisted_10, null, 512
1373
+              }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("button", _hoisted_9, null, 512
1376 1374
               /* NEED_PATCH */
1377 1375
               ), [[_directive_tooltip, 'Bullet', void 0, {
1378 1376
                 bottom: true
@@ -1383,10 +1381,10 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1383 1381
 
1384 1382
           }, 8
1385 1383
           /* PROPS */
1386
-          , ["modelValue", "error"])])])];
1384
+          , ["modelValue", "error"])];
1387 1385
         }),
1388 1386
         footer: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1389
-          return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_11, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppButton"], {
1387
+          return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppButton"], {
1390 1388
             onClick: $setup.submit,
1391 1389
             label: "Simpan",
1392 1390
             icon: "pi pi-check",
@@ -1396,7 +1394,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1396 1394
         _: 1
1397 1395
         /* STABLE */
1398 1396
 
1399
-      })];
1397
+      })])])];
1400 1398
     }),
1401 1399
     _: 1
1402 1400
     /* STABLE */

+ 1
- 1
public/js/resources_js_pages_expense_Index_vue.js Visa fil

@@ -1118,7 +1118,7 @@ __webpack_require__.r(__webpack_exports__);
1118 1118
 /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
1119 1119
 
1120 1120
 
1121
-var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h5", null, "Pengeluaran", -1
1121
+var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", null, "Pengeluaran", -1
1122 1122
 /* HOISTED */
1123 1123
 );
1124 1124
 

+ 1
- 1
public/js/resources_js_pages_laundry_Index_vue.js Visa fil

@@ -1079,7 +1079,7 @@ __webpack_require__.r(__webpack_exports__);
1079 1079
 /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
1080 1080
 
1081 1081
 
1082
-var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h5", null, "Laundry", -1
1082
+var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", null, "Laundry", -1
1083 1083
 /* HOISTED */
1084 1084
 );
1085 1085
 

+ 1
- 1
public/js/resources_js_pages_mutation_Report_vue.js Visa fil

@@ -1133,7 +1133,7 @@ __webpack_require__.r(__webpack_exports__);
1133 1133
 /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
1134 1134
 
1135 1135
 
1136
-var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h5", null, "Laporan Mutasi", -1
1136
+var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", null, "Laporan Mutasi", -1
1137 1137
 /* HOISTED */
1138 1138
 );
1139 1139
 

+ 1
- 1
public/js/resources_js_pages_outlet_Index_vue.js Visa fil

@@ -1080,7 +1080,7 @@ __webpack_require__.r(__webpack_exports__);
1080 1080
 /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
1081 1081
 
1082 1082
 
1083
-var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h5", null, "Outlet", -1
1083
+var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", null, "Outlet", -1
1084 1084
 /* HOISTED */
1085 1085
 );
1086 1086
 

+ 1
- 1
public/js/resources_js_pages_product_Index_vue.js Visa fil

@@ -1079,7 +1079,7 @@ __webpack_require__.r(__webpack_exports__);
1079 1079
 /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
1080 1080
 
1081 1081
 
1082
-var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h5", null, "Product", -1
1082
+var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", null, "Product", -1
1083 1083
 /* HOISTED */
1084 1084
 );
1085 1085
 

+ 4
- 4
public/js/resources_js_pages_transaction_Create_vue.js Visa fil

@@ -2025,9 +2025,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
2025 2025
           /* PROPS */
2026 2026
           , ["modelValue", "error", "suggestions"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppAutocompleteBasic"], {
2027 2027
             dropdown: "",
2028
-            label: "Tipe Laundry",
2028
+            label: "Laundry",
2029 2029
             field: "name",
2030
-            placeholder: "tipe Laundry",
2030
+            placeholder: "laundry",
2031 2031
             modelValue: $setup.form.laundry,
2032 2032
             "onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) {
2033 2033
               return $setup.form.laundry = $event;
@@ -2066,9 +2066,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
2066 2066
           /* PROPS */
2067 2067
           , ["modelValue", "label", "disabled", "error", "step"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_13, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppAutocompleteBasic"], {
2068 2068
             dropdown: "",
2069
-            label: "Jenis Product",
2069
+            label: "Product",
2070 2070
             field: "name",
2071
-            placeholder: "jenis product",
2071
+            placeholder: "product",
2072 2072
             modelValue: $setup.form.product,
2073 2073
             "onUpdate:modelValue": _cache[5] || (_cache[5] = function ($event) {
2074 2074
               return $setup.form.product = $event;

+ 1
- 1
public/js/resources_js_pages_transaction_Index_vue.js Visa fil

@@ -1848,7 +1848,7 @@ __webpack_require__.r(__webpack_exports__);
1848 1848
 /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
1849 1849
 
1850 1850
 
1851
-var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h5", null, "Transaksi", -1
1851
+var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", null, "Transaksi", -1
1852 1852
 /* HOISTED */
1853 1853
 );
1854 1854
 

+ 1
- 1
public/js/resources_js_pages_transaction_Report_vue.js Visa fil

@@ -1123,7 +1123,7 @@ __webpack_require__.r(__webpack_exports__);
1123 1123
 /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
1124 1124
 
1125 1125
 
1126
-var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h5", null, "Laporan Transaksi", -1
1126
+var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", null, "Laporan Transaksi", -1
1127 1127
 /* HOISTED */
1128 1128
 );
1129 1129
 

+ 1
- 1
public/js/resources_js_pages_user_Index_vue.js Visa fil

@@ -1080,7 +1080,7 @@ __webpack_require__.r(__webpack_exports__);
1080 1080
 /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
1081 1081
 
1082 1082
 
1083
-var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h5", null, "User", -1
1083
+var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", null, "User", -1
1084 1084
 /* HOISTED */
1085 1085
 );
1086 1086
 

+ 1
- 1
public/js/vue.js Visa fil

@@ -57430,7 +57430,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
57430 57430
 /******/ 		// This function allow to reference async chunks
57431 57431
 /******/ 		__webpack_require__.u = (chunkId) => {
57432 57432
 /******/ 			// return url for filenames based on template
57433
-/******/ 			return "js/" + chunkId + ".js?id=" + {"resources_js_pages_Access_vue":"f8bbe21f8e264f5e","resources_js_pages_auth_ForgotPassword_vue":"9db08b886f3acf35","resources_js_pages_auth_Login_vue":"8066395135ce093d","resources_js_pages_auth_ResetPassword_vue":"3191258dc6d8a4b7","resources_js_pages_auth_VerifyEmail_vue":"632c69e9e8e9c0af","resources_js_pages_customer_Create_vue":"edd672f633080188","resources_js_pages_customer_Edit_vue":"776ee19646e665ab","resources_js_pages_customer_Index_vue":"d1d7b854ce4f2b4f","resources_js_pages_customer_TableHeader_js":"5a71001a3c75e000","resources_js_pages_expense_Create_vue":"ec360617c9c50e52","resources_js_pages_expense_Index_vue":"49e49fdd493bed72","resources_js_pages_expense_Show_vue":"3c5a44b5c95cfad7","resources_js_pages_expense_TableHeader_js":"72e3dee74175b1c0","resources_js_pages_laundry_Create_vue":"f32471dcb6e8e976","resources_js_pages_laundry_Edit_vue":"a56be879ba90a1c2","resources_js_pages_laundry_Index_vue":"30a5bef32fe436a9","resources_js_pages_laundry_TableHeader_js":"494e577855bbcaf6","resources_js_pages_mutation_Report_vue":"613ff5bf3528d4bb","resources_js_pages_mutation_TableHeader_js":"82c2999bd7d098a1","resources_js_pages_outlet_Create_vue":"9d3cb3af8ae44c89","resources_js_pages_outlet_Edit_vue":"149f5e377e042f61","resources_js_pages_outlet_Index_vue":"1406bdcf840579cc","resources_js_pages_outlet_TableHeader_js":"498bf7e64bc0d0c4","resources_js_pages_product_Create_vue":"64652ed95d59715f","resources_js_pages_product_Edit_vue":"52cf7616ac4caef5","resources_js_pages_product_Index_vue":"c912e1c413db894a","resources_js_pages_product_TableHeader_js":"b8eaaa9de25a2322","resources_js_pages_transaction_Create_vue":"290454991d8520cb","resources_js_pages_transaction_Index_vue":"2a5e3b2221e3335d","resources_js_pages_transaction_Report_vue":"ee6e29dc152fe5be","resources_js_pages_transaction_Show_vue":"fbaa7c5418d15d7f","resources_js_pages_transaction_TableHeader_js":"ba35ab28bb4ac891","resources_js_pages_user_Create_vue":"bdfe89db03d97bf3","resources_js_pages_user_Edit_vue":"2cdedb155f4ee9b6","resources_js_pages_user_Index_vue":"f4cdba08d71b7e9a","resources_js_pages_user_Show_vue":"51ef32182e7fbc4e","resources_js_pages_user_TableHeader_js":"5653ecbcd70fd235"}[chunkId] + "";
57433
+/******/ 			return "js/" + chunkId + ".js?id=" + {"resources_js_pages_Access_vue":"f8bbe21f8e264f5e","resources_js_pages_auth_ForgotPassword_vue":"9db08b886f3acf35","resources_js_pages_auth_Login_vue":"8066395135ce093d","resources_js_pages_auth_ResetPassword_vue":"3191258dc6d8a4b7","resources_js_pages_auth_VerifyEmail_vue":"632c69e9e8e9c0af","resources_js_pages_customer_Create_vue":"edd672f633080188","resources_js_pages_customer_Edit_vue":"d6f003b410a7bf2b","resources_js_pages_customer_Index_vue":"7843c2f1c04b234c","resources_js_pages_customer_TableHeader_js":"71be5afdca048a9c","resources_js_pages_expense_Create_vue":"949cf67bd6e52e0a","resources_js_pages_expense_Index_vue":"a6c58769926f3e9a","resources_js_pages_expense_Show_vue":"3c5a44b5c95cfad7","resources_js_pages_expense_TableHeader_js":"72e3dee74175b1c0","resources_js_pages_laundry_Create_vue":"f32471dcb6e8e976","resources_js_pages_laundry_Edit_vue":"a56be879ba90a1c2","resources_js_pages_laundry_Index_vue":"ce72eb143548ad06","resources_js_pages_laundry_TableHeader_js":"494e577855bbcaf6","resources_js_pages_mutation_Report_vue":"1c36e270f299f756","resources_js_pages_mutation_TableHeader_js":"82c2999bd7d098a1","resources_js_pages_outlet_Create_vue":"9d3cb3af8ae44c89","resources_js_pages_outlet_Edit_vue":"149f5e377e042f61","resources_js_pages_outlet_Index_vue":"45f7bf83368c65d5","resources_js_pages_outlet_TableHeader_js":"498bf7e64bc0d0c4","resources_js_pages_product_Create_vue":"64652ed95d59715f","resources_js_pages_product_Edit_vue":"52cf7616ac4caef5","resources_js_pages_product_Index_vue":"e3f66bf4eee564e9","resources_js_pages_product_TableHeader_js":"b8eaaa9de25a2322","resources_js_pages_transaction_Create_vue":"0e3d3c236bbe606f","resources_js_pages_transaction_Index_vue":"e9acb7a9e01c0814","resources_js_pages_transaction_Report_vue":"ad1252755074a355","resources_js_pages_transaction_Show_vue":"fbaa7c5418d15d7f","resources_js_pages_transaction_TableHeader_js":"ba35ab28bb4ac891","resources_js_pages_user_Create_vue":"bdfe89db03d97bf3","resources_js_pages_user_Edit_vue":"2cdedb155f4ee9b6","resources_js_pages_user_Index_vue":"2306d9ccccefddb9","resources_js_pages_user_Show_vue":"51ef32182e7fbc4e","resources_js_pages_user_TableHeader_js":"5653ecbcd70fd235"}[chunkId] + "";
57434 57434
 /******/ 		};
57435 57435
 /******/ 	})();
57436 57436
 /******/ 	

+ 1
- 1
resources/js/components/AppEditor.vue Visa fil

@@ -42,7 +42,7 @@ const ariaDescribedbyLabel = computed(() =>
42 42
       :model-value="modelValue"
43 43
       :editor-style="editorStyle"
44 44
       :placeholder="placeholder"
45
-      @input="$emit('update:modelValue', $event)"
45
+      @text-change="$emit('update:modelValue', $event.htmlValue)"
46 46
     >
47 47
       <template #toolbar>
48 48
         <slot name="toolbar" />

+ 64
- 0
resources/js/pages/customer/Edit.vue Visa fil

@@ -6,11 +6,15 @@ import AppButton from '@/components/AppButton.vue'
6 6
 import AppDropdown from '@/components/AppDropdown.vue'
7 7
 import AppInputText from '@/components/AppInputText.vue'
8 8
 import AppDialog from '@/components/AppDialog.vue'
9
+import AppPagination from '@/components/AppPagination.vue'
9 10
 import AppLayout from '@/layouts/AppLayout.vue'
10 11
 
12
+import { TransactionTable } from './TableHeader'
13
+
11 14
 const props = defineProps({
12 15
   customer: Object,
13 16
   genders: Array,
17
+  transactions: Object,
14 18
 })
15 19
 
16 20
 const form = useForm({
@@ -98,5 +102,65 @@ const onCancel = () => (visibleDialog.value = false)
98 102
         </Card>
99 103
       </div>
100 104
     </div>
105
+
106
+    <h2>Riwayat Transaksi</h2>
107
+    <div class="grid">
108
+      <div class="col-12">
109
+        <Card>
110
+          <template #content>
111
+            <DataTable
112
+              responsive-layout="scroll"
113
+              column-resize-mode="expand"
114
+              :value="transactions.data"
115
+              :row-hover="true"
116
+              :striped-rows="true"
117
+            >
118
+              <Column
119
+                v-for="transactionTable in TransactionTable"
120
+                :field="transactionTable.field"
121
+                :header="transactionTable.header"
122
+                :key="transactionTable.field"
123
+              >
124
+                <template #body="{ data, field }">
125
+                  <template v-if="field === 'transactionNumber'">
126
+                    <p class="font-bold">{{ data[field] }}</p>
127
+                    <p>{{ data.createdAt }}</p>
128
+                  </template>
129
+                  <template v-else-if="field === 'customer'">
130
+                    <p class="font-bold">{{ data.customer.number }}</p>
131
+                    <p>{{ data.customer.name }}</p>
132
+                    <p>{{ data.customer.phone }}</p>
133
+                  </template>
134
+                  <template v-else-if="field === 'transactionStatusName'">
135
+                    <Badge v-if="data['transactionStatusId'] === 1" :value="data[field]"></Badge>
136
+                    <Badge
137
+                      v-else-if="data['transactionStatusId'] === 2"
138
+                      :value="data[field]"
139
+                      severity="warning"
140
+                    ></Badge>
141
+                    <Badge v-else :value="data[field]" severity="success"></Badge>
142
+                  </template>
143
+                  <template v-else>
144
+                    {{ data[field] }}
145
+                  </template>
146
+                </template>
147
+              </Column>
148
+
149
+              <Column>
150
+                <template #body="{ data }">
151
+                  <AppButton
152
+                    icon="pi pi-angle-double-right"
153
+                    class="p-button-icon-only p-button-rounded p-button-text"
154
+                    :href="route('transactions.show', data.id)"
155
+                  />
156
+                </template>
157
+              </Column>
158
+            </DataTable>
159
+
160
+            <AppPagination :links="transactions.links" />
161
+          </template>
162
+        </Card>
163
+      </div>
164
+    </div>
101 165
   </AppLayout>
102 166
 </template>

+ 6
- 6
resources/js/pages/customer/Index.vue Visa fil

@@ -8,7 +8,7 @@ import AppButton from '@/components/AppButton.vue'
8 8
 import AppPagination from '@/components/AppPagination.vue'
9 9
 import AppLayout from '@/layouts/AppLayout.vue'
10 10
 
11
-import TableHeader from './TableHeader'
11
+import { IndexTable } from './TableHeader'
12 12
 
13 13
 const props = defineProps({
14 14
   customers: Object,
@@ -39,7 +39,7 @@ watch(
39 39
       :stripedRows="true"
40 40
     >
41 41
       <template #header>
42
-        <h5>Customer</h5>
42
+        <h1>Customer</h1>
43 43
 
44 44
         <div class="grid">
45 45
           <div class="col-12 md:col-8">
@@ -60,10 +60,10 @@ watch(
60 60
       </template>
61 61
 
62 62
       <Column
63
-        v-for="tableHeader in TableHeader"
64
-        :field="tableHeader.field"
65
-        :header="tableHeader.header"
66
-        :key="tableHeader.field"
63
+        v-for="indexTable in IndexTable"
64
+        :field="indexTable.field"
65
+        :header="indexTable.header"
66
+        :key="indexTable.field"
67 67
       />
68 68
 
69 69
       <Column>

+ 9
- 1
resources/js/pages/customer/TableHeader.js Visa fil

@@ -1,6 +1,14 @@
1
-export default [
1
+export const IndexTable = [
2 2
   { field: 'customer_number', header: 'Id Customer' },
3 3
   { field: 'name', header: 'Nama' },
4 4
   { field: 'phone', header: 'HP' },
5 5
   { field: 'gender', header: 'Jenis Kelamin' },
6 6
 ]
7
+
8
+export const TransactionTable = [
9
+  { field: 'transactionNumber', header: 'Id Transaksi' },
10
+  { field: 'customer', header: 'Id Customer' },
11
+  { field: 'price', header: 'Total Harga' },
12
+  { field: 'transactionStatusName', header: 'Status' },
13
+  { field: 'outlet', header: 'Outlet' },
14
+]

+ 14
- 15
resources/js/pages/expense/Create.vue Visa fil

@@ -24,19 +24,18 @@ const submit = () => {
24 24
 
25 25
 <template>
26 26
   <AppLayout>
27
-    <Card>
28
-      <template #content>
29
-        <div class="grid">
30
-          <div class="col-12 md:col-3">
27
+    <div class="grid">
28
+      <div class="col-12 md:col-8">
29
+        <Card>
30
+          <template #content>
31 31
             <AppInputNumber
32 32
               v-model="form.amount"
33
+              class="md:w-16rem"
33 34
               label="Pengeluaran"
34 35
               placeholder="pengeluaran"
35 36
               :error="form.errors.amount"
36 37
             />
37
-          </div>
38 38
 
39
-          <div class="col-12">
40 39
             <AppEditor
41 40
               label="Keterangan"
42 41
               v-model="form.description"
@@ -56,15 +55,15 @@ const submit = () => {
56 55
                 </span>
57 56
               </template>
58 57
             </AppEditor>
59
-          </div>
60
-        </div>
61
-      </template>
58
+          </template>
62 59
 
63
-      <template #footer>
64
-        <div class="flex justify-content-end">
65
-          <AppButton @click="submit" label="Simpan" icon="pi pi-check" class="p-button-text" />
66
-        </div>
67
-      </template>
68
-    </Card>
60
+          <template #footer>
61
+            <div class="flex justify-content-end">
62
+              <AppButton @click="submit" label="Simpan" icon="pi pi-check" class="p-button-text" />
63
+            </div>
64
+          </template>
65
+        </Card>
66
+      </div>
67
+    </div>
69 68
   </AppLayout>
70 69
 </template>

+ 1
- 1
resources/js/pages/expense/Index.vue Visa fil

@@ -79,7 +79,7 @@ const isAdmin = computed(() => usePage().props.value.isAdmin)
79 79
       :striped-rows="true"
80 80
     >
81 81
       <template #header>
82
-        <h5>Pengeluaran</h5>
82
+        <h1>Pengeluaran</h1>
83 83
 
84 84
         <div class="grid">
85 85
           <div class="col-12 md:col-8">

+ 1
- 1
resources/js/pages/laundry/Index.vue Visa fil

@@ -39,7 +39,7 @@ watch(
39 39
       :stripedRows="true"
40 40
     >
41 41
       <template #header>
42
-        <h5>Laundry</h5>
42
+        <h1>Laundry</h1>
43 43
 
44 44
         <div class="grid">
45 45
           <div class="col-12 md:col-8">

+ 1
- 1
resources/js/pages/mutation/Report.vue Visa fil

@@ -92,7 +92,7 @@ const isAdmin = computed(() => usePage().props.value.isAdmin)
92 92
       :striped-rows="true"
93 93
     >
94 94
       <template #header>
95
-        <h5>Laporan Mutasi</h5>
95
+        <h1>Laporan Mutasi</h1>
96 96
 
97 97
         <div class="grid">
98 98
           <div class="col-12 md:col-8">

+ 1
- 1
resources/js/pages/outlet/Index.vue Visa fil

@@ -39,7 +39,7 @@ watch(
39 39
       :stripedRows="true"
40 40
     >
41 41
       <template #header>
42
-        <h5>Outlet</h5>
42
+        <h1>Outlet</h1>
43 43
 
44 44
         <div class="grid">
45 45
           <div class="col-12 md:col-8">

+ 1
- 1
resources/js/pages/product/Index.vue Visa fil

@@ -39,7 +39,7 @@ watch(
39 39
       :stripedRows="true"
40 40
     >
41 41
       <template #header>
42
-        <h5>Product</h5>
42
+        <h1>Product</h1>
43 43
 
44 44
         <div class="grid">
45 45
           <div class="col-12 md:col-8">

+ 4
- 4
resources/js/pages/transaction/Create.vue Visa fil

@@ -270,9 +270,9 @@ const submit = () => {
270 270
               <div class="col-12 sm:col-6">
271 271
                 <AppAutocompleteBasic
272 272
                   dropdown
273
-                  label="Tipe Laundry"
273
+                  label="Laundry"
274 274
                   field="name"
275
-                  placeholder="tipe Laundry"
275
+                  placeholder="laundry"
276 276
                   v-model="form.laundry"
277 277
                   :error="form.errors.product"
278 278
                   :suggestions="laundries"
@@ -307,9 +307,9 @@ const submit = () => {
307 307
               <div class="col-12 sm:col-6">
308 308
                 <AppAutocompleteBasic
309 309
                   dropdown
310
-                  label="Jenis Product"
310
+                  label="Product"
311 311
                   field="name"
312
-                  placeholder="jenis product"
312
+                  placeholder="product"
313 313
                   v-model="form.product"
314 314
                   :error="form.errors.product"
315 315
                   :suggestions="products"

+ 1
- 1
resources/js/pages/transaction/Index.vue Visa fil

@@ -158,7 +158,7 @@ const isAdmin = computed(() => usePage().props.value.isAdmin)
158 158
       :striped-rows="true"
159 159
     >
160 160
       <template #header>
161
-        <h5>Transaksi</h5>
161
+        <h1>Transaksi</h1>
162 162
 
163 163
         <div class="grid">
164 164
           <div class="col-12 md:col-8">

+ 1
- 1
resources/js/pages/transaction/Report.vue Visa fil

@@ -84,7 +84,7 @@ const isAdmin = computed(() => usePage().props.value.isAdmin)
84 84
       :striped-rows="true"
85 85
     >
86 86
       <template #header>
87
-        <h5>Laporan Transaksi</h5>
87
+        <h1>Laporan Transaksi</h1>
88 88
 
89 89
         <div class="grid">
90 90
           <div class="col-12 md:col-8">

+ 1
- 1
resources/js/pages/user/Index.vue Visa fil

@@ -39,7 +39,7 @@ watch(
39 39
       :stripedRows="true"
40 40
     >
41 41
       <template #header>
42
-        <h5>User</h5>
42
+        <h1>User</h1>
43 43
 
44 44
         <div class="grid">
45 45
           <div class="col-12 md:col-8">

+ 21
- 21
yarn.lock Visa fil

@@ -2402,7 +2402,7 @@ crypto-browserify@^3.11.0:
2402 2402
     randombytes "^2.0.0"
2403 2403
     randomfill "^1.0.3"
2404 2404
 
2405
-css-declaration-sorter@^6.0.3:
2405
+css-declaration-sorter@^6.2.2:
2406 2406
   version "6.2.2"
2407 2407
   resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz#bfd2f6f50002d6a3ae779a87d3a0c5d5b10e0f02"
2408 2408
   integrity sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==
@@ -2452,12 +2452,12 @@ cssesc@^3.0.0:
2452 2452
   resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
2453 2453
   integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
2454 2454
 
2455
-cssnano-preset-default@^5.2.5:
2456
-  version "5.2.5"
2457
-  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.5.tgz#267ded811a3e1664d78707f5355fcd89feeb38ac"
2458
-  integrity sha512-WopL7PzN7sos3X8B54/QGl+CZUh1f0qN4ds+y2d5EPwRSSc3jsitVw81O+Uyop0pXyOfPfZxnc+LmA8w/Ki/WQ==
2455
+cssnano-preset-default@^5.2.7:
2456
+  version "5.2.7"
2457
+  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.7.tgz#791e3603fb8f1b46717ac53b47e3c418e950f5f3"
2458
+  integrity sha512-JiKP38ymZQK+zVKevphPzNSGHSlTI+AOwlasoSRtSVMUU285O7/6uZyd5NbW92ZHp41m0sSHe6JoZosakj63uA==
2459 2459
   dependencies:
2460
-    css-declaration-sorter "^6.0.3"
2460
+    css-declaration-sorter "^6.2.2"
2461 2461
     cssnano-utils "^3.1.0"
2462 2462
     postcss-calc "^8.2.3"
2463 2463
     postcss-colormin "^5.3.0"
@@ -2466,7 +2466,7 @@ cssnano-preset-default@^5.2.5:
2466 2466
     postcss-discard-duplicates "^5.1.0"
2467 2467
     postcss-discard-empty "^5.1.1"
2468 2468
     postcss-discard-overridden "^5.1.0"
2469
-    postcss-merge-longhand "^5.1.3"
2469
+    postcss-merge-longhand "^5.1.4"
2470 2470
     postcss-merge-rules "^5.1.1"
2471 2471
     postcss-minify-font-values "^5.1.0"
2472 2472
     postcss-minify-gradients "^5.1.1"
@@ -2493,11 +2493,11 @@ cssnano-utils@^3.1.0:
2493 2493
   integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==
2494 2494
 
2495 2495
 cssnano@^5.0.8:
2496
-  version "5.1.5"
2497
-  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.5.tgz#5f3f519538c7f1c182c527096892243db3e17397"
2498
-  integrity sha512-VZO1e+bRRVixMeia1zKagrv0lLN1B/r/u12STGNNUFxnp97LIFgZHQa0JxqlwEkvzUyA9Oz/WnCTAFkdEbONmg==
2496
+  version "5.1.7"
2497
+  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.7.tgz#99858bef6c76c9240f0cdc9239570bc7db8368be"
2498
+  integrity sha512-pVsUV6LcTXif7lvKKW9ZrmX+rGRzxkEdJuVJcp5ftUjWITgwam5LMZOgaTvUrWPkcORBey6he7JKb4XAJvrpKg==
2499 2499
   dependencies:
2500
-    cssnano-preset-default "^5.2.5"
2500
+    cssnano-preset-default "^5.2.7"
2501 2501
     lilconfig "^2.0.3"
2502 2502
     yaml "^1.10.2"
2503 2503
 
@@ -4580,10 +4580,10 @@ postcss-loader@^6.2.0:
4580 4580
     klona "^2.0.5"
4581 4581
     semver "^7.3.5"
4582 4582
 
4583
-postcss-merge-longhand@^5.1.3:
4584
-  version "5.1.3"
4585
-  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz#a49e2be6237316e3b55e329e0a8da15d1f9f47ab"
4586
-  integrity sha512-lX8GPGvZ0iGP/IboM7HXH5JwkXvXod1Rr8H8ixwiA372hArk0zP4ZcCy4z4Prg/bfNlbbTf0KCOjCF9kKnpP/w==
4583
+postcss-merge-longhand@^5.1.4:
4584
+  version "5.1.4"
4585
+  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.4.tgz#0f46f8753989a33260efc47de9a0cdc571f2ec5c"
4586
+  integrity sha512-hbqRRqYfmXoGpzYKeW0/NCZhvNyQIlQeWVSao5iKWdyx7skLvCfQFGIUsP9NUs3dSbPac2IC4Go85/zG+7MlmA==
4587 4587
   dependencies:
4588 4588
     postcss-value-parser "^4.2.0"
4589 4589
     stylehacks "^5.1.0"
@@ -5174,9 +5174,9 @@ sass-loader@^12.1.0:
5174 5174
     neo-async "^2.6.2"
5175 5175
 
5176 5176
 sass@^1.49.8:
5177
-  version "1.49.10"
5178
-  resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.10.tgz#7b83cee0f03bbba443111b3f94944fde2b0c7a6b"
5179
-  integrity sha512-w37zfWJwKu4I78U4z63u1mmgoncq+v3iOB4yzQMPyAPVHHawaQSnu9C9ysGQnZEhW609jkcLioJcMCqm75JMdg==
5177
+  version "1.49.11"
5178
+  resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.11.tgz#1ffeb77faeed8b806a2a1e021d7c9fd3fc322cb7"
5179
+  integrity sha512-wvS/geXgHUGs6A/4ud5BFIWKO1nKd7wYIGimDk4q4GFkJicILActpv9ueMT4eRGSsp1BdKHuw1WwAHXbhsJELQ==
5180 5180
   dependencies:
5181 5181
     chokidar ">=3.0.0 <4.0.0"
5182 5182
     immutable "^4.0.0"
@@ -6005,9 +6005,9 @@ webpack-sources@^3.2.3:
6005 6005
   integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
6006 6006
 
6007 6007
 webpack@^5.60.0:
6008
-  version "5.70.0"
6009
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.70.0.tgz#3461e6287a72b5e6e2f4872700bc8de0d7500e6d"
6010
-  integrity sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==
6008
+  version "5.71.0"
6009
+  resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.71.0.tgz#b01fcf379570b8c5ee06ca06c829ca168c951884"
6010
+  integrity sha512-g4dFT7CFG8LY0iU5G8nBL6VlkT21Z7dcYDpJAEJV5Q1WLb9UwnFbrem1k7K52ILqEmomN7pnzWFxxE6SlDY56A==
6011 6011
   dependencies:
6012 6012
     "@types/eslint-scope" "^3.7.3"
6013 6013
     "@types/estree" "^0.0.51"