Browse Source

fix: sales master

Muhammad Iqbal Afandi 3 years ago
parent
commit
ff22148021

+ 7
- 6
app/Http/Controllers/SalesController.php View File

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

+ 1
- 1
app/Models/Sale.php View File

@@ -21,7 +21,7 @@ class Sale extends Model
21 21
     protected function updatedAt(): Attribute
22 22
     {
23 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 View File

@@ -13,7 +13,7 @@ __webpack_require__.r(__webpack_exports__);
13 13
 /* harmony export */ });
14 14
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
15 15
   __name: 'SaleDetails',
16
-  props: ['saleNumber', 'salePrice', 'saleQty', 'saleStatus', 'customer', 'product'],
16
+  props: ['saleNumber', 'salePrice', 'saleQty', 'salePpn', 'saleStatus', 'customer', 'product'],
17 17
   setup: function setup(__props, _ref) {
18 18
     var expose = _ref.expose;
19 19
     expose();
@@ -159,24 +159,38 @@ var _hoisted_25 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
159 159
 );
160 160
 
161 161
 var _hoisted_26 = {
162
-  key: 1,
163 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 182
   "class": "text-base"
168 183
 }, "Kuantitas", -1
169 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 192
   "class": "text-base"
179
-}, "Harga", -1
193
+}, "PPN", -1
180 194
 /* HOISTED */
181 195
 );
182 196
 
@@ -208,11 +222,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
208 222
       /* TEXT */
209 223
       )])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Divider, {
210 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 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 230
       /* TEXT */
215
-      )])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)])];
231
+      )])])])])];
216 232
     }),
217 233
     _: 1
218 234
     /* STABLE */

+ 35
- 14
public/js/resources_js_pages_Sales_Create_vue.js View File

@@ -746,7 +746,7 @@ __webpack_require__.r(__webpack_exports__);
746 746
 /* harmony export */ });
747 747
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
748 748
   __name: 'SaleDetails',
749
-  props: ['saleNumber', 'salePrice', 'saleQty', 'saleStatus', 'customer', 'product'],
749
+  props: ['saleNumber', 'salePrice', 'saleQty', 'salePpn', 'saleStatus', 'customer', 'product'],
750 750
   setup: function setup(__props, _ref) {
751 751
     var expose = _ref.expose;
752 752
     expose();
@@ -803,6 +803,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
803 803
   __name: 'Create',
804 804
   props: {
805 805
     number: String,
806
+    ppn: Number,
806 807
     customers: {
807 808
       type: Array,
808 809
       "default": []
@@ -1918,24 +1919,38 @@ var _hoisted_25 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1918 1919
 );
1919 1920
 
1920 1921
 var _hoisted_26 = {
1921
-  key: 1,
1922 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 1942
   "class": "text-base"
1927 1943
 }, "Kuantitas", -1
1928 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 1952
   "class": "text-base"
1938
-}, "Harga", -1
1953
+}, "PPN", -1
1939 1954
 /* HOISTED */
1940 1955
 );
1941 1956
 
@@ -1967,11 +1982,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1967 1982
       /* TEXT */
1968 1983
       )])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Divider, {
1969 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 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 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 1993
     _: 1
1977 1994
     /* STABLE */
@@ -2182,12 +2199,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
2182 2199
         "sale-number": $props.number,
2183 2200
         "sale-price": $setup.form.price,
2184 2201
         "sale-qty": $setup.form.qty,
2202
+        "sale-ppn": $props.ppn,
2185 2203
         "sale-status": $setup.form.status,
2186 2204
         customer: $setup.form.customer,
2187 2205
         product: $setup.form.product
2188 2206
       }, null, 8
2189 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 2210
     _: 1
2193 2211
     /* STABLE */
@@ -2237,10 +2255,10 @@ __webpack_require__.r(__webpack_exports__);
2237 2255
 /* harmony export */   "optionStatus": () => (/* binding */ optionStatus)
2238 2256
 /* harmony export */ });
2239 2257
 var optionStatus = [{
2240
-  label: 'Pending',
2258
+  label: 'pending',
2241 2259
   value: 'pending'
2242 2260
 }, {
2243
-  label: 'Success',
2261
+  label: 'success',
2244 2262
   value: 'success'
2245 2263
 }];
2246 2264
 var indexTable = [{
@@ -2258,6 +2276,9 @@ var indexTable = [{
2258 2276
 }, {
2259 2277
   field: 'qty',
2260 2278
   header: 'Kuantitas'
2279
+}, {
2280
+  field: 'ppn',
2281
+  header: 'PPN'
2261 2282
 }, {
2262 2283
   field: 'productName',
2263 2284
   header: 'Nama Produk'

+ 35
- 15
public/js/resources_js_pages_Sales_Edit_vue.js View File

@@ -518,7 +518,7 @@ __webpack_require__.r(__webpack_exports__);
518 518
 /* harmony export */ });
519 519
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
520 520
   __name: 'SaleDetails',
521
-  props: ['saleNumber', 'salePrice', 'saleQty', 'saleStatus', 'customer', 'product'],
521
+  props: ['saleNumber', 'salePrice', 'saleQty', 'salePpn', 'saleStatus', 'customer', 'product'],
522 522
   setup: function setup(__props, _ref) {
523 523
     var expose = _ref.expose;
524 524
     expose();
@@ -567,7 +567,7 @@ __webpack_require__.r(__webpack_exports__);
567 567
     expose();
568 568
     var props = __props;
569 569
     var form = (0,_components_useForm__WEBPACK_IMPORTED_MODULE_0__.useForm)({
570
-      status: props.sale.status.value,
570
+      status: props.sale.status,
571 571
       price: props.sale.price,
572 572
       qty: props.sale.qty
573 573
     });
@@ -1379,24 +1379,38 @@ var _hoisted_25 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1379 1379
 );
1380 1380
 
1381 1381
 var _hoisted_26 = {
1382
-  key: 1,
1383 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 1402
   "class": "text-base"
1388 1403
 }, "Kuantitas", -1
1389 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 1412
   "class": "text-base"
1399
-}, "Harga", -1
1413
+}, "PPN", -1
1400 1414
 /* HOISTED */
1401 1415
 );
1402 1416
 
@@ -1428,11 +1442,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1428 1442
       /* TEXT */
1429 1443
       )])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Divider, {
1430 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 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 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 1453
     _: 1
1438 1454
     /* STABLE */
@@ -1547,12 +1563,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1547 1563
         "sale-number": $props.sale.number,
1548 1564
         "sale-price": $setup.form.price,
1549 1565
         "sale-qty": $setup.form.qty,
1566
+        "sale-ppn": $props.sale.ppn,
1550 1567
         "sale-status": $setup.form.status,
1551 1568
         customer: $props.sale.customer,
1552 1569
         product: $props.sale.product
1553 1570
       }, null, 8
1554 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 1574
     _: 1
1558 1575
     /* STABLE */
@@ -1602,10 +1619,10 @@ __webpack_require__.r(__webpack_exports__);
1602 1619
 /* harmony export */   "optionStatus": () => (/* binding */ optionStatus)
1603 1620
 /* harmony export */ });
1604 1621
 var optionStatus = [{
1605
-  label: 'Pending',
1622
+  label: 'pending',
1606 1623
   value: 'pending'
1607 1624
 }, {
1608
-  label: 'Success',
1625
+  label: 'success',
1609 1626
   value: 'success'
1610 1627
 }];
1611 1628
 var indexTable = [{
@@ -1623,6 +1640,9 @@ var indexTable = [{
1623 1640
 }, {
1624 1641
   field: 'qty',
1625 1642
   header: 'Kuantitas'
1643
+}, {
1644
+  field: 'ppn',
1645
+  header: 'PPN'
1626 1646
 }, {
1627 1647
   field: 'productName',
1628 1648
   header: 'Nama Produk'

+ 5
- 2
public/js/resources_js_pages_Sales_Index_vue.js View File

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

+ 5
- 2
public/js/resources_js_pages_Sales_config_js.js View File

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

+ 1
- 1
public/js/vue.js View File

@@ -58844,7 +58844,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
58844 58844
 /******/ 		// This function allow to reference async chunks
58845 58845
 /******/ 		__webpack_require__.u = (chunkId) => {
58846 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 View File

@@ -3,6 +3,7 @@ defineProps([
3 3
   'saleNumber',
4 4
   'salePrice',
5 5
   'saleQty',
6
+  'salePpn',
6 7
   'saleStatus',
7 8
   'customer',
8 9
   'product',
@@ -22,13 +23,16 @@ defineProps([
22 23
               <h3 class="text-base">Nomor Penjualan</h3>
23 24
               <span>{{ saleNumber }}</span>
24 25
             </div>
26
+
25 27
             <div class="col">
26 28
               <h3 class="text-base">Status Penjualan</h3>
27 29
               <span>{{ saleStatus }}</span>
28 30
             </div>
31
+
29 32
             <div class="col"></div>
30 33
           </div>
31 34
         </div>
35
+
32 36
         <div
33 37
           v-if="
34 38
             customer !== null &&
@@ -42,16 +46,19 @@ defineProps([
42 46
               <h3 class="text-base">Nama</h3>
43 47
               <span>{{ customer.name }}</span>
44 48
             </div>
49
+
45 50
             <div class="col">
46 51
               <h3 class="text-base">Alamat</h3>
47 52
               <span>{{ customer.address }}</span>
48 53
             </div>
54
+
49 55
             <div class="col">
50 56
               <h3 class="text-base">NPWP</h3>
51 57
               <span>{{ customer.npwp }}</span>
52 58
             </div>
53 59
           </div>
54 60
         </div>
61
+
55 62
         <div class="col-12">
56 63
           <div
57 64
             v-if="
@@ -65,24 +72,37 @@ defineProps([
65 72
               <h3 class="text-base">Nomor Produk</h3>
66 73
               <span>{{ product.number }}</span>
67 74
             </div>
75
+
68 76
             <div class="col">
69 77
               <h3 class="text-base">Nama Produk</h3>
70 78
               <span>{{ product.name }}</span>
71 79
             </div>
80
+
72 81
             <div class="col">
73 82
               <h3 class="text-base">Satuan</h3>
74 83
               <span>{{ product.unit }}</span>
75 84
             </div>
76 85
           </div>
77 86
         </div>
87
+
78 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 106
         </div>
87 107
       </div>
88 108
     </template>

+ 2
- 0
resources/js/pages/Sales/Create.vue View File

@@ -13,6 +13,7 @@ import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
13 13
 
14 14
 const props = defineProps({
15 15
   number: String,
16
+  ppn: Number,
16 17
   customers: {
17 18
     type: Array,
18 19
     default: [],
@@ -208,6 +209,7 @@ const checkSales = () => {
208 209
           :sale-number="number"
209 210
           :sale-price="form.price"
210 211
           :sale-qty="form.qty"
212
+          :sale-ppn="ppn"
211 213
           :sale-status="form.status"
212 214
           :customer="form.customer"
213 215
           :product="form.product"

+ 2
- 1
resources/js/pages/Sales/Edit.vue View File

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

+ 3
- 2
resources/js/pages/Sales/config.js View File

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