@things-factory/operato-wms 5.0.13 → 6.0.0-alpha.1
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/bulk-operation/bulk-operation.js +96 -8
- package/client/pages/bulk-operation/validate-gan-popup.js +37 -27
- package/client/pages/bulk-operation/validate-ro-popup.js +40 -0
- package/client/pages/components/select-inventory-popup.js +633 -0
- package/client/pages/constants/order.js +2 -1
- package/client/pages/inbound/pallet-label-popup.js +2 -0
- package/client/pages/inbound/select-product-batch.js +7 -1
- package/client/pages/inbound/undo-unload-popup.js +37 -21
- package/client/pages/inbound/unload-product.js +147 -59
- package/client/pages/inbound/worksheet-putaway.js +1 -1
- package/client/pages/inbound/worksheet-unloading.js +11 -7
- package/client/pages/inventory/inventory-adjustment.js +261 -238
- package/client/pages/inventory/inventory-by-product-detail.js +99 -92
- package/client/pages/inventory/inventory-by-product.js +170 -68
- package/client/pages/inventory/onhand-inventory.js +10 -12
- package/client/pages/inventory/serial-number-list-popup.js +36 -5
- package/client/pages/inventory-check/inspecting-product.js +1 -1
- package/client/pages/manifest/create-loading-manifest.js +47 -22
- package/client/pages/manifest/dispatcher-verification-popup.js +24 -13
- package/client/pages/manifest/loading-manifest-detail.js +311 -46
- package/client/pages/manifest/loading-manifest-list.js +86 -13
- package/client/pages/order/arrival-notice/arrival-notice-detail.js +305 -52
- package/client/pages/order/arrival-notice/arrival-notice-list.js +20 -1
- package/client/pages/order/arrival-notice/create-arrival-notice.js +2 -2
- package/client/pages/order/goods-received-note/received-note-detail.js +187 -15
- package/client/pages/order/release-order/b2b/b2b-order-list.js +76 -80
- package/client/pages/order/release-order/b2c/b2c-order-requests.js +148 -123
- package/client/pages/order/release-order/batch-picking-popup.js +11 -0
- package/client/pages/order/release-order/create-release-order.js +762 -250
- package/client/pages/order/release-order/release-extra-product-popup.js +10 -3
- package/client/pages/order/release-order/release-order-detail.js +897 -215
- package/client/pages/order/transport-order/delivery-note-popup.js +1050 -107
- package/client/pages/order/transport-order/print-delivery-note.js +214 -33
- package/client/pages/order/transport-order/upload-delivery-note.js +6 -4
- package/client/pages/order/transport-order/view-delivery-note.js +0 -1
- package/client/pages/outbound/generate-worksheet-popup.js +374 -0
- package/client/pages/outbound/inventory-reassign-popup.js +1097 -0
- package/client/pages/outbound/loading-product.js +88 -78
- package/client/pages/outbound/merged-outbound-worksheet.js +1 -1
- package/client/pages/outbound/packing-product.js +193 -82
- package/client/pages/outbound/packing-worksheet-list.js +10 -9
- package/client/pages/outbound/picking-product.js +979 -905
- package/client/pages/outbound/route-label-popup.js +283 -191
- package/client/pages/outbound/serial-number-popup.js +1 -0
- package/client/pages/outbound/sorting-product.js +12 -12
- package/client/pages/outbound/worksheet-batch-picking.js +39 -5
- package/client/pages/outbound/worksheet-packing.js +17 -4
- package/client/pages/outbound/worksheet-picking.js +45 -6
- package/client/pages/report/inbound-serial-number-report.js +86 -9
- package/client/pages/report/inventory-report.js +10 -0
- package/client/pages/report/inventory-summary-report.js +28 -19
- package/client/pages/report/outbound-order-details-report.js +204 -43
- package/client/pages/report/outbound-serial-number-report.js +87 -9
- package/client/pages/report/release-inventory-report.js +503 -0
- package/client/route.js +5 -0
- package/client/util/index.js +2 -0
- package/client/util/page-settings.js +43 -0
- package/client/util/toast.js +10 -0
- package/dist-server/graphql/resolvers/board-setting/board-settings.js +3 -3
- package/dist-server/graphql/resolvers/board-setting/board-settings.js.map +1 -1
- package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js +2 -2
- package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js.map +1 -1
- package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js +1 -1
- package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js.map +1 -1
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js +2 -2
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js.map +1 -1
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js +9 -10
- 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 +2 -2
- package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js.map +1 -1
- package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js +6 -4
- package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js.map +1 -1
- package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js +6 -4
- package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js +21 -10
- package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js +1 -2
- package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js +1 -2
- package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/index.js +2 -1
- package/dist-server/graphql/resolvers/dashboard/index.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js +17 -1
- package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js +113 -75
- package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js +21 -10
- package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js.map +1 -1
- package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js +56 -0
- package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js.map +1 -0
- package/dist-server/graphql/resolvers/index.js +5 -4
- package/dist-server/graphql/resolvers/index.js.map +1 -1
- package/dist-server/graphql/resolvers/inventory-comparison/inventory-comparison-list.js.map +1 -1
- package/dist-server/graphql/resolvers/opa-menu/opa-menus.js +8 -7
- package/dist-server/graphql/resolvers/opa-menu/opa-menus.js.map +1 -1
- package/dist-server/graphql/resolvers/{extra → other}/add-release-good-products.js +59 -8
- package/dist-server/graphql/resolvers/other/add-release-good-products.js.map +1 -0
- package/dist-server/graphql/resolvers/{extra → other}/index.js +3 -1
- package/dist-server/graphql/resolvers/other/index.js.map +1 -0
- package/dist-server/graphql/resolvers/other/page-settings.js +87 -0
- package/dist-server/graphql/resolvers/other/page-settings.js.map +1 -0
- package/dist-server/graphql/resolvers/reports/costing-report.js +4 -4
- package/dist-server/graphql/resolvers/reports/costing-report.js.map +1 -1
- package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js +3 -3
- package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js.map +1 -1
- package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js +36 -7
- package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js.map +1 -1
- package/dist-server/graphql/resolvers/reports/index.js +2 -1
- package/dist-server/graphql/resolvers/reports/index.js.map +1 -1
- package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js +69 -30
- package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js.map +1 -1
- package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js +36 -11
- package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js.map +1 -1
- package/dist-server/graphql/resolvers/reports/product-label-report.js +3 -3
- package/dist-server/graphql/resolvers/reports/product-label-report.js.map +1 -1
- package/dist-server/graphql/resolvers/reports/release-inventory-report.js +180 -0
- package/dist-server/graphql/resolvers/reports/release-inventory-report.js.map +1 -0
- package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js +2 -2
- package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js.map +1 -1
- package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js +1 -1
- package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js.map +1 -1
- package/dist-server/graphql/types/dashboard/index.js +1 -0
- package/dist-server/graphql/types/dashboard/index.js.map +1 -1
- package/dist-server/graphql/types/index.js +7 -2
- package/dist-server/graphql/types/index.js.map +1 -1
- package/dist-server/graphql/types/other/index.js +19 -0
- package/dist-server/graphql/types/other/index.js.map +1 -0
- package/dist-server/graphql/types/other/page-setting.js +34 -0
- package/dist-server/graphql/types/other/page-setting.js.map +1 -0
- package/dist-server/graphql/types/reports/index.js +6 -1
- package/dist-server/graphql/types/reports/index.js.map +1 -1
- package/dist-server/graphql/types/reports/outbound-order-details-report.js +17 -1
- package/dist-server/graphql/types/reports/outbound-order-details-report.js.map +1 -1
- package/dist-server/graphql/types/reports/release-inventory-report-list.js +12 -0
- package/dist-server/graphql/types/reports/release-inventory-report-list.js.map +1 -0
- package/dist-server/graphql/types/reports/release-inventory-report.js +27 -0
- package/dist-server/graphql/types/reports/release-inventory-report.js.map +1 -0
- package/dist-server/migrations/1568858861188-SeedSetting.js +5 -6
- package/dist-server/migrations/1568858861188-SeedSetting.js.map +1 -1
- package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js +1 -1
- package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js.map +1 -1
- package/dist-server/migrations/1623381200659-SeedStoringRule.js +1 -1
- package/dist-server/migrations/1623381200659-SeedStoringRule.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/dist-server/utils/report-query-util.js +5 -2
- package/dist-server/utils/report-query-util.js.map +1 -1
- package/helps/release-note.ko.md +8 -20
- package/helps/release-note.md +8 -20
- package/helps/release-note.ms.md +8 -20
- package/helps/release-note.zh.md +8 -20
- package/package.json +42 -42
- package/server/graphql/resolvers/board-setting/board-settings.ts +4 -6
- package/server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.ts +4 -5
- package/server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.ts +9 -10
- package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.ts +4 -5
- package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.ts +17 -19
- package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.ts +10 -8
- package/server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.ts +9 -9
- package/server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.ts +9 -9
- package/server/graphql/resolvers/dashboard/arrival-notices-by-status.ts +23 -14
- package/server/graphql/resolvers/dashboard/collection-orders-by-status.ts +4 -5
- package/server/graphql/resolvers/dashboard/delivery-orders-by-status.ts +4 -5
- package/server/graphql/resolvers/dashboard/index.ts +3 -1
- package/server/graphql/resolvers/dashboard/inventory-expiry-monitor.ts +18 -6
- package/server/graphql/resolvers/dashboard/outbound-order-by-status.ts +114 -81
- package/server/graphql/resolvers/dashboard/release-goods-by-status.ts +23 -14
- package/server/graphql/resolvers/dashboard/unit-inbounded-outbounded.ts +61 -0
- package/server/graphql/resolvers/index.ts +5 -4
- package/server/graphql/resolvers/inventory-comparison/inventory-comparison-list.ts +11 -9
- package/server/graphql/resolvers/opa-menu/opa-menus.ts +7 -6
- package/server/graphql/resolvers/{extra → other}/add-release-good-products.ts +73 -12
- package/server/graphql/resolvers/other/index.ts +10 -0
- package/server/graphql/resolvers/other/page-settings.ts +105 -0
- package/server/graphql/resolvers/reports/costing-report.ts +8 -10
- package/server/graphql/resolvers/reports/inbound-order-details-report.ts +7 -9
- package/server/graphql/resolvers/reports/inbound-serial-number-report.ts +41 -13
- package/server/graphql/resolvers/reports/index.ts +3 -1
- package/server/graphql/resolvers/reports/outbound-order-details-report.ts +76 -38
- package/server/graphql/resolvers/reports/outbound-serial-number-report.ts +42 -18
- package/server/graphql/resolvers/reports/product-label-report.ts +4 -6
- package/server/graphql/resolvers/reports/release-inventory-report.ts +201 -0
- package/server/graphql/resolvers/shipping-provider/shipping-providers.ts +3 -5
- package/server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.ts +10 -10
- package/server/graphql/types/dashboard/index.ts +1 -0
- package/server/graphql/types/index.ts +8 -2
- package/server/graphql/types/other/index.ts +19 -0
- package/server/graphql/types/other/page-setting.ts +33 -0
- package/server/graphql/types/reports/index.ts +6 -1
- package/server/graphql/types/reports/outbound-order-details-report.ts +17 -1
- package/server/graphql/types/reports/release-inventory-report-list.ts +8 -0
- package/server/graphql/types/reports/release-inventory-report.ts +23 -0
- package/server/migrations/1568858861188-SeedSetting.ts +4 -4
- package/server/migrations/1623308919899-SeedLocationRecommendSetting.ts +3 -2
- package/server/migrations/1623381200659-SeedStoringRule.ts +3 -2
- package/server/utils/report-query-util.ts +5 -2
- package/things-factory.config.js +4 -0
- package/translations/en.json +148 -27
- package/translations/ko.json +185 -105
- package/translations/ms.json +183 -98
- package/translations/zh.json +197 -112
- package/dist-server/graphql/resolvers/extra/add-release-good-products.js.map +0 -1
- package/dist-server/graphql/resolvers/extra/index.js.map +0 -1
- package/dist-server/graphql/types/extra/index.js +0 -11
- package/dist-server/graphql/types/extra/index.js.map +0 -1
- package/server/graphql/resolvers/extra/index.ts +0 -5
- package/server/graphql/types/extra/index.ts +0 -7
|
@@ -3,6 +3,7 @@ import '@things-factory/grist-ui'
|
|
|
3
3
|
import './inventory-assign-popup'
|
|
4
4
|
import './inventory-auto-assign-popup'
|
|
5
5
|
import './select-operator-popup'
|
|
6
|
+
import './inventory-reassign-popup'
|
|
6
7
|
|
|
7
8
|
import gql from 'graphql-tag'
|
|
8
9
|
import { css, html } from 'lit-element'
|
|
@@ -133,11 +134,18 @@ class WorksheetBatchPicking extends localize(i18next)(PageView) {
|
|
|
133
134
|
}
|
|
134
135
|
|
|
135
136
|
if (this.activatable) {
|
|
136
|
-
actions.push(
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
137
|
+
actions.push(
|
|
138
|
+
{
|
|
139
|
+
title: i18next.t('button.reassign'),
|
|
140
|
+
action: this._openReassignInventoryPopup.bind(this),
|
|
141
|
+
...CommonButtonStyles.assignment
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
title: i18next.t('button.activate'),
|
|
145
|
+
action: this._activateWorksheet.bind(this),
|
|
146
|
+
...CommonButtonStyles.activate
|
|
147
|
+
}
|
|
148
|
+
)
|
|
141
149
|
}
|
|
142
150
|
|
|
143
151
|
if (this.assignable) {
|
|
@@ -861,6 +869,7 @@ class WorksheetBatchPicking extends localize(i18next)(PageView) {
|
|
|
861
869
|
description
|
|
862
870
|
}
|
|
863
871
|
packingType
|
|
872
|
+
packingSize
|
|
864
873
|
inventory {
|
|
865
874
|
qty
|
|
866
875
|
lockedQty
|
|
@@ -1221,6 +1230,31 @@ class WorksheetBatchPicking extends localize(i18next)(PageView) {
|
|
|
1221
1230
|
}
|
|
1222
1231
|
}
|
|
1223
1232
|
|
|
1233
|
+
_openReassignInventoryPopup() {
|
|
1234
|
+
openPopup(
|
|
1235
|
+
html`
|
|
1236
|
+
<inventory-reassign-popup
|
|
1237
|
+
.bizplaceId=${this.targetBizpace?.id}
|
|
1238
|
+
.taskNo=${this._taskNo}
|
|
1239
|
+
.worksheetNo=${this._worksheetNo}
|
|
1240
|
+
@reassignment-completed="${async () => {
|
|
1241
|
+
await this.fetchOrderInventories()
|
|
1242
|
+
await this.fetchWorksheetDetails(this._worksheetNo)
|
|
1243
|
+
|
|
1244
|
+
this.updateContext()
|
|
1245
|
+
}}"
|
|
1246
|
+
></inventory-reassign-popup>
|
|
1247
|
+
`,
|
|
1248
|
+
{
|
|
1249
|
+
escapable: false,
|
|
1250
|
+
closable: false,
|
|
1251
|
+
backdrop: true,
|
|
1252
|
+
size: 'large',
|
|
1253
|
+
title: i18next.t('title.reassign_inventory')
|
|
1254
|
+
}
|
|
1255
|
+
)
|
|
1256
|
+
}
|
|
1257
|
+
|
|
1224
1258
|
_showToast({ type, message }) {
|
|
1225
1259
|
document.dispatchEvent(
|
|
1226
1260
|
new CustomEvent('notify', {
|
|
@@ -24,7 +24,8 @@ class WorksheetPacking extends localize(i18next)(PageView) {
|
|
|
24
24
|
orderInformation: Object,
|
|
25
25
|
wsdGristConfig: Object,
|
|
26
26
|
worksheetDetailData: Object,
|
|
27
|
-
_logisticsInitiated: Boolean
|
|
27
|
+
_logisticsInitiated: Boolean,
|
|
28
|
+
_isManifested: Boolean
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
|
|
@@ -167,7 +168,10 @@ class WorksheetPacking extends localize(i18next)(PageView) {
|
|
|
167
168
|
<label>${i18next.t('label.ref_no_2')}</label>
|
|
168
169
|
<input name="refNo2" readonly />
|
|
169
170
|
|
|
170
|
-
<label>${i18next.t('label.
|
|
171
|
+
<label>${i18next.t('label.ref_no_3')}</label>
|
|
172
|
+
<input name="refNo3" readonly />
|
|
173
|
+
|
|
174
|
+
<label>${i18next.t('label.transporter')}</label>
|
|
171
175
|
<input name="shippingProvider" readonly />
|
|
172
176
|
|
|
173
177
|
<label>${i18next.t('label.tracking_no')}</label>
|
|
@@ -182,6 +186,9 @@ class WorksheetPacking extends localize(i18next)(PageView) {
|
|
|
182
186
|
key => html`<option value="${WORKSHEET_STATUS[key].value}">${WORKSHEET_STATUS[key].name}</option>`
|
|
183
187
|
)}
|
|
184
188
|
</select>
|
|
189
|
+
|
|
190
|
+
<input id="manifested" type="checkbox" name="manifested" ?checked="${this._isManifested}" disabled />
|
|
191
|
+
<label for="manifested">${i18next.t('label.manifested')}</label>
|
|
185
192
|
</fieldset>
|
|
186
193
|
</form>
|
|
187
194
|
|
|
@@ -307,12 +314,17 @@ class WorksheetPacking extends localize(i18next)(PageView) {
|
|
|
307
314
|
releaseGood {
|
|
308
315
|
name
|
|
309
316
|
description
|
|
317
|
+
transporter
|
|
318
|
+
trackingNo
|
|
310
319
|
refNo
|
|
311
320
|
refNo2
|
|
312
321
|
refNo3
|
|
313
322
|
ownTransport
|
|
314
323
|
releaseDate
|
|
315
324
|
remark
|
|
325
|
+
manifest {
|
|
326
|
+
id
|
|
327
|
+
}
|
|
316
328
|
}
|
|
317
329
|
marketplaceOrder {
|
|
318
330
|
name
|
|
@@ -401,6 +413,7 @@ class WorksheetPacking extends localize(i18next)(PageView) {
|
|
|
401
413
|
this._trackingNo = worksheet.marketplaceOrder?.trackingNo
|
|
402
414
|
this._refNo = worksheet?.releaseGood?.refNo
|
|
403
415
|
this._roNo = worksheet?.releaseGood?.name || ''
|
|
416
|
+
this._isManifested = worksheet?.releaseGood?.manifest?.id ? true : false
|
|
404
417
|
|
|
405
418
|
this._fillupForm({
|
|
406
419
|
...worksheet,
|
|
@@ -411,8 +424,8 @@ class WorksheetPacking extends localize(i18next)(PageView) {
|
|
|
411
424
|
refNo3: worksheet.releaseGood.refNo3,
|
|
412
425
|
ownCollection: worksheet.releaseGood.ownTransport,
|
|
413
426
|
releaseDate: worksheet.releaseGood.releaseDate,
|
|
414
|
-
shippingProvider: worksheet.
|
|
415
|
-
trackingNo: worksheet.
|
|
427
|
+
shippingProvider: worksheet.releaseGood?.transporter || '',
|
|
428
|
+
trackingNo: worksheet.releaseGood?.trackingNo || '',
|
|
416
429
|
remark: worksheet.releaseGood.remark || ''
|
|
417
430
|
})
|
|
418
431
|
|
|
@@ -3,6 +3,7 @@ import '@things-factory/grist-ui'
|
|
|
3
3
|
import './inventory-assign-popup'
|
|
4
4
|
import './inventory-auto-assign-popup'
|
|
5
5
|
import './select-operator-popup'
|
|
6
|
+
import './inventory-reassign-popup'
|
|
6
7
|
|
|
7
8
|
import gql from 'graphql-tag'
|
|
8
9
|
import { css, html } from 'lit-element'
|
|
@@ -32,6 +33,7 @@ class WorksheetPicking extends localize(i18next)(PageView) {
|
|
|
32
33
|
_worksheetNo: String,
|
|
33
34
|
_worksheetStatus: String,
|
|
34
35
|
_roNo: String,
|
|
36
|
+
_roId: String,
|
|
35
37
|
_statusList: Array,
|
|
36
38
|
ganNo: String,
|
|
37
39
|
assignee: Object,
|
|
@@ -154,11 +156,18 @@ class WorksheetPicking extends localize(i18next)(PageView) {
|
|
|
154
156
|
}
|
|
155
157
|
|
|
156
158
|
if (this.activatable) {
|
|
157
|
-
actions.push(
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
159
|
+
actions.push(
|
|
160
|
+
{
|
|
161
|
+
title: i18next.t('button.reassign'),
|
|
162
|
+
action: this._openReassignInventoryPopup.bind(this),
|
|
163
|
+
...CommonButtonStyles.assignment
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
title: i18next.t('button.activate'),
|
|
167
|
+
action: this._activateWorksheet.bind(this),
|
|
168
|
+
...CommonButtonStyles.activate
|
|
169
|
+
}
|
|
170
|
+
)
|
|
162
171
|
}
|
|
163
172
|
|
|
164
173
|
if (this.assignable) {
|
|
@@ -641,6 +650,7 @@ class WorksheetPicking extends localize(i18next)(PageView) {
|
|
|
641
650
|
name
|
|
642
651
|
}
|
|
643
652
|
releaseGood {
|
|
653
|
+
id
|
|
644
654
|
name
|
|
645
655
|
description
|
|
646
656
|
refNo
|
|
@@ -736,6 +746,7 @@ class WorksheetPicking extends localize(i18next)(PageView) {
|
|
|
736
746
|
|
|
737
747
|
this.worksheetDetails = worksheet.worksheetDetails
|
|
738
748
|
this._worksheetStatus = worksheet.status
|
|
749
|
+
this._roId = worksheet?.releaseGood?.id || ''
|
|
739
750
|
this._roNo = worksheet?.releaseGood?.name || ''
|
|
740
751
|
this.worksheetType = worksheet?.type
|
|
741
752
|
this.crossDocking = worksheet?.releaseGood?.crossDocking
|
|
@@ -1152,7 +1163,10 @@ class WorksheetPicking extends localize(i18next)(PageView) {
|
|
|
1152
1163
|
this.preWsdGristConfig.columns.splice(palletIdColumnIdx, 1, cartonIdColumnConfig)
|
|
1153
1164
|
}
|
|
1154
1165
|
|
|
1155
|
-
if (
|
|
1166
|
+
if (
|
|
1167
|
+
this.worksheetDetailData.records.some(e => e.batchIdRef) &&
|
|
1168
|
+
!this.preWsdGristConfig.columns.find(column => column.name === 'batchIdRef')
|
|
1169
|
+
) {
|
|
1156
1170
|
this.preWsdGristConfig.columns = [...this.preWsdGristConfig.columns, batchIdRefColumnConfig]
|
|
1157
1171
|
}
|
|
1158
1172
|
|
|
@@ -1372,6 +1386,31 @@ class WorksheetPicking extends localize(i18next)(PageView) {
|
|
|
1372
1386
|
})
|
|
1373
1387
|
}
|
|
1374
1388
|
|
|
1389
|
+
_openReassignInventoryPopup() {
|
|
1390
|
+
openPopup(
|
|
1391
|
+
html`
|
|
1392
|
+
<inventory-reassign-popup
|
|
1393
|
+
.bizplaceId=${this.targetBizpace?.id}
|
|
1394
|
+
.roId=${this._roId}
|
|
1395
|
+
.worksheetNo=${this._worksheetNo}
|
|
1396
|
+
@reassignment-completed="${async () => {
|
|
1397
|
+
await this.fetchOrderInventories()
|
|
1398
|
+
await this.fetchWorksheetDetails(this._worksheetNo)
|
|
1399
|
+
|
|
1400
|
+
this.updateContext()
|
|
1401
|
+
}}"
|
|
1402
|
+
></inventory-reassign-popup>
|
|
1403
|
+
`,
|
|
1404
|
+
{
|
|
1405
|
+
escapable: false,
|
|
1406
|
+
closable: false,
|
|
1407
|
+
backdrop: true,
|
|
1408
|
+
size: 'large',
|
|
1409
|
+
title: i18next.t('title.reassign_inventory')
|
|
1410
|
+
}
|
|
1411
|
+
)
|
|
1412
|
+
}
|
|
1413
|
+
|
|
1375
1414
|
_selectOperator() {
|
|
1376
1415
|
openPopup(
|
|
1377
1416
|
html`
|
|
@@ -57,6 +57,10 @@ class InboundSerialNumberReport extends connect(store)(localize(i18next)(PageVie
|
|
|
57
57
|
accept: ['preview'],
|
|
58
58
|
content: this
|
|
59
59
|
},
|
|
60
|
+
exportable: {
|
|
61
|
+
name: i18next.t('title.inbound_serial_number_report'),
|
|
62
|
+
data: this._exportableData.bind(this)
|
|
63
|
+
},
|
|
60
64
|
help: 'operato-wms/report/inbound-serial-number-report'
|
|
61
65
|
}
|
|
62
66
|
}
|
|
@@ -137,22 +141,54 @@ class InboundSerialNumberReport extends connect(store)(localize(i18next)(PageVie
|
|
|
137
141
|
let date = new Date()
|
|
138
142
|
date.setMonth(date.getMonth() - 1)
|
|
139
143
|
return date.toISOString().split('T')[0]
|
|
140
|
-
})()
|
|
144
|
+
})(),
|
|
145
|
+
max: new Date().toISOString().split('T')[0]
|
|
141
146
|
},
|
|
142
147
|
value: new Date().toISOString().split('T')[0],
|
|
143
148
|
handlers: { change: this._submit.bind(this) }
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
label: i18next.t('field.order_no'),
|
|
152
|
+
name: 'orderNo',
|
|
153
|
+
type: 'text',
|
|
154
|
+
props: { searchOper: 'custom' }
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
label: i18next.t('field.ref_no'),
|
|
158
|
+
name: 'ref',
|
|
159
|
+
type: 'string',
|
|
160
|
+
props: { searchOper: 'in' }
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
label: i18next.t('field.lot_id'),
|
|
164
|
+
name: 'palletId',
|
|
165
|
+
type: 'text',
|
|
166
|
+
props: { searchOper: 'i_like' }
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
label: i18next.t('field.carton_id'),
|
|
170
|
+
name: 'cartonId',
|
|
171
|
+
type: 'text',
|
|
172
|
+
props: { searchOper: 'i_like' }
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
label: i18next.t('field.product_info'),
|
|
176
|
+
name: 'product',
|
|
177
|
+
type: 'string',
|
|
178
|
+
props: { searchOper: 'in' }
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
label: i18next.t('field.serial_number'),
|
|
182
|
+
name: 'serialNumber',
|
|
183
|
+
type: 'text',
|
|
184
|
+
props: { searchOper: 'eq' }
|
|
144
185
|
}
|
|
145
186
|
]
|
|
146
187
|
}
|
|
147
188
|
|
|
148
189
|
get reportConfig() {
|
|
149
190
|
let columns = [
|
|
150
|
-
{
|
|
151
|
-
type: 'number',
|
|
152
|
-
name: 'no',
|
|
153
|
-
header: i18next.t('field.no'),
|
|
154
|
-
width: 50
|
|
155
|
-
},
|
|
191
|
+
{ type: 'gutter', gutterName: 'sequence' },
|
|
156
192
|
{
|
|
157
193
|
type: 'string',
|
|
158
194
|
name: 'bizplace|name',
|
|
@@ -246,7 +282,6 @@ class InboundSerialNumberReport extends connect(store)(localize(i18next)(PageVie
|
|
|
246
282
|
]
|
|
247
283
|
let list = {
|
|
248
284
|
fields: [
|
|
249
|
-
'no',
|
|
250
285
|
'bizplace|name',
|
|
251
286
|
'orderNo',
|
|
252
287
|
'refNo1',
|
|
@@ -279,6 +314,7 @@ class InboundSerialNumberReport extends connect(store)(localize(i18next)(PageVie
|
|
|
279
314
|
|
|
280
315
|
async pageInitialized() {
|
|
281
316
|
this._gristData = { total: 0, records: [] }
|
|
317
|
+
this._products = []
|
|
282
318
|
this._partners = [...(await this._fetchPartners())]
|
|
283
319
|
|
|
284
320
|
this._searchFields = this.searchFields
|
|
@@ -320,7 +356,6 @@ class InboundSerialNumberReport extends connect(store)(localize(i18next)(PageVie
|
|
|
320
356
|
query inboundSerialNumberReport($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
|
|
321
357
|
inboundSerialNumberReport(filters: $filters, pagination: $pagination, sortings: $sortings) {
|
|
322
358
|
items {
|
|
323
|
-
no
|
|
324
359
|
bizplace {
|
|
325
360
|
name
|
|
326
361
|
description
|
|
@@ -369,6 +404,42 @@ class InboundSerialNumberReport extends connect(store)(localize(i18next)(PageVie
|
|
|
369
404
|
}
|
|
370
405
|
}
|
|
371
406
|
|
|
407
|
+
async _exportableData() {
|
|
408
|
+
try {
|
|
409
|
+
var headerSetting = [
|
|
410
|
+
{ header: i18next.t('field.company'), key: 'bizplace|name', width: 25, type: 'string' },
|
|
411
|
+
{ header: i18next.t('field.order_no'), key: 'orderNo', width: 25, type: 'string' },
|
|
412
|
+
{ header: i18next.t('field.ref_no'), key: 'refNo1', width: 25, type: 'string' },
|
|
413
|
+
{ header: i18next.t('field.ref_no_2'), key: 'refNo2', width: 25, type: 'string' },
|
|
414
|
+
{ header: i18next.t('field.ref_no_3'), key: 'refNo3', width: 25, type: 'string' },
|
|
415
|
+
{ header: i18next.t('field.lot_id'), key: 'palletId', width: 25, type: 'string' },
|
|
416
|
+
{ header: i18next.t('field.carton_id'), key: 'cartonId', width: 25, type: 'string' },
|
|
417
|
+
{ header: i18next.t('field.sku'), key: 'product|sku', width: 25, type: 'string' },
|
|
418
|
+
{ header: i18next.t('field.brand_sku'), key: 'product|brandSku', width: 25, type: 'string' },
|
|
419
|
+
{ header: i18next.t('field.product_name'), key: 'product|name', width: 80, type: 'string' },
|
|
420
|
+
{ header: i18next.t('field.product_description'), key: 'product|description', width: 25, type: 'string' },
|
|
421
|
+
{ header: i18next.t('field.product_type'), key: 'product|type', width: 25, type: 'string' },
|
|
422
|
+
{ header: i18next.t('field.volume'), key: 'product|volume', width: 25, type: 'string' },
|
|
423
|
+
{ header: i18next.t('field.serial_number'), key: 'serialNumber', width: 25, type: 'string' },
|
|
424
|
+
{ header: i18next.t('field.etd'), key: 'etd', width: 25, type: 'datetime' }
|
|
425
|
+
]
|
|
426
|
+
|
|
427
|
+
var exportData = {
|
|
428
|
+
header: [...headerSetting],
|
|
429
|
+
data: (await this.fetchHandler({ page: 1, limit: 9999999 })).records.map(itm => {
|
|
430
|
+
return {
|
|
431
|
+
...itm,
|
|
432
|
+
etd: itm.etd ? new Date(parseInt(itm.etd)).toLocaleString() : ''
|
|
433
|
+
}
|
|
434
|
+
})
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
return exportData
|
|
438
|
+
} catch (e) {
|
|
439
|
+
this._showToast(e)
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
|
|
372
443
|
async _fetchPartners() {
|
|
373
444
|
const filters = []
|
|
374
445
|
const response = await client.query({
|
|
@@ -423,11 +494,17 @@ class InboundSerialNumberReport extends connect(store)(localize(i18next)(PageVie
|
|
|
423
494
|
if (this._toDateInput.value < fromDate) this._toDateInput.value = fromDate
|
|
424
495
|
|
|
425
496
|
let min = new Date(fromDate)
|
|
497
|
+
let max = new Date(fromDate)
|
|
426
498
|
let today = new Date()
|
|
427
499
|
today.setHours(0, 0, 0, 0)
|
|
500
|
+
max.setMonth(max.getMonth() + 1)
|
|
501
|
+
max.setDate(max.getDate() - 1)
|
|
428
502
|
|
|
429
503
|
min = min.toISOString().split('T')[0]
|
|
504
|
+
max = max.toISOString().split('T')[0]
|
|
430
505
|
|
|
506
|
+
this._toDateInput.value = max
|
|
507
|
+
this._toDateInput.max = max
|
|
431
508
|
this._toDateInput.min = min
|
|
432
509
|
this._submit()
|
|
433
510
|
}
|
|
@@ -159,6 +159,7 @@ class InventoryReport extends connect(store)(localize(i18next)(PageView)) {
|
|
|
159
159
|
rows: {
|
|
160
160
|
selectable: false,
|
|
161
161
|
groups: [
|
|
162
|
+
{ column: 'product|sku' },
|
|
162
163
|
{ column: 'product|name' },
|
|
163
164
|
{ column: 'product|type' },
|
|
164
165
|
{ column: 'packingType', title: 'Sub Total' },
|
|
@@ -168,6 +169,14 @@ class InventoryReport extends connect(store)(localize(i18next)(PageView)) {
|
|
|
168
169
|
totals: ['qty', 'uomValue']
|
|
169
170
|
},
|
|
170
171
|
columns: [
|
|
172
|
+
{
|
|
173
|
+
type: 'string',
|
|
174
|
+
name: 'product|sku',
|
|
175
|
+
header: i18next.t('field.sku'),
|
|
176
|
+
sortable: false,
|
|
177
|
+
imex: { header: i18next.t('field.sku'), key: 'product|sku', width: 75, type: 'string' },
|
|
178
|
+
width: 400
|
|
179
|
+
},
|
|
171
180
|
{
|
|
172
181
|
type: 'string',
|
|
173
182
|
name: 'product|name',
|
|
@@ -282,6 +291,7 @@ class InventoryReport extends connect(store)(localize(i18next)(PageView)) {
|
|
|
282
291
|
description
|
|
283
292
|
}
|
|
284
293
|
product {
|
|
294
|
+
sku
|
|
285
295
|
name
|
|
286
296
|
description
|
|
287
297
|
type
|
|
@@ -47,7 +47,6 @@ class InventorySummaryReport extends connect(store)(localize(i18next)(PageView))
|
|
|
47
47
|
_searchFields: Object,
|
|
48
48
|
_config: Object,
|
|
49
49
|
_partners: Object,
|
|
50
|
-
_productType: Object,
|
|
51
50
|
_gristData: Object,
|
|
52
51
|
_byPallet: Boolean,
|
|
53
52
|
data: Object
|
|
@@ -175,15 +174,7 @@ class InventorySummaryReport extends connect(store)(localize(i18next)(PageView))
|
|
|
175
174
|
label: i18next.t('field.product_type'),
|
|
176
175
|
name: 'productType',
|
|
177
176
|
type: 'select',
|
|
178
|
-
options: [
|
|
179
|
-
{ value: '' },
|
|
180
|
-
...this._productType.map(type => {
|
|
181
|
-
return {
|
|
182
|
-
name: type.name,
|
|
183
|
-
value: type.name
|
|
184
|
-
}
|
|
185
|
-
})
|
|
186
|
-
],
|
|
177
|
+
options: [{ value: '' }],
|
|
187
178
|
props: { searchOper: 'eq' }
|
|
188
179
|
},
|
|
189
180
|
{
|
|
@@ -322,7 +313,6 @@ class InventorySummaryReport extends connect(store)(localize(i18next)(PageView))
|
|
|
322
313
|
this._gristData = { total: 0, totalWithOpeningBalance: 0, records: [] }
|
|
323
314
|
this._products = []
|
|
324
315
|
this._partners = [...(await this._fetchPartners())]
|
|
325
|
-
this._productType = []
|
|
326
316
|
|
|
327
317
|
this._searchFields = this.searchFields
|
|
328
318
|
this._config = this.reportConfig
|
|
@@ -468,25 +458,44 @@ class InventorySummaryReport extends connect(store)(localize(i18next)(PageView))
|
|
|
468
458
|
|
|
469
459
|
if (this._toDateInput.value < fromDate) this._toDateInput.value = fromDate
|
|
470
460
|
|
|
471
|
-
let min = new Date(fromDate)
|
|
472
|
-
let today = new Date()
|
|
473
|
-
today.setHours(0, 0, 0, 0)
|
|
474
|
-
|
|
475
|
-
min = min.toISOString().split('T')[0]
|
|
476
|
-
|
|
461
|
+
let min = new Date(fromDate).toISOString().split('T')[0]
|
|
477
462
|
this._toDateInput.min = min
|
|
478
463
|
this._submit()
|
|
479
464
|
}
|
|
480
465
|
|
|
481
466
|
async _companyChanged(e) {
|
|
482
|
-
|
|
467
|
+
const _productType = !this._bizplaceSelector.value
|
|
483
468
|
? []
|
|
484
469
|
: await getPartnerCodeByName(
|
|
485
470
|
'PRODUCT_TYPES',
|
|
486
471
|
this._partners.find(p => p.id == this._bizplaceSelector.value)?.company?.domainId || ''
|
|
487
472
|
)
|
|
488
473
|
|
|
489
|
-
|
|
474
|
+
// update searchFields with the latest productTypes and toDate's min props
|
|
475
|
+
this._searchFields = this._searchFields.map(field => {
|
|
476
|
+
switch (field.name) {
|
|
477
|
+
case 'productType':
|
|
478
|
+
field.options = [
|
|
479
|
+
{ value: '' },
|
|
480
|
+
..._productType.map(type => {
|
|
481
|
+
return {
|
|
482
|
+
name: type.name,
|
|
483
|
+
value: type.name
|
|
484
|
+
}
|
|
485
|
+
})
|
|
486
|
+
]
|
|
487
|
+
break
|
|
488
|
+
|
|
489
|
+
case 'toDate':
|
|
490
|
+
field.props = {
|
|
491
|
+
...field.props,
|
|
492
|
+
min: this._toDateInput.min
|
|
493
|
+
}
|
|
494
|
+
break
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
return field
|
|
498
|
+
})
|
|
490
499
|
}
|
|
491
500
|
|
|
492
501
|
_submit(e) {
|