@things-factory/operato-wms 3.7.12 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/pages/adjustment/transfer-inventory.js +364 -158
- package/client/pages/bulk-operation/bulk-operation.js +316 -0
- package/client/pages/bulk-operation/validate-ro-popup.js +445 -0
- package/client/pages/components/select-product-popup.js +10 -1
- package/client/pages/constants/inventory.js +1 -0
- package/client/pages/constants/location.js +33 -6
- package/client/pages/constants/worksheet.js +2 -2
- package/client/pages/inbound/inbound-worksheet.js +81 -15
- package/client/pages/inbound/putaway-product.js +60 -8
- package/client/pages/inbound/putaway-worksheet-generate-popup.js +29 -5
- package/client/pages/inbound/unload-product.js +80 -19
- package/client/pages/inbound/worksheet-putaway-return.js +22 -5
- package/client/pages/inbound/worksheet-putaway.js +21 -8
- package/client/pages/inbound/worksheet-unloading-return.js +22 -5
- package/client/pages/inbound/worksheet-unloading.js +8 -0
- package/client/pages/inventory/inventory-adjustment-approval.js +18 -8
- package/client/pages/inventory/inventory-adjustment.js +91 -76
- package/client/pages/inventory/inventory-by-product-detail.js +1 -1
- package/client/pages/inventory/inventory-by-product.js +9 -1
- package/client/pages/inventory/inventory-history-by-pallet.js +10 -1
- package/client/pages/inventory/inventory-history.js +12 -2
- package/client/pages/inventory/onhand-inventory.js +12 -3
- package/client/pages/inventory-check/create-cycle-count.js +12 -6
- package/client/pages/inventory-check/cycle-count-report.js +8 -0
- package/client/pages/inventory-check/worksheet-cycle-count.js +14 -0
- package/client/pages/master/location-list.js +58 -17
- package/client/pages/order/arrival-notice/arrival-notice-detail.js +134 -115
- package/client/pages/order/arrival-notice/arrival-notice-list.js +87 -6
- package/client/pages/order/arrival-notice/arrival-notice-requests.js +83 -6
- package/client/pages/order/arrival-notice/assign-buffer-location.js +8 -1
- package/client/pages/order/arrival-notice/check-arrived-notice.js +9 -1
- package/client/pages/order/arrival-notice/create-arrival-notice.js +30 -2
- package/client/pages/order/arrival-notice/duplicate-arrival-notice.js +290 -25
- package/client/pages/order/arrival-notice/edit-product-popup.js +36 -5
- package/client/pages/order/arrival-notice/receive-arrival-notice.js +8 -1
- package/client/pages/order/release-order/b2b/b2b-order-requests.js +7 -7
- package/client/pages/order/release-order/b2c/b2c-order-requests.js +65 -5
- package/client/pages/order/release-order/create-release-order.js +24 -1
- package/client/pages/order/release-order/receive-release-order-request.js +8 -0
- package/client/pages/order/release-order/release-extra-product-popup.js +12 -4
- package/client/pages/order/release-order/release-order-detail.js +9 -1
- package/client/pages/order/return-order/check-return-order.js +9 -1
- package/client/pages/order/return-order/create-return-order.js +14 -2
- package/client/pages/order/return-order/receive-return-order-requests.js +9 -1
- package/client/pages/order/return-order/return-order-detail.js +15 -6
- package/client/pages/order/return-order/return-order-inventory-popup.js +7 -0
- package/client/pages/order/transport-order/delivery-order-list.js +4 -1
- package/client/pages/outbound/inventory-assign-popup.js +11 -2
- package/client/pages/outbound/inventory-auto-assign-popup.js +9 -0
- package/client/pages/outbound/merged-outbound-worksheet.js +9 -5
- package/client/pages/outbound/picking-product.js +202 -162
- package/client/pages/outbound/picking-replacement-popup.js +2 -2
- package/client/pages/outbound/single-outbound-worksheet.js +47 -1
- package/client/pages/outbound/worksheet-loading.js +22 -5
- package/client/pages/outbound/worksheet-packing.js +8 -0
- package/client/pages/outbound/worksheet-picking.js +29 -5
- package/client/pages/outbound/worksheet-return.js +9 -1
- package/client/pages/outbound/worksheet-sorting.js +9 -1
- package/client/pages/report/custom-elccl/elccl-inventory-report.js +31 -30
- package/client/pages/report/custom-elccl/elccl-inventory-summary-report.js +23 -26
- package/client/pages/report/inventory-pallet-storage-report.js +11 -10
- package/client/pages/report/inventory-report.js +41 -43
- package/client/pages/report/inventory-summary-report.js +25 -28
- package/client/route.js +5 -0
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js +1 -1
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js.map +1 -1
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js +1 -1
- package/dist-server/graphql/resolvers/index.js +3 -1
- package/dist-server/graphql/resolvers/index.js.map +1 -1
- package/dist-server/graphql/resolvers/shipping-provider/index.js +6 -0
- package/dist-server/graphql/resolvers/shipping-provider/index.js.map +1 -0
- package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js +20 -0
- package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js.map +1 -0
- package/dist-server/graphql/types/custom/elccl/elccl-inventory-report.js +1 -1
- package/dist-server/graphql/types/index.js +5 -2
- package/dist-server/graphql/types/index.js.map +1 -1
- package/dist-server/graphql/types/shipping-provider/index.js +10 -0
- package/dist-server/graphql/types/shipping-provider/index.js.map +1 -0
- package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js +13 -0
- package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js.map +1 -0
- package/dist-server/graphql/types/shipping-provider/shipping-provider.js +13 -0
- package/dist-server/graphql/types/shipping-provider/shipping-provider.js.map +1 -0
- package/package.json +37 -37
- package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.ts +4 -2
- package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.ts +1 -1
- package/server/graphql/resolvers/index.ts +3 -1
- package/server/graphql/resolvers/shipping-provider/index.ts +5 -0
- package/server/graphql/resolvers/shipping-provider/shipping-providers.ts +20 -0
- package/server/graphql/types/custom/elccl/elccl-inventory-report.ts +1 -1
- package/server/graphql/types/index.ts +5 -2
- package/server/graphql/types/shipping-provider/index.ts +8 -0
- package/server/graphql/types/shipping-provider/shipping-provider-list.ts +7 -0
- package/server/graphql/types/shipping-provider/shipping-provider.ts +7 -0
- package/things-factory.config.js +6 -0
- package/translations/en.json +27 -0
- package/translations/ko.json +84 -36
- package/translations/ms.json +85 -37
- package/translations/zh.json +98 -51
|
@@ -204,12 +204,29 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
204
204
|
]
|
|
205
205
|
|
|
206
206
|
this.config = {
|
|
207
|
-
list: {
|
|
207
|
+
list: {
|
|
208
|
+
fields: [
|
|
209
|
+
'name',
|
|
210
|
+
'bizplace',
|
|
211
|
+
'refNo',
|
|
212
|
+
'refNo2',
|
|
213
|
+
'refNo3',
|
|
214
|
+
'etaDate',
|
|
215
|
+
'container',
|
|
216
|
+
'importCargo',
|
|
217
|
+
'ownTransport',
|
|
218
|
+
'crossDocking',
|
|
219
|
+
'status',
|
|
220
|
+
'createdAt',
|
|
221
|
+
'updatedAt',
|
|
222
|
+
'creator'
|
|
223
|
+
]
|
|
224
|
+
},
|
|
208
225
|
rows: { appendable: false, selectable: { multiple: true } },
|
|
209
226
|
pagination: { limit: 100, pages: [20, 50, 100, 200, 500] },
|
|
210
227
|
columns: [
|
|
211
|
-
{ type: 'gutter', gutterName: 'dirty' },
|
|
212
228
|
{ type: 'gutter', gutterName: 'sequence' },
|
|
229
|
+
{ type: 'gutter', gutterName: 'row-selector', multiple: true },
|
|
213
230
|
{
|
|
214
231
|
type: 'gutter',
|
|
215
232
|
gutterName: 'button',
|
|
@@ -229,6 +246,7 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
229
246
|
type: 'string',
|
|
230
247
|
name: 'name',
|
|
231
248
|
header: i18next.t('field.gan'),
|
|
249
|
+
label: true,
|
|
232
250
|
sortable: true,
|
|
233
251
|
width: 180
|
|
234
252
|
},
|
|
@@ -236,6 +254,7 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
236
254
|
type: 'object',
|
|
237
255
|
name: 'bizplace',
|
|
238
256
|
header: i18next.t('field.company'),
|
|
257
|
+
label: true,
|
|
239
258
|
sortable: true,
|
|
240
259
|
width: 250
|
|
241
260
|
},
|
|
@@ -243,6 +262,7 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
243
262
|
type: 'string',
|
|
244
263
|
name: 'refNo',
|
|
245
264
|
header: i18next.t('field.ref_no'),
|
|
265
|
+
label: true,
|
|
246
266
|
sortable: true,
|
|
247
267
|
width: 150
|
|
248
268
|
},
|
|
@@ -250,6 +270,7 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
250
270
|
type: 'string',
|
|
251
271
|
name: 'refNo2',
|
|
252
272
|
header: i18next.t('field.ref_no_2'),
|
|
273
|
+
label: true,
|
|
253
274
|
sortable: true,
|
|
254
275
|
width: 150
|
|
255
276
|
},
|
|
@@ -257,6 +278,7 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
257
278
|
type: 'string',
|
|
258
279
|
name: 'refNo3',
|
|
259
280
|
header: i18next.t('field.ref_no_3'),
|
|
281
|
+
label: true,
|
|
260
282
|
sortable: true,
|
|
261
283
|
width: 150
|
|
262
284
|
},
|
|
@@ -264,6 +286,7 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
264
286
|
type: 'date',
|
|
265
287
|
name: 'etaDate',
|
|
266
288
|
header: i18next.t('field.eta'),
|
|
289
|
+
label: true,
|
|
267
290
|
sortable: true,
|
|
268
291
|
width: 120
|
|
269
292
|
},
|
|
@@ -271,6 +294,7 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
271
294
|
type: 'boolean',
|
|
272
295
|
name: 'container',
|
|
273
296
|
header: i18next.t('field.container'),
|
|
297
|
+
label: true,
|
|
274
298
|
sortable: true,
|
|
275
299
|
width: 60
|
|
276
300
|
},
|
|
@@ -278,6 +302,7 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
278
302
|
type: 'boolean',
|
|
279
303
|
name: 'importCargo',
|
|
280
304
|
header: i18next.t('field.import_cargo'),
|
|
305
|
+
label: true,
|
|
281
306
|
sortable: true,
|
|
282
307
|
width: 60
|
|
283
308
|
},
|
|
@@ -285,6 +310,7 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
285
310
|
type: 'boolean',
|
|
286
311
|
name: 'ownTransport',
|
|
287
312
|
header: i18next.t('field.own_transport'),
|
|
313
|
+
label: true,
|
|
288
314
|
sortable: true,
|
|
289
315
|
width: 60
|
|
290
316
|
},
|
|
@@ -292,18 +318,23 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
292
318
|
type: 'boolean',
|
|
293
319
|
name: 'crossDocking',
|
|
294
320
|
header: i18next.t('field.cross_docking'),
|
|
321
|
+
label: true,
|
|
322
|
+
sortable: true,
|
|
295
323
|
width: 60
|
|
296
324
|
},
|
|
297
325
|
{
|
|
298
326
|
type: 'object',
|
|
299
327
|
name: 'releaseGood',
|
|
300
328
|
header: i18next.t('field.ro'),
|
|
329
|
+
label: true,
|
|
330
|
+
sortable: true,
|
|
301
331
|
width: 160
|
|
302
332
|
},
|
|
303
333
|
{
|
|
304
334
|
type: 'string',
|
|
305
335
|
name: 'status',
|
|
306
336
|
header: i18next.t('field.status'),
|
|
337
|
+
label: true,
|
|
307
338
|
sortable: true,
|
|
308
339
|
width: 120
|
|
309
340
|
},
|
|
@@ -311,6 +342,7 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
311
342
|
type: 'datetime',
|
|
312
343
|
name: 'createdAt',
|
|
313
344
|
header: i18next.t('field.created_at'),
|
|
345
|
+
label: true,
|
|
314
346
|
sortable: true,
|
|
315
347
|
width: 160
|
|
316
348
|
},
|
|
@@ -318,6 +350,7 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
318
350
|
type: 'datetime',
|
|
319
351
|
name: 'updatedAt',
|
|
320
352
|
header: i18next.t('field.updated_at'),
|
|
353
|
+
label: true,
|
|
321
354
|
sortable: true,
|
|
322
355
|
width: 160
|
|
323
356
|
},
|
|
@@ -325,6 +358,7 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
325
358
|
type: 'object',
|
|
326
359
|
name: 'creator',
|
|
327
360
|
header: i18next.t('field.created_by'),
|
|
361
|
+
label: true,
|
|
328
362
|
sortable: true,
|
|
329
363
|
width: 200
|
|
330
364
|
}
|
|
@@ -447,12 +481,59 @@ class ArrivalNoticeList extends localize(i18next)(PageView) {
|
|
|
447
481
|
}
|
|
448
482
|
}
|
|
449
483
|
|
|
450
|
-
|
|
451
|
-
|
|
484
|
+
async _exportableData() {
|
|
485
|
+
try {
|
|
486
|
+
let data = []
|
|
487
|
+
|
|
488
|
+
var headerSetting = [
|
|
489
|
+
{ header: i18next.t('field.order_no'), key: 'name', width: 25, type: 'string' },
|
|
490
|
+
{ header: i18next.t('field.company'), key: 'bizplaceName', width: 25, type: 'string' },
|
|
491
|
+
{ header: i18next.t('field.ref_no'), key: 'refNo', width: 25, type: 'string' },
|
|
492
|
+
{ header: i18next.t('field.ref_no_2'), key: 'refNo2', width: 25, type: 'string' },
|
|
493
|
+
{ header: i18next.t('field.ref_no_3'), key: 'refNo3', width: 25, type: 'string' },
|
|
494
|
+
{ header: i18next.t('field.eta_date'), key: 'etaDate', width: 30, type: 'string' },
|
|
495
|
+
{ header: i18next.t('field.container'), key: 'container', width: 30, type: 'string' },
|
|
496
|
+
{ header: i18next.t('field.import_cargo'), key: 'importCargo', width: 30, type: 'string' },
|
|
497
|
+
{ header: i18next.t('field.cross_docking'), key: 'crossDocking', width: 30, type: 'string' },
|
|
498
|
+
{ header: i18next.t('field.status'), key: 'status', width: 25, type: 'string' },
|
|
499
|
+
{ header: i18next.t('field.created_at'), key: 'createdAt', width: 30, type: 'date' },
|
|
500
|
+
{ header: i18next.t('field.updated_at'), key: 'updatedAt', width: 30, type: 'date' },
|
|
501
|
+
{ header: i18next.t('field.created_by'), key: 'creatorName', width: 25, type: 'string' }
|
|
502
|
+
]
|
|
503
|
+
|
|
504
|
+
if (this.dataGrist.selected && this.dataGrist.selected.length > 0) {
|
|
505
|
+
data = this.dataGrist.selected.map(record => {
|
|
506
|
+
return {
|
|
507
|
+
...record,
|
|
508
|
+
bizplaceName: record.bizplace?.name,
|
|
509
|
+
creatorName: record.creator?.name
|
|
510
|
+
}
|
|
511
|
+
})
|
|
512
|
+
} else {
|
|
513
|
+
data = (await this.fetchHandler({ page: 1, limit: 9999999 })).records.map(record => {
|
|
514
|
+
return {
|
|
515
|
+
...record,
|
|
516
|
+
bizplaceName: record.bizplace?.name,
|
|
517
|
+
creatorName: record.creator?.name
|
|
518
|
+
}
|
|
519
|
+
})
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
return { header: headerSetting, data }
|
|
523
|
+
} catch (e) {
|
|
524
|
+
this._showToast(e)
|
|
525
|
+
}
|
|
452
526
|
}
|
|
453
527
|
|
|
454
|
-
|
|
455
|
-
|
|
528
|
+
_showToast({ type, message }) {
|
|
529
|
+
document.dispatchEvent(
|
|
530
|
+
new CustomEvent('notify', {
|
|
531
|
+
detail: {
|
|
532
|
+
type,
|
|
533
|
+
message
|
|
534
|
+
}
|
|
535
|
+
})
|
|
536
|
+
)
|
|
456
537
|
}
|
|
457
538
|
}
|
|
458
539
|
|
|
@@ -216,12 +216,27 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
216
216
|
this.config = {
|
|
217
217
|
rows: { appendable: false, selectable: { multiple: true } },
|
|
218
218
|
list: {
|
|
219
|
-
fields: [
|
|
219
|
+
fields: [
|
|
220
|
+
'name',
|
|
221
|
+
'bizplace',
|
|
222
|
+
'refNo',
|
|
223
|
+
'refNo2',
|
|
224
|
+
'refNo3',
|
|
225
|
+
'etaDate',
|
|
226
|
+
'container',
|
|
227
|
+
'importCargo',
|
|
228
|
+
'ownTransport',
|
|
229
|
+
'crossDocking',
|
|
230
|
+
'status',
|
|
231
|
+
'createdAt',
|
|
232
|
+
'updatedAt',
|
|
233
|
+
'acceptedBy'
|
|
234
|
+
]
|
|
220
235
|
},
|
|
221
236
|
pagination: { limit: 100, pages: [20, 50, 100, 200, 500] },
|
|
222
237
|
columns: [
|
|
223
|
-
{ type: 'gutter', gutterName: 'dirty' },
|
|
224
238
|
{ type: 'gutter', gutterName: 'sequence' },
|
|
239
|
+
{ type: 'gutter', gutterName: 'row-selector', multiple: true },
|
|
225
240
|
{
|
|
226
241
|
type: 'gutter',
|
|
227
242
|
gutterName: 'button',
|
|
@@ -245,6 +260,7 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
245
260
|
type: 'string',
|
|
246
261
|
name: 'name',
|
|
247
262
|
header: i18next.t('field.gan'),
|
|
263
|
+
label: true,
|
|
248
264
|
sortable: true,
|
|
249
265
|
width: 180
|
|
250
266
|
},
|
|
@@ -252,6 +268,7 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
252
268
|
type: 'object',
|
|
253
269
|
name: 'bizplace',
|
|
254
270
|
header: i18next.t('field.company'),
|
|
271
|
+
label: true,
|
|
255
272
|
sortable: true,
|
|
256
273
|
width: 250
|
|
257
274
|
},
|
|
@@ -259,6 +276,7 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
259
276
|
type: 'string',
|
|
260
277
|
name: 'refNo',
|
|
261
278
|
header: i18next.t('field.ref_no'),
|
|
279
|
+
label: true,
|
|
262
280
|
sortable: true,
|
|
263
281
|
width: 150
|
|
264
282
|
},
|
|
@@ -266,6 +284,7 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
266
284
|
type: 'string',
|
|
267
285
|
name: 'refNo2',
|
|
268
286
|
header: i18next.t('field.ref_no_2'),
|
|
287
|
+
label: true,
|
|
269
288
|
sortable: true,
|
|
270
289
|
width: 150
|
|
271
290
|
},
|
|
@@ -273,6 +292,7 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
273
292
|
type: 'string',
|
|
274
293
|
name: 'refNo3',
|
|
275
294
|
header: i18next.t('field.ref_no_3'),
|
|
295
|
+
label: true,
|
|
276
296
|
sortable: true,
|
|
277
297
|
width: 150
|
|
278
298
|
},
|
|
@@ -280,6 +300,7 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
280
300
|
type: 'date',
|
|
281
301
|
name: 'etaDate',
|
|
282
302
|
header: i18next.t('field.eta'),
|
|
303
|
+
label: true,
|
|
283
304
|
sortable: true,
|
|
284
305
|
width: 120
|
|
285
306
|
},
|
|
@@ -287,6 +308,7 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
287
308
|
type: 'boolean',
|
|
288
309
|
name: 'container',
|
|
289
310
|
header: i18next.t('field.container'),
|
|
311
|
+
label: true,
|
|
290
312
|
sortable: true,
|
|
291
313
|
width: 60
|
|
292
314
|
},
|
|
@@ -294,6 +316,7 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
294
316
|
type: 'boolean',
|
|
295
317
|
name: 'importCargo',
|
|
296
318
|
header: i18next.t('field.import_cargo'),
|
|
319
|
+
label: true,
|
|
297
320
|
sortable: true,
|
|
298
321
|
width: 60
|
|
299
322
|
},
|
|
@@ -301,6 +324,7 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
301
324
|
type: 'boolean',
|
|
302
325
|
name: 'ownTransport',
|
|
303
326
|
header: i18next.t('field.own_transport'),
|
|
327
|
+
label: true,
|
|
304
328
|
sortable: true,
|
|
305
329
|
width: 60
|
|
306
330
|
},
|
|
@@ -308,18 +332,21 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
308
332
|
type: 'boolean',
|
|
309
333
|
name: 'crossDocking',
|
|
310
334
|
header: i18next.t('field.cross_docking'),
|
|
335
|
+
label: true,
|
|
311
336
|
width: 60
|
|
312
337
|
},
|
|
313
338
|
{
|
|
314
339
|
type: 'object',
|
|
315
340
|
name: 'releaseGood',
|
|
316
341
|
header: i18next.t('field.ro'),
|
|
342
|
+
label: true,
|
|
317
343
|
width: 160
|
|
318
344
|
},
|
|
319
345
|
{
|
|
320
346
|
type: 'string',
|
|
321
347
|
name: 'status',
|
|
322
348
|
header: i18next.t('field.status'),
|
|
349
|
+
label: true,
|
|
323
350
|
sortable: true,
|
|
324
351
|
width: 120
|
|
325
352
|
},
|
|
@@ -327,6 +354,7 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
327
354
|
type: 'datetime',
|
|
328
355
|
name: 'createdAt',
|
|
329
356
|
header: i18next.t('field.created_at'),
|
|
357
|
+
label: true,
|
|
330
358
|
sortable: true,
|
|
331
359
|
width: 160
|
|
332
360
|
},
|
|
@@ -334,6 +362,7 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
334
362
|
type: 'datetime',
|
|
335
363
|
name: 'updatedAt',
|
|
336
364
|
header: i18next.t('field.updated_at'),
|
|
365
|
+
label: true,
|
|
337
366
|
sortable: true,
|
|
338
367
|
width: 160
|
|
339
368
|
},
|
|
@@ -341,6 +370,7 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
341
370
|
type: 'object',
|
|
342
371
|
name: 'acceptedBy',
|
|
343
372
|
header: i18next.t('field.accepted_by'),
|
|
373
|
+
label: true,
|
|
344
374
|
sortable: true,
|
|
345
375
|
width: 200
|
|
346
376
|
}
|
|
@@ -458,12 +488,59 @@ class ArrivalNoticeRequests extends localize(i18next)(PageView) {
|
|
|
458
488
|
}
|
|
459
489
|
}
|
|
460
490
|
|
|
461
|
-
|
|
462
|
-
|
|
491
|
+
async _exportableData() {
|
|
492
|
+
try {
|
|
493
|
+
let data = []
|
|
494
|
+
|
|
495
|
+
var headerSetting = [
|
|
496
|
+
{ header: i18next.t('field.order_no'), key: 'name', width: 25, type: 'string' },
|
|
497
|
+
{ header: i18next.t('field.company'), key: 'bizplaceName', width: 25, type: 'string' },
|
|
498
|
+
{ header: i18next.t('field.ref_no'), key: 'refNo', width: 25, type: 'string' },
|
|
499
|
+
{ header: i18next.t('field.ref_no_2'), key: 'refNo2', width: 25, type: 'string' },
|
|
500
|
+
{ header: i18next.t('field.ref_no_3'), key: 'refNo3', width: 25, type: 'string' },
|
|
501
|
+
{ header: i18next.t('field.eta_date'), key: 'etaDate', width: 30, type: 'string' },
|
|
502
|
+
{ header: i18next.t('field.container'), key: 'container', width: 30, type: 'string' },
|
|
503
|
+
{ header: i18next.t('field.import_cargo'), key: 'importCargo', width: 30, type: 'string' },
|
|
504
|
+
{ header: i18next.t('field.cross_docking'), key: 'crossDocking', width: 30, type: 'string' },
|
|
505
|
+
{ header: i18next.t('field.status'), key: 'status', width: 25, type: 'string' },
|
|
506
|
+
{ header: i18next.t('field.created_at'), key: 'createdAt', width: 30, type: 'date' },
|
|
507
|
+
{ header: i18next.t('field.updated_at'), key: 'updatedAt', width: 30, type: 'date' },
|
|
508
|
+
{ header: i18next.t('field.accepted_by'), key: 'acceptedByName', width: 25, type: 'string' }
|
|
509
|
+
]
|
|
510
|
+
|
|
511
|
+
if (this.dataGrist.selected && this.dataGrist.selected.length > 0) {
|
|
512
|
+
data = this.dataGrist.selected.map(record => {
|
|
513
|
+
return {
|
|
514
|
+
...record,
|
|
515
|
+
bizplaceName: record.bizplace?.name,
|
|
516
|
+
acceptedByName: record.acceptedBy?.name
|
|
517
|
+
}
|
|
518
|
+
})
|
|
519
|
+
} else {
|
|
520
|
+
data = (await this.fetchHandler({ page: 1, limit: 9999999 })).records.map(record => {
|
|
521
|
+
return {
|
|
522
|
+
...record,
|
|
523
|
+
bizplaceName: record.bizplace?.name,
|
|
524
|
+
acceptedByName: record.acceptedBy?.name
|
|
525
|
+
}
|
|
526
|
+
})
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
return { header: headerSetting, data }
|
|
530
|
+
} catch (e) {
|
|
531
|
+
this._showToast(e)
|
|
532
|
+
}
|
|
463
533
|
}
|
|
464
534
|
|
|
465
|
-
|
|
466
|
-
|
|
535
|
+
_showToast({ type, message }) {
|
|
536
|
+
document.dispatchEvent(
|
|
537
|
+
new CustomEvent('notify', {
|
|
538
|
+
detail: {
|
|
539
|
+
type,
|
|
540
|
+
message
|
|
541
|
+
}
|
|
542
|
+
})
|
|
543
|
+
)
|
|
467
544
|
}
|
|
468
545
|
}
|
|
469
546
|
|
|
@@ -450,6 +450,7 @@ class AssignBufferLocation extends localize(i18next)(PageView) {
|
|
|
450
450
|
name
|
|
451
451
|
description
|
|
452
452
|
sku
|
|
453
|
+
brand
|
|
453
454
|
}
|
|
454
455
|
remark
|
|
455
456
|
unitPrice
|
|
@@ -523,7 +524,7 @@ class AssignBufferLocation extends localize(i18next)(PageView) {
|
|
|
523
524
|
this.setProductGristConfig()
|
|
524
525
|
this.productData = {
|
|
525
526
|
records: orderProducts.map(record => {
|
|
526
|
-
return { ...record, productSku: record.product.sku }
|
|
527
|
+
return { ...record, productSku: record.product.sku, productBrand: record.product.brand }
|
|
527
528
|
})
|
|
528
529
|
}
|
|
529
530
|
this.vasData = {
|
|
@@ -577,6 +578,12 @@ class AssignBufferLocation extends localize(i18next)(PageView) {
|
|
|
577
578
|
header: i18next.t('field.product'),
|
|
578
579
|
width: 350
|
|
579
580
|
},
|
|
581
|
+
{
|
|
582
|
+
type: 'string',
|
|
583
|
+
name: 'productBrand',
|
|
584
|
+
header: i18next.t('field.brand'),
|
|
585
|
+
width: 150
|
|
586
|
+
},
|
|
580
587
|
{
|
|
581
588
|
type: 'string',
|
|
582
589
|
name: 'packingType',
|
|
@@ -300,6 +300,7 @@ class CheckArrivedNotice extends localize(i18next)(PageView) {
|
|
|
300
300
|
fields: [
|
|
301
301
|
'batchId',
|
|
302
302
|
'productSku',
|
|
303
|
+
'productBrand',
|
|
303
304
|
'product',
|
|
304
305
|
'packingType',
|
|
305
306
|
'uomValue',
|
|
@@ -333,6 +334,12 @@ class CheckArrivedNotice extends localize(i18next)(PageView) {
|
|
|
333
334
|
header: i18next.t('field.product'),
|
|
334
335
|
width: 350
|
|
335
336
|
},
|
|
337
|
+
{
|
|
338
|
+
type: 'string',
|
|
339
|
+
name: 'productBrand',
|
|
340
|
+
header: i18next.t('field.brand'),
|
|
341
|
+
width: 150
|
|
342
|
+
},
|
|
336
343
|
{
|
|
337
344
|
type: 'string',
|
|
338
345
|
name: 'packingType',
|
|
@@ -552,6 +559,7 @@ class CheckArrivedNotice extends localize(i18next)(PageView) {
|
|
|
552
559
|
name
|
|
553
560
|
description
|
|
554
561
|
sku
|
|
562
|
+
brand
|
|
555
563
|
}
|
|
556
564
|
remark
|
|
557
565
|
unitPrice
|
|
@@ -622,7 +630,7 @@ class CheckArrivedNotice extends localize(i18next)(PageView) {
|
|
|
622
630
|
|
|
623
631
|
this.productData = {
|
|
624
632
|
records: orderProducts.map(record => {
|
|
625
|
-
return { ...record, productSku: record.product.sku }
|
|
633
|
+
return { ...record, productSku: record.product.sku, productBrand: record.product.brand }
|
|
626
634
|
})
|
|
627
635
|
}
|
|
628
636
|
this.vasData = {
|
|
@@ -563,6 +563,13 @@ class CreateArrivalNotice extends localize(i18next)(PageView) {
|
|
|
563
563
|
},
|
|
564
564
|
width: 350
|
|
565
565
|
},
|
|
566
|
+
{
|
|
567
|
+
type: 'string',
|
|
568
|
+
name: 'productBrand',
|
|
569
|
+
header: i18next.t('field.brand'),
|
|
570
|
+
imex: { header: i18next.t('field.brand'), key: 'productBrand', width: 25, type: 'string' },
|
|
571
|
+
width: 150
|
|
572
|
+
},
|
|
566
573
|
{
|
|
567
574
|
type: 'object',
|
|
568
575
|
name: 'product',
|
|
@@ -653,7 +660,7 @@ class CreateArrivalNotice extends localize(i18next)(PageView) {
|
|
|
653
660
|
name: 'manufactureYear',
|
|
654
661
|
header: i18next.t('field.manufacture_year'),
|
|
655
662
|
imex: { header: i18next.t('field.manufacture_year'), key: 'manufactureYear', width: 25, type: 'float' },
|
|
656
|
-
record: { editable: editable
|
|
663
|
+
record: { editable: editable },
|
|
657
664
|
width: 100
|
|
658
665
|
},
|
|
659
666
|
{
|
|
@@ -779,6 +786,26 @@ class CreateArrivalNotice extends localize(i18next)(PageView) {
|
|
|
779
786
|
}
|
|
780
787
|
}
|
|
781
788
|
|
|
789
|
+
if (changedColumn === 'manufactureYear') {
|
|
790
|
+
let manufactureYear = changeRecord.manufactureYear
|
|
791
|
+
const regExp = /^(181[2-9]|18[2-9]\d|19\d\d|2\d{3}|30[0-3]\d|304[0-8])$/
|
|
792
|
+
|
|
793
|
+
if (typeof manufactureYear === undefined || !regExp.test(manufactureYear)) {
|
|
794
|
+
if (manufactureYear === 0) {
|
|
795
|
+
delete event.detail.after[event.detail.column.name]
|
|
796
|
+
} else {
|
|
797
|
+
throw new Error(i18next.t('text.invalid_x', { state: { x: i18next.t('label.manufacture_year') } }))
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
if (changedColumn === 'unitPrice') {
|
|
803
|
+
let unitPrice = changeRecord.unitPrice
|
|
804
|
+
if (typeof unitPrice === undefined || unitPrice < 0) {
|
|
805
|
+
throw new Error(i18next.t('text.x_should_be_positive', { state: { x: i18next.t('label.unit_price') } }))
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
|
|
782
809
|
this._updateVasTargets(true)
|
|
783
810
|
} catch (e) {
|
|
784
811
|
const beforeValue = event.detail.before && event.detail.before[event.detail.column.name]
|
|
@@ -910,7 +937,7 @@ class CreateArrivalNotice extends localize(i18next)(PageView) {
|
|
|
910
937
|
|
|
911
938
|
const response = await client.query({
|
|
912
939
|
query: gql`
|
|
913
|
-
query productDetails($filters: [Filter]) {
|
|
940
|
+
query productDetails($filters: [Filter!]!) {
|
|
914
941
|
productDetails(filters: $filters) {
|
|
915
942
|
items {
|
|
916
943
|
id
|
|
@@ -1454,6 +1481,7 @@ class CreateArrivalNotice extends localize(i18next)(PageView) {
|
|
|
1454
1481
|
this.vasGrist.reset()
|
|
1455
1482
|
this._strictProductSelection = await fetchSettingRule('strict-product-selection', e.detail.domain.id)
|
|
1456
1483
|
this._configureProductGrist()
|
|
1484
|
+
this._clearView()
|
|
1457
1485
|
}}"
|
|
1458
1486
|
></popup-partner-bizplaces-selector>
|
|
1459
1487
|
`,
|