浏览代码

fix: sales master

父节点
当前提交
ff22148021

+ 7
- 6
app/Http/Controllers/SalesController.php 查看文件

37
                     'number' => $sale->number,
37
                     'number' => $sale->number,
38
                     'status' => $sale->status,
38
                     'status' => $sale->status,
39
                     'price' => $sale->saleDetail->price,
39
                     'price' => $sale->saleDetail->price,
40
-                    'ppn' => $sale->saleDetail->ppn,
40
+                    'ppn' => $sale->saleDetail->ppn . '%',
41
                     'qty' => $sale->saleDetail->qty,
41
                     'qty' => $sale->saleDetail->qty,
42
                     'productName' => $sale->product->name,
42
                     'productName' => $sale->product->name,
43
                     'productNumber' => $sale->product->number
43
                     'productNumber' => $sale->product->number
132
             'sale' => [
132
             'sale' => [
133
                 'id' => $sale->id,
133
                 'id' => $sale->id,
134
                 'number' => $sale->number,
134
                 'number' => $sale->number,
135
-                'status' => [
136
-                    'value' => $sale->status
137
-                ],
135
+                'status' => $sale->status,
138
                 'price' => $sale->saleDetail->getRawOriginal('price'),
136
                 'price' => $sale->saleDetail->getRawOriginal('price'),
139
                 'qty' => $sale->saleDetail->qty,
137
                 'qty' => $sale->saleDetail->qty,
138
+                'ppn' => $sale->saleDetail->ppn,
140
                 'customer' => $sale->customer,
139
                 'customer' => $sale->customer,
141
                 'product' => $sale->product
140
                 'product' => $sale->product
142
             ]
141
             ]
152
      */
151
      */
153
     public function update(UpdateSaleRequest $request, Sale $sale)
152
     public function update(UpdateSaleRequest $request, Sale $sale)
154
     {
153
     {
155
-        dd($request->validated());
156
-
157
         DB::beginTransaction();
154
         DB::beginTransaction();
158
 
155
 
159
         try {
156
         try {
157
+            $sale->create($request->validated());
158
+
159
+            $sale->saleDetail()->create($request->validated());
160
+
160
             DB::commit();
161
             DB::commit();
161
 
162
 
162
             return back()->with('succes', __('messages.success.update.sale'));
163
             return back()->with('succes', __('messages.success.update.sale'));

+ 1
- 1
app/Models/Sale.php 查看文件

21
     protected function updatedAt(): Attribute
21
     protected function updatedAt(): Attribute
22
     {
22
     {
23
         return Attribute::make(
23
         return Attribute::make(
24
-            get:fn($value) => Carbon::parse($value)->translatedFormat('l d/m/Y H:i:s')
24
+            get:fn($value) => Carbon::parse($value)->translatedFormat('l d/m/Y')
25
         );
25
         );
26
     }
26
     }
27
 
27
 

+ 27
- 11
public/js/resources_js_pages_Sales_Components_SaleDetails_vue.js 查看文件

13
 /* harmony export */ });
13
 /* harmony export */ });
14
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
14
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
15
   __name: 'SaleDetails',
15
   __name: 'SaleDetails',
16
-  props: ['saleNumber', 'salePrice', 'saleQty', 'saleStatus', 'customer', 'product'],
16
+  props: ['saleNumber', 'salePrice', 'saleQty', 'salePpn', 'saleStatus', 'customer', 'product'],
17
   setup: function setup(__props, _ref) {
17
   setup: function setup(__props, _ref) {
18
     var expose = _ref.expose;
18
     var expose = _ref.expose;
19
     expose();
19
     expose();
159
 );
159
 );
160
 
160
 
161
 var _hoisted_26 = {
161
 var _hoisted_26 = {
162
-  key: 1,
163
   "class": "col-12"
162
   "class": "col-12"
164
 };
163
 };
164
+var _hoisted_27 = {
165
+  "class": "grid"
166
+};
167
+var _hoisted_28 = {
168
+  "class": "col"
169
+};
170
+
171
+var _hoisted_29 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
172
+  "class": "text-base"
173
+}, "Harga", -1
174
+/* HOISTED */
175
+);
165
 
176
 
166
-var _hoisted_27 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
177
+var _hoisted_30 = {
178
+  "class": "col"
179
+};
180
+
181
+var _hoisted_31 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
167
   "class": "text-base"
182
   "class": "text-base"
168
 }, "Kuantitas", -1
183
 }, "Kuantitas", -1
169
 /* HOISTED */
184
 /* HOISTED */
170
 );
185
 );
171
 
186
 
172
-var _hoisted_28 = {
173
-  key: 2,
174
-  "class": "col-12"
187
+var _hoisted_32 = {
188
+  "class": "col"
175
 };
189
 };
176
 
190
 
177
-var _hoisted_29 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
191
+var _hoisted_33 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
178
   "class": "text-base"
192
   "class": "text-base"
179
-}, "Harga", -1
193
+}, "PPN", -1
180
 /* HOISTED */
194
 /* HOISTED */
181
 );
195
 );
182
 
196
 
208
       /* TEXT */
222
       /* TEXT */
209
       )])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Divider, {
223
       )])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Divider, {
210
         type: "dashed"
224
         type: "dashed"
211
-      }), $props.saleQty !== null && $props.saleQty.length >= 1 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_26, [_hoisted_27, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.saleQty), 1
225
+      }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_26, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_27, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_28, [_hoisted_29, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.salePrice), 1
226
+      /* TEXT */
227
+      )]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_30, [_hoisted_31, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.saleQty), 1
212
       /* TEXT */
228
       /* TEXT */
213
-      )])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true), $props.salePrice !== null ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_28, [_hoisted_29, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.salePrice), 1
229
+      )]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_32, [_hoisted_33, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.salePpn) + " %", 1
214
       /* TEXT */
230
       /* TEXT */
215
-      )])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)])];
231
+      )])])])])];
216
     }),
232
     }),
217
     _: 1
233
     _: 1
218
     /* STABLE */
234
     /* STABLE */

+ 35
- 14
public/js/resources_js_pages_Sales_Create_vue.js 查看文件

746
 /* harmony export */ });
746
 /* harmony export */ });
747
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
747
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
748
   __name: 'SaleDetails',
748
   __name: 'SaleDetails',
749
-  props: ['saleNumber', 'salePrice', 'saleQty', 'saleStatus', 'customer', 'product'],
749
+  props: ['saleNumber', 'salePrice', 'saleQty', 'salePpn', 'saleStatus', 'customer', 'product'],
750
   setup: function setup(__props, _ref) {
750
   setup: function setup(__props, _ref) {
751
     var expose = _ref.expose;
751
     var expose = _ref.expose;
752
     expose();
752
     expose();
803
   __name: 'Create',
803
   __name: 'Create',
804
   props: {
804
   props: {
805
     number: String,
805
     number: String,
806
+    ppn: Number,
806
     customers: {
807
     customers: {
807
       type: Array,
808
       type: Array,
808
       "default": []
809
       "default": []
1918
 );
1919
 );
1919
 
1920
 
1920
 var _hoisted_26 = {
1921
 var _hoisted_26 = {
1921
-  key: 1,
1922
   "class": "col-12"
1922
   "class": "col-12"
1923
 };
1923
 };
1924
+var _hoisted_27 = {
1925
+  "class": "grid"
1926
+};
1927
+var _hoisted_28 = {
1928
+  "class": "col"
1929
+};
1930
+
1931
+var _hoisted_29 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
1932
+  "class": "text-base"
1933
+}, "Harga", -1
1934
+/* HOISTED */
1935
+);
1936
+
1937
+var _hoisted_30 = {
1938
+  "class": "col"
1939
+};
1924
 
1940
 
1925
-var _hoisted_27 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
1941
+var _hoisted_31 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
1926
   "class": "text-base"
1942
   "class": "text-base"
1927
 }, "Kuantitas", -1
1943
 }, "Kuantitas", -1
1928
 /* HOISTED */
1944
 /* HOISTED */
1929
 );
1945
 );
1930
 
1946
 
1931
-var _hoisted_28 = {
1932
-  key: 2,
1933
-  "class": "col-12"
1947
+var _hoisted_32 = {
1948
+  "class": "col"
1934
 };
1949
 };
1935
 
1950
 
1936
-var _hoisted_29 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
1951
+var _hoisted_33 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
1937
   "class": "text-base"
1952
   "class": "text-base"
1938
-}, "Harga", -1
1953
+}, "PPN", -1
1939
 /* HOISTED */
1954
 /* HOISTED */
1940
 );
1955
 );
1941
 
1956
 
1967
       /* TEXT */
1982
       /* TEXT */
1968
       )])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Divider, {
1983
       )])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Divider, {
1969
         type: "dashed"
1984
         type: "dashed"
1970
-      }), $props.saleQty !== null && $props.saleQty.length >= 1 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_26, [_hoisted_27, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.saleQty), 1
1985
+      }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_26, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_27, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_28, [_hoisted_29, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.salePrice), 1
1971
       /* TEXT */
1986
       /* TEXT */
1972
-      )])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true), $props.salePrice !== null ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_28, [_hoisted_29, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.salePrice), 1
1987
+      )]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_30, [_hoisted_31, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.saleQty), 1
1973
       /* TEXT */
1988
       /* TEXT */
1974
-      )])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)])];
1989
+      )]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_32, [_hoisted_33, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.salePpn) + " %", 1
1990
+      /* TEXT */
1991
+      )])])])])];
1975
     }),
1992
     }),
1976
     _: 1
1993
     _: 1
1977
     /* STABLE */
1994
     /* STABLE */
2182
         "sale-number": $props.number,
2199
         "sale-number": $props.number,
2183
         "sale-price": $setup.form.price,
2200
         "sale-price": $setup.form.price,
2184
         "sale-qty": $setup.form.qty,
2201
         "sale-qty": $setup.form.qty,
2202
+        "sale-ppn": $props.ppn,
2185
         "sale-status": $setup.form.status,
2203
         "sale-status": $setup.form.status,
2186
         customer: $setup.form.customer,
2204
         customer: $setup.form.customer,
2187
         product: $setup.form.product
2205
         product: $setup.form.product
2188
       }, null, 8
2206
       }, null, 8
2189
       /* PROPS */
2207
       /* PROPS */
2190
-      , ["sale-number", "sale-price", "sale-qty", "sale-status", "customer", "product"])])])];
2208
+      , ["sale-number", "sale-price", "sale-qty", "sale-ppn", "sale-status", "customer", "product"])])])];
2191
     }),
2209
     }),
2192
     _: 1
2210
     _: 1
2193
     /* STABLE */
2211
     /* STABLE */
2237
 /* harmony export */   "optionStatus": () => (/* binding */ optionStatus)
2255
 /* harmony export */   "optionStatus": () => (/* binding */ optionStatus)
2238
 /* harmony export */ });
2256
 /* harmony export */ });
2239
 var optionStatus = [{
2257
 var optionStatus = [{
2240
-  label: 'Pending',
2258
+  label: 'pending',
2241
   value: 'pending'
2259
   value: 'pending'
2242
 }, {
2260
 }, {
2243
-  label: 'Success',
2261
+  label: 'success',
2244
   value: 'success'
2262
   value: 'success'
2245
 }];
2263
 }];
2246
 var indexTable = [{
2264
 var indexTable = [{
2258
 }, {
2276
 }, {
2259
   field: 'qty',
2277
   field: 'qty',
2260
   header: 'Kuantitas'
2278
   header: 'Kuantitas'
2279
+}, {
2280
+  field: 'ppn',
2281
+  header: 'PPN'
2261
 }, {
2282
 }, {
2262
   field: 'productName',
2283
   field: 'productName',
2263
   header: 'Nama Produk'
2284
   header: 'Nama Produk'

+ 35
- 15
public/js/resources_js_pages_Sales_Edit_vue.js 查看文件

518
 /* harmony export */ });
518
 /* harmony export */ });
519
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
519
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
520
   __name: 'SaleDetails',
520
   __name: 'SaleDetails',
521
-  props: ['saleNumber', 'salePrice', 'saleQty', 'saleStatus', 'customer', 'product'],
521
+  props: ['saleNumber', 'salePrice', 'saleQty', 'salePpn', 'saleStatus', 'customer', 'product'],
522
   setup: function setup(__props, _ref) {
522
   setup: function setup(__props, _ref) {
523
     var expose = _ref.expose;
523
     var expose = _ref.expose;
524
     expose();
524
     expose();
567
     expose();
567
     expose();
568
     var props = __props;
568
     var props = __props;
569
     var form = (0,_components_useForm__WEBPACK_IMPORTED_MODULE_0__.useForm)({
569
     var form = (0,_components_useForm__WEBPACK_IMPORTED_MODULE_0__.useForm)({
570
-      status: props.sale.status.value,
570
+      status: props.sale.status,
571
       price: props.sale.price,
571
       price: props.sale.price,
572
       qty: props.sale.qty
572
       qty: props.sale.qty
573
     });
573
     });
1379
 );
1379
 );
1380
 
1380
 
1381
 var _hoisted_26 = {
1381
 var _hoisted_26 = {
1382
-  key: 1,
1383
   "class": "col-12"
1382
   "class": "col-12"
1384
 };
1383
 };
1384
+var _hoisted_27 = {
1385
+  "class": "grid"
1386
+};
1387
+var _hoisted_28 = {
1388
+  "class": "col"
1389
+};
1385
 
1390
 
1386
-var _hoisted_27 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
1391
+var _hoisted_29 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
1392
+  "class": "text-base"
1393
+}, "Harga", -1
1394
+/* HOISTED */
1395
+);
1396
+
1397
+var _hoisted_30 = {
1398
+  "class": "col"
1399
+};
1400
+
1401
+var _hoisted_31 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
1387
   "class": "text-base"
1402
   "class": "text-base"
1388
 }, "Kuantitas", -1
1403
 }, "Kuantitas", -1
1389
 /* HOISTED */
1404
 /* HOISTED */
1390
 );
1405
 );
1391
 
1406
 
1392
-var _hoisted_28 = {
1393
-  key: 2,
1394
-  "class": "col-12"
1407
+var _hoisted_32 = {
1408
+  "class": "col"
1395
 };
1409
 };
1396
 
1410
 
1397
-var _hoisted_29 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
1411
+var _hoisted_33 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h3", {
1398
   "class": "text-base"
1412
   "class": "text-base"
1399
-}, "Harga", -1
1413
+}, "PPN", -1
1400
 /* HOISTED */
1414
 /* HOISTED */
1401
 );
1415
 );
1402
 
1416
 
1428
       /* TEXT */
1442
       /* TEXT */
1429
       )])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Divider, {
1443
       )])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Divider, {
1430
         type: "dashed"
1444
         type: "dashed"
1431
-      }), $props.saleQty !== null && $props.saleQty.length >= 1 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_26, [_hoisted_27, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.saleQty), 1
1445
+      }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_26, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_27, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_28, [_hoisted_29, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.salePrice), 1
1432
       /* TEXT */
1446
       /* TEXT */
1433
-      )])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true), $props.salePrice !== null ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_28, [_hoisted_29, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.salePrice), 1
1447
+      )]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_30, [_hoisted_31, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.saleQty), 1
1434
       /* TEXT */
1448
       /* TEXT */
1435
-      )])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)])];
1449
+      )]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_32, [_hoisted_33, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.salePpn) + " %", 1
1450
+      /* TEXT */
1451
+      )])])])])];
1436
     }),
1452
     }),
1437
     _: 1
1453
     _: 1
1438
     /* STABLE */
1454
     /* STABLE */
1547
         "sale-number": $props.sale.number,
1563
         "sale-number": $props.sale.number,
1548
         "sale-price": $setup.form.price,
1564
         "sale-price": $setup.form.price,
1549
         "sale-qty": $setup.form.qty,
1565
         "sale-qty": $setup.form.qty,
1566
+        "sale-ppn": $props.sale.ppn,
1550
         "sale-status": $setup.form.status,
1567
         "sale-status": $setup.form.status,
1551
         customer: $props.sale.customer,
1568
         customer: $props.sale.customer,
1552
         product: $props.sale.product
1569
         product: $props.sale.product
1553
       }, null, 8
1570
       }, null, 8
1554
       /* PROPS */
1571
       /* PROPS */
1555
-      , ["sale-number", "sale-price", "sale-qty", "sale-status", "customer", "product"])])])];
1572
+      , ["sale-number", "sale-price", "sale-qty", "sale-ppn", "sale-status", "customer", "product"])])])];
1556
     }),
1573
     }),
1557
     _: 1
1574
     _: 1
1558
     /* STABLE */
1575
     /* STABLE */
1602
 /* harmony export */   "optionStatus": () => (/* binding */ optionStatus)
1619
 /* harmony export */   "optionStatus": () => (/* binding */ optionStatus)
1603
 /* harmony export */ });
1620
 /* harmony export */ });
1604
 var optionStatus = [{
1621
 var optionStatus = [{
1605
-  label: 'Pending',
1622
+  label: 'pending',
1606
   value: 'pending'
1623
   value: 'pending'
1607
 }, {
1624
 }, {
1608
-  label: 'Success',
1625
+  label: 'success',
1609
   value: 'success'
1626
   value: 'success'
1610
 }];
1627
 }];
1611
 var indexTable = [{
1628
 var indexTable = [{
1623
 }, {
1640
 }, {
1624
   field: 'qty',
1641
   field: 'qty',
1625
   header: 'Kuantitas'
1642
   header: 'Kuantitas'
1643
+}, {
1644
+  field: 'ppn',
1645
+  header: 'PPN'
1626
 }, {
1646
 }, {
1627
   field: 'productName',
1647
   field: 'productName',
1628
   header: 'Nama Produk'
1648
   header: 'Nama Produk'

+ 5
- 2
public/js/resources_js_pages_Sales_Index_vue.js 查看文件

1142
 /* harmony export */   "optionStatus": () => (/* binding */ optionStatus)
1142
 /* harmony export */   "optionStatus": () => (/* binding */ optionStatus)
1143
 /* harmony export */ });
1143
 /* harmony export */ });
1144
 var optionStatus = [{
1144
 var optionStatus = [{
1145
-  label: 'Pending',
1145
+  label: 'pending',
1146
   value: 'pending'
1146
   value: 'pending'
1147
 }, {
1147
 }, {
1148
-  label: 'Success',
1148
+  label: 'success',
1149
   value: 'success'
1149
   value: 'success'
1150
 }];
1150
 }];
1151
 var indexTable = [{
1151
 var indexTable = [{
1163
 }, {
1163
 }, {
1164
   field: 'qty',
1164
   field: 'qty',
1165
   header: 'Kuantitas'
1165
   header: 'Kuantitas'
1166
+}, {
1167
+  field: 'ppn',
1168
+  header: 'PPN'
1166
 }, {
1169
 }, {
1167
   field: 'productName',
1170
   field: 'productName',
1168
   header: 'Nama Produk'
1171
   header: 'Nama Produk'

+ 5
- 2
public/js/resources_js_pages_Sales_config_js.js 查看文件

14
 /* harmony export */   "optionStatus": () => (/* binding */ optionStatus)
14
 /* harmony export */   "optionStatus": () => (/* binding */ optionStatus)
15
 /* harmony export */ });
15
 /* harmony export */ });
16
 var optionStatus = [{
16
 var optionStatus = [{
17
-  label: 'Pending',
17
+  label: 'pending',
18
   value: 'pending'
18
   value: 'pending'
19
 }, {
19
 }, {
20
-  label: 'Success',
20
+  label: 'success',
21
   value: 'success'
21
   value: 'success'
22
 }];
22
 }];
23
 var indexTable = [{
23
 var indexTable = [{
35
 }, {
35
 }, {
36
   field: 'qty',
36
   field: 'qty',
37
   header: 'Kuantitas'
37
   header: 'Kuantitas'
38
+}, {
39
+  field: 'ppn',
40
+  header: 'PPN'
38
 }, {
41
 }, {
39
   field: 'productName',
42
   field: 'productName',
40
   header: 'Nama Produk'
43
   header: 'Nama Produk'

+ 1
- 1
public/js/vue.js 查看文件

58844
 /******/ 		// This function allow to reference async chunks
58844
 /******/ 		// This function allow to reference async chunks
58845
 /******/ 		__webpack_require__.u = (chunkId) => {
58845
 /******/ 		__webpack_require__.u = (chunkId) => {
58846
 /******/ 			// return url for filenames based on template
58846
 /******/ 			// return url for filenames based on template
58847
-/******/ 			return "js/" + chunkId + ".js?id=" + {"node_modules_chart_js_auto_auto_esm_js":"9296b829a7757dee","resources_js_pages_Auth_Login_vue":"be578e085a239e29","resources_js_pages_Customers_Create_vue":"3f071508eabc668b","resources_js_pages_Customers_Edit_vue":"b195d54357f43a2d","resources_js_pages_Customers_Index_vue":"6882e2ddc4f886c0","resources_js_pages_Customers_config_js":"3e69b9c9add806c6","resources_js_pages_Dashboards_Index_vue":"d3d4e8305b123375","resources_js_pages_Error_Index_vue":"4119ff1c60260652","resources_js_pages_Products_Create_vue":"9a60a13d33678f2b","resources_js_pages_Products_Edit_vue":"213fbd014f856c8f","resources_js_pages_Products_Index_vue":"e5eb059406afbe3f","resources_js_pages_Products_config_js":"885a5522b0477687","resources_js_pages_Purchases_Index_vue":"b4137df9a769fdf3","resources_js_pages_Sales_Components_Dialog_CustomerCreate_vue":"0e45b005d2175423","resources_js_pages_Sales_Components_Dialog_ProductCreate_vue":"26ef1d3355ba7e47","resources_js_pages_Sales_Components_SaleDetails_vue":"b0aacea6649cd1d1","resources_js_pages_Sales_Create_vue":"7c3ad48c918ffd4a","resources_js_pages_Sales_Edit_vue":"5ad741e047bbf9ea","resources_js_pages_Sales_Index_vue":"f19c9fbcd01218cf","resources_js_pages_Sales_config_js":"c4816c15a415fd36","resources_js_pages_StockProducts_Index_vue":"7f6b33a4fbab582d","resources_js_pages_Suppliers_Create_vue":"c013262c0e5fb7ee","resources_js_pages_Suppliers_Edit_vue":"c026816d9eff6a88","resources_js_pages_Suppliers_Index_vue":"ecce1594ff033787","resources_js_pages_Suppliers_config_js":"52e8d25c6bfab54b","resources_js_pages_Users_Create_vue":"efad98f9f2b8dba6","resources_js_pages_Users_Edit_vue":"a5c8a2cdddf14020","resources_js_pages_Users_Index_vue":"bcd25543a8cc6f19","resources_js_pages_Users_Show_vue":"1e641b8d61834507","resources_js_pages_Users_config_js":"92384d78612abc88"}[chunkId] + "";
58847
+/******/ 			return "js/" + chunkId + ".js?id=" + {"node_modules_chart_js_auto_auto_esm_js":"9296b829a7757dee","resources_js_pages_Auth_Login_vue":"be578e085a239e29","resources_js_pages_Customers_Create_vue":"3f071508eabc668b","resources_js_pages_Customers_Edit_vue":"b195d54357f43a2d","resources_js_pages_Customers_Index_vue":"6882e2ddc4f886c0","resources_js_pages_Customers_config_js":"3e69b9c9add806c6","resources_js_pages_Dashboards_Index_vue":"d3d4e8305b123375","resources_js_pages_Error_Index_vue":"4119ff1c60260652","resources_js_pages_Products_Create_vue":"9a60a13d33678f2b","resources_js_pages_Products_Edit_vue":"213fbd014f856c8f","resources_js_pages_Products_Index_vue":"e5eb059406afbe3f","resources_js_pages_Products_config_js":"885a5522b0477687","resources_js_pages_Purchases_Index_vue":"b4137df9a769fdf3","resources_js_pages_Sales_Components_Dialog_CustomerCreate_vue":"0e45b005d2175423","resources_js_pages_Sales_Components_Dialog_ProductCreate_vue":"26ef1d3355ba7e47","resources_js_pages_Sales_Components_SaleDetails_vue":"519573a03ccc0914","resources_js_pages_Sales_Create_vue":"bf2ce49cdf44a49d","resources_js_pages_Sales_Edit_vue":"fa702f86b501dff1","resources_js_pages_Sales_Index_vue":"25a934a710820848","resources_js_pages_Sales_config_js":"b0e1bf081e7ceb77","resources_js_pages_StockProducts_Index_vue":"7f6b33a4fbab582d","resources_js_pages_Suppliers_Create_vue":"c013262c0e5fb7ee","resources_js_pages_Suppliers_Edit_vue":"c026816d9eff6a88","resources_js_pages_Suppliers_Index_vue":"ecce1594ff033787","resources_js_pages_Suppliers_config_js":"52e8d25c6bfab54b","resources_js_pages_Users_Create_vue":"efad98f9f2b8dba6","resources_js_pages_Users_Edit_vue":"a5c8a2cdddf14020","resources_js_pages_Users_Index_vue":"bcd25543a8cc6f19","resources_js_pages_Users_Show_vue":"1e641b8d61834507","resources_js_pages_Users_config_js":"92384d78612abc88"}[chunkId] + "";
58848
 /******/ 		};
58848
 /******/ 		};
58849
 /******/ 	})();
58849
 /******/ 	})();
58850
 /******/ 	
58850
 /******/ 	

+ 27
- 7
resources/js/pages/Sales/Components/SaleDetails.vue 查看文件

3
   'saleNumber',
3
   'saleNumber',
4
   'salePrice',
4
   'salePrice',
5
   'saleQty',
5
   'saleQty',
6
+  'salePpn',
6
   'saleStatus',
7
   'saleStatus',
7
   'customer',
8
   'customer',
8
   'product',
9
   'product',
22
               <h3 class="text-base">Nomor Penjualan</h3>
23
               <h3 class="text-base">Nomor Penjualan</h3>
23
               <span>{{ saleNumber }}</span>
24
               <span>{{ saleNumber }}</span>
24
             </div>
25
             </div>
26
+
25
             <div class="col">
27
             <div class="col">
26
               <h3 class="text-base">Status Penjualan</h3>
28
               <h3 class="text-base">Status Penjualan</h3>
27
               <span>{{ saleStatus }}</span>
29
               <span>{{ saleStatus }}</span>
28
             </div>
30
             </div>
31
+
29
             <div class="col"></div>
32
             <div class="col"></div>
30
           </div>
33
           </div>
31
         </div>
34
         </div>
35
+
32
         <div
36
         <div
33
           v-if="
37
           v-if="
34
             customer !== null &&
38
             customer !== null &&
42
               <h3 class="text-base">Nama</h3>
46
               <h3 class="text-base">Nama</h3>
43
               <span>{{ customer.name }}</span>
47
               <span>{{ customer.name }}</span>
44
             </div>
48
             </div>
49
+
45
             <div class="col">
50
             <div class="col">
46
               <h3 class="text-base">Alamat</h3>
51
               <h3 class="text-base">Alamat</h3>
47
               <span>{{ customer.address }}</span>
52
               <span>{{ customer.address }}</span>
48
             </div>
53
             </div>
54
+
49
             <div class="col">
55
             <div class="col">
50
               <h3 class="text-base">NPWP</h3>
56
               <h3 class="text-base">NPWP</h3>
51
               <span>{{ customer.npwp }}</span>
57
               <span>{{ customer.npwp }}</span>
52
             </div>
58
             </div>
53
           </div>
59
           </div>
54
         </div>
60
         </div>
61
+
55
         <div class="col-12">
62
         <div class="col-12">
56
           <div
63
           <div
57
             v-if="
64
             v-if="
65
               <h3 class="text-base">Nomor Produk</h3>
72
               <h3 class="text-base">Nomor Produk</h3>
66
               <span>{{ product.number }}</span>
73
               <span>{{ product.number }}</span>
67
             </div>
74
             </div>
75
+
68
             <div class="col">
76
             <div class="col">
69
               <h3 class="text-base">Nama Produk</h3>
77
               <h3 class="text-base">Nama Produk</h3>
70
               <span>{{ product.name }}</span>
78
               <span>{{ product.name }}</span>
71
             </div>
79
             </div>
80
+
72
             <div class="col">
81
             <div class="col">
73
               <h3 class="text-base">Satuan</h3>
82
               <h3 class="text-base">Satuan</h3>
74
               <span>{{ product.unit }}</span>
83
               <span>{{ product.unit }}</span>
75
             </div>
84
             </div>
76
           </div>
85
           </div>
77
         </div>
86
         </div>
87
+
78
         <Divider type="dashed" />
88
         <Divider type="dashed" />
79
-        <div v-if="saleQty !== null && saleQty.length >= 1" class="col-12">
80
-          <h3 class="text-base">Kuantitas</h3>
81
-          <span>{{ saleQty }}</span>
82
-        </div>
83
-        <div v-if="salePrice !== null" class="col-12">
84
-          <h3 class="text-base">Harga</h3>
85
-          <span>{{ salePrice }}</span>
89
+        <div class="col-12">
90
+          <div class="grid">
91
+            <div class="col">
92
+              <h3 class="text-base">Harga</h3>
93
+              <span>{{ salePrice }}</span>
94
+            </div>
95
+
96
+            <div class="col">
97
+              <h3 class="text-base">Kuantitas</h3>
98
+              <span>{{ saleQty }}</span>
99
+            </div>
100
+
101
+            <div class="col">
102
+              <h3 class="text-base">PPN</h3>
103
+              <span>{{ salePpn }} %</span>
104
+            </div>
105
+          </div>
86
         </div>
106
         </div>
87
       </div>
107
       </div>
88
     </template>
108
     </template>

+ 2
- 0
resources/js/pages/Sales/Create.vue 查看文件

13
 
13
 
14
 const props = defineProps({
14
 const props = defineProps({
15
   number: String,
15
   number: String,
16
+  ppn: Number,
16
   customers: {
17
   customers: {
17
     type: Array,
18
     type: Array,
18
     default: [],
19
     default: [],
208
           :sale-number="number"
209
           :sale-number="number"
209
           :sale-price="form.price"
210
           :sale-price="form.price"
210
           :sale-qty="form.qty"
211
           :sale-qty="form.qty"
212
+          :sale-ppn="ppn"
211
           :sale-status="form.status"
213
           :sale-status="form.status"
212
           :customer="form.customer"
214
           :customer="form.customer"
213
           :product="form.product"
215
           :product="form.product"

+ 2
- 1
resources/js/pages/Sales/Edit.vue 查看文件

12
 })
12
 })
13
 
13
 
14
 const form = useForm({
14
 const form = useForm({
15
-  status: props.sale.status.value,
15
+  status: props.sale.status,
16
   price: props.sale.price,
16
   price: props.sale.price,
17
   qty: props.sale.qty,
17
   qty: props.sale.qty,
18
 })
18
 })
80
           :sale-number="sale.number"
80
           :sale-number="sale.number"
81
           :sale-price="form.price"
81
           :sale-price="form.price"
82
           :sale-qty="form.qty"
82
           :sale-qty="form.qty"
83
+          :sale-ppn="sale.ppn"
83
           :sale-status="form.status"
84
           :sale-status="form.status"
84
           :customer="sale.customer"
85
           :customer="sale.customer"
85
           :product="sale.product"
86
           :product="sale.product"

+ 3
- 2
resources/js/pages/Sales/config.js 查看文件

1
 export const optionStatus = [
1
 export const optionStatus = [
2
   {
2
   {
3
-    label: 'Pending',
3
+    label: 'pending',
4
     value: 'pending',
4
     value: 'pending',
5
   },
5
   },
6
   {
6
   {
7
-    label: 'Success',
7
+    label: 'success',
8
     value: 'success',
8
     value: 'success',
9
   },
9
   },
10
 ]
10
 ]
15
   { field: 'status', header: 'Status' },
15
   { field: 'status', header: 'Status' },
16
   { field: 'price', header: 'Harga' },
16
   { field: 'price', header: 'Harga' },
17
   { field: 'qty', header: 'Kuantitas' },
17
   { field: 'qty', header: 'Kuantitas' },
18
+  { field: 'ppn', header: 'PPN' },
18
   { field: 'productName', header: 'Nama Produk' },
19
   { field: 'productName', header: 'Nama Produk' },
19
   { field: 'productNumber', header: 'Nomor Produk' },
20
   { field: 'productNumber', header: 'Nomor Produk' },
20
 ]
21
 ]