@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.
Files changed (98) hide show
  1. package/client/pages/adjustment/transfer-inventory.js +364 -158
  2. package/client/pages/bulk-operation/bulk-operation.js +316 -0
  3. package/client/pages/bulk-operation/validate-ro-popup.js +445 -0
  4. package/client/pages/components/select-product-popup.js +10 -1
  5. package/client/pages/constants/inventory.js +1 -0
  6. package/client/pages/constants/location.js +33 -6
  7. package/client/pages/constants/worksheet.js +2 -2
  8. package/client/pages/inbound/inbound-worksheet.js +81 -15
  9. package/client/pages/inbound/putaway-product.js +60 -8
  10. package/client/pages/inbound/putaway-worksheet-generate-popup.js +29 -5
  11. package/client/pages/inbound/unload-product.js +80 -19
  12. package/client/pages/inbound/worksheet-putaway-return.js +22 -5
  13. package/client/pages/inbound/worksheet-putaway.js +21 -8
  14. package/client/pages/inbound/worksheet-unloading-return.js +22 -5
  15. package/client/pages/inbound/worksheet-unloading.js +8 -0
  16. package/client/pages/inventory/inventory-adjustment-approval.js +18 -8
  17. package/client/pages/inventory/inventory-adjustment.js +91 -76
  18. package/client/pages/inventory/inventory-by-product-detail.js +1 -1
  19. package/client/pages/inventory/inventory-by-product.js +9 -1
  20. package/client/pages/inventory/inventory-history-by-pallet.js +10 -1
  21. package/client/pages/inventory/inventory-history.js +12 -2
  22. package/client/pages/inventory/onhand-inventory.js +12 -3
  23. package/client/pages/inventory-check/create-cycle-count.js +12 -6
  24. package/client/pages/inventory-check/cycle-count-report.js +8 -0
  25. package/client/pages/inventory-check/worksheet-cycle-count.js +14 -0
  26. package/client/pages/master/location-list.js +58 -17
  27. package/client/pages/order/arrival-notice/arrival-notice-detail.js +134 -115
  28. package/client/pages/order/arrival-notice/arrival-notice-list.js +87 -6
  29. package/client/pages/order/arrival-notice/arrival-notice-requests.js +83 -6
  30. package/client/pages/order/arrival-notice/assign-buffer-location.js +8 -1
  31. package/client/pages/order/arrival-notice/check-arrived-notice.js +9 -1
  32. package/client/pages/order/arrival-notice/create-arrival-notice.js +30 -2
  33. package/client/pages/order/arrival-notice/duplicate-arrival-notice.js +290 -25
  34. package/client/pages/order/arrival-notice/edit-product-popup.js +36 -5
  35. package/client/pages/order/arrival-notice/receive-arrival-notice.js +8 -1
  36. package/client/pages/order/release-order/b2b/b2b-order-requests.js +7 -7
  37. package/client/pages/order/release-order/b2c/b2c-order-requests.js +65 -5
  38. package/client/pages/order/release-order/create-release-order.js +24 -1
  39. package/client/pages/order/release-order/receive-release-order-request.js +8 -0
  40. package/client/pages/order/release-order/release-extra-product-popup.js +12 -4
  41. package/client/pages/order/release-order/release-order-detail.js +9 -1
  42. package/client/pages/order/return-order/check-return-order.js +9 -1
  43. package/client/pages/order/return-order/create-return-order.js +14 -2
  44. package/client/pages/order/return-order/receive-return-order-requests.js +9 -1
  45. package/client/pages/order/return-order/return-order-detail.js +15 -6
  46. package/client/pages/order/return-order/return-order-inventory-popup.js +7 -0
  47. package/client/pages/order/transport-order/delivery-order-list.js +4 -1
  48. package/client/pages/outbound/inventory-assign-popup.js +11 -2
  49. package/client/pages/outbound/inventory-auto-assign-popup.js +9 -0
  50. package/client/pages/outbound/merged-outbound-worksheet.js +9 -5
  51. package/client/pages/outbound/picking-product.js +202 -162
  52. package/client/pages/outbound/picking-replacement-popup.js +2 -2
  53. package/client/pages/outbound/single-outbound-worksheet.js +47 -1
  54. package/client/pages/outbound/worksheet-loading.js +22 -5
  55. package/client/pages/outbound/worksheet-packing.js +8 -0
  56. package/client/pages/outbound/worksheet-picking.js +29 -5
  57. package/client/pages/outbound/worksheet-return.js +9 -1
  58. package/client/pages/outbound/worksheet-sorting.js +9 -1
  59. package/client/pages/report/custom-elccl/elccl-inventory-report.js +31 -30
  60. package/client/pages/report/custom-elccl/elccl-inventory-summary-report.js +23 -26
  61. package/client/pages/report/inventory-pallet-storage-report.js +11 -10
  62. package/client/pages/report/inventory-report.js +41 -43
  63. package/client/pages/report/inventory-summary-report.js +25 -28
  64. package/client/route.js +5 -0
  65. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js +1 -1
  66. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js.map +1 -1
  67. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js +1 -1
  68. package/dist-server/graphql/resolvers/index.js +3 -1
  69. package/dist-server/graphql/resolvers/index.js.map +1 -1
  70. package/dist-server/graphql/resolvers/shipping-provider/index.js +6 -0
  71. package/dist-server/graphql/resolvers/shipping-provider/index.js.map +1 -0
  72. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js +20 -0
  73. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js.map +1 -0
  74. package/dist-server/graphql/types/custom/elccl/elccl-inventory-report.js +1 -1
  75. package/dist-server/graphql/types/index.js +5 -2
  76. package/dist-server/graphql/types/index.js.map +1 -1
  77. package/dist-server/graphql/types/shipping-provider/index.js +10 -0
  78. package/dist-server/graphql/types/shipping-provider/index.js.map +1 -0
  79. package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js +13 -0
  80. package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js.map +1 -0
  81. package/dist-server/graphql/types/shipping-provider/shipping-provider.js +13 -0
  82. package/dist-server/graphql/types/shipping-provider/shipping-provider.js.map +1 -0
  83. package/package.json +37 -37
  84. package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.ts +4 -2
  85. package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.ts +1 -1
  86. package/server/graphql/resolvers/index.ts +3 -1
  87. package/server/graphql/resolvers/shipping-provider/index.ts +5 -0
  88. package/server/graphql/resolvers/shipping-provider/shipping-providers.ts +20 -0
  89. package/server/graphql/types/custom/elccl/elccl-inventory-report.ts +1 -1
  90. package/server/graphql/types/index.ts +5 -2
  91. package/server/graphql/types/shipping-provider/index.ts +8 -0
  92. package/server/graphql/types/shipping-provider/shipping-provider-list.ts +7 -0
  93. package/server/graphql/types/shipping-provider/shipping-provider.ts +7 -0
  94. package/things-factory.config.js +6 -0
  95. package/translations/en.json +27 -0
  96. package/translations/ko.json +84 -36
  97. package/translations/ms.json +85 -37
  98. package/translations/zh.json +98 -51
@@ -32,6 +32,7 @@ class WorksheetPicking extends localize(i18next)(PageView) {
32
32
  _worksheetNo: String,
33
33
  _worksheetStatus: String,
34
34
  _roNo: String,
35
+ _statusList: Array,
35
36
  ganNo: String,
36
37
  assignee: Object,
37
38
  productGristConfig: Object,
@@ -119,6 +120,9 @@ class WorksheetPicking extends localize(i18next)(PageView) {
119
120
  super()
120
121
  this.isPalletPickingOrder = false
121
122
  this.worksheetDetailData = { records: [] }
123
+ this._statusList = Object.keys(WORKSHEET_STATUS).map(key => {
124
+ return { value: WORKSHEET_STATUS[key].value, display: WORKSHEET_STATUS[key].name }
125
+ })
122
126
  }
123
127
 
124
128
  get context() {
@@ -211,11 +215,12 @@ class WorksheetPicking extends localize(i18next)(PageView) {
211
215
  : ''}
212
216
 
213
217
  <label>${i18next.t('label.status')}</label>
214
- <select name="status" disabled>
215
- ${Object.keys(WORKSHEET_STATUS).map(
216
- key => html`<option value="${WORKSHEET_STATUS[key].value}">${WORKSHEET_STATUS[key].name}</option>`
217
- )}
218
- </select>
218
+ <input
219
+ name="status"
220
+ value="${this._statusList.find(x => x.value == this._worksheetStatus)?.display || ''}"
221
+ readonly
222
+ disabled
223
+ />
219
224
 
220
225
  <label>${i18next.t('label.assignee')}</label>
221
226
  <input name="assignee" readonly />
@@ -393,6 +398,12 @@ class WorksheetPicking extends localize(i18next)(PageView) {
393
398
  header: i18next.t('field.product'),
394
399
  width: 250
395
400
  },
401
+ {
402
+ type: 'string',
403
+ name: 'productBrand',
404
+ header: i18next.t('field.brand'),
405
+ width: 100
406
+ },
396
407
  {
397
408
  type: 'string',
398
409
  name: 'packingType',
@@ -456,6 +467,12 @@ class WorksheetPicking extends localize(i18next)(PageView) {
456
467
  header: i18next.t('field.product'),
457
468
  width: 250
458
469
  },
470
+ {
471
+ type: 'string',
472
+ name: 'productBrand',
473
+ header: i18next.t('field.brand'),
474
+ width: 100
475
+ },
459
476
  {
460
477
  type: 'string',
461
478
  name: 'packingType',
@@ -647,6 +664,7 @@ class WorksheetPicking extends localize(i18next)(PageView) {
647
664
  name
648
665
  description
649
666
  sku
667
+ brand
650
668
  }
651
669
  packingType
652
670
  packingSize
@@ -747,9 +765,11 @@ class WorksheetPicking extends localize(i18next)(PageView) {
747
765
  (result, ordInv) => {
748
766
  if (ordInv.status === ORDER_INVENTORY_STATUS.PENDING_SPLIT.value) {
749
767
  ordInv.productSku = ordInv.product.sku
768
+ ordInv.productBrand = ordInv.product.brand
750
769
  result.tempOrderInvs.push(ordInv)
751
770
  } else {
752
771
  ordInv.productSku = ordInv.product.sku
772
+ ordInv.productBrand = ordInv.product.brand
753
773
  ordInv.releaseUomValueWithUom = ordInv.releaseUomValue.toFixed(2) + ' ' + ordInv.inventory.uom
754
774
  ordInv.availableQty = ordInv.inventory.qty - ordInv.inventory.lockedQty + ordInv.releaseQty
755
775
  result.completedOrderInvs.push(ordInv)
@@ -887,6 +907,7 @@ class WorksheetPicking extends localize(i18next)(PageView) {
887
907
  product {
888
908
  sku
889
909
  name
910
+ brand
890
911
  description
891
912
  }
892
913
  location {
@@ -914,6 +935,7 @@ class WorksheetPicking extends localize(i18next)(PageView) {
914
935
  ...item.targetInventory.inventory,
915
936
  ...item.targetInventory.inventory.location,
916
937
  productSku: item.targetInventory.inventory.product.sku,
938
+ productBrand: item.targetInventory.inventory.product.brand,
917
939
  description: item.description,
918
940
  releaseUomValueWithUom:
919
941
  item.targetInventory.releaseUomValue.toFixed(2) + ' ' + item.targetInventory.inventory.uom,
@@ -970,6 +992,7 @@ class WorksheetPicking extends localize(i18next)(PageView) {
970
992
  product {
971
993
  sku
972
994
  name
995
+ brand
973
996
  description
974
997
  }
975
998
  zone
@@ -1019,6 +1042,7 @@ class WorksheetPicking extends localize(i18next)(PageView) {
1019
1042
  description: wsd.description,
1020
1043
  status: wsd.status,
1021
1044
  productSku: wsd.targetInventory.inventory.product.sku,
1045
+ productBrand: item.targetInventory.inventory.product.brand,
1022
1046
  releaseQty: wsd.targetInventory.releaseQty,
1023
1047
  releaseUomValue: wsd.targetInventory.releaseUomValue,
1024
1048
  releaseUomValueWithUom:
@@ -101,7 +101,7 @@ class WorksheetReturn extends localize(i18next)(PageView) {
101
101
  accept: ['preview'],
102
102
  content: this
103
103
  },
104
- help: 'operato-wms/outbound/worksheet-return',
104
+ help: 'operato-wms/outbound/worksheet-return'
105
105
  }
106
106
  }
107
107
 
@@ -187,6 +187,12 @@ class WorksheetReturn extends localize(i18next)(PageView) {
187
187
  header: i18next.t('field.product'),
188
188
  width: 350
189
189
  },
190
+ {
191
+ type: 'string',
192
+ name: 'brand',
193
+ header: i18next.t('field.brand'),
194
+ width: 150
195
+ },
190
196
  {
191
197
  type: 'string',
192
198
  name: 'packingType',
@@ -251,6 +257,7 @@ class WorksheetReturn extends localize(i18next)(PageView) {
251
257
  cartonId
252
258
  product {
253
259
  name
260
+ brand
254
261
  description
255
262
  }
256
263
  packingType
@@ -285,6 +292,7 @@ class WorksheetReturn extends localize(i18next)(PageView) {
285
292
  return {
286
293
  ...worksheetDetail.targetInventory.inventory,
287
294
  name: worksheetDetail.name,
295
+ brand: worksheetDetail.targetInventory.inventory.product.brand,
288
296
  description: worksheetDetail.description,
289
297
  releaseQty: worksheetDetail.targetInventory.releaseQty,
290
298
  status: worksheetDetail.status
@@ -189,6 +189,12 @@ class WorksheetSorting extends localize(i18next)(PageView) {
189
189
  header: i18next.t('field.product'),
190
190
  width: 350
191
191
  },
192
+ {
193
+ type: 'string',
194
+ name: 'productBrand',
195
+ header: i18next.t('field.brand'),
196
+ width: 150
197
+ },
192
198
  {
193
199
  type: 'string',
194
200
  name: 'packingType',
@@ -263,6 +269,7 @@ class WorksheetSorting extends localize(i18next)(PageView) {
263
269
  product {
264
270
  name
265
271
  sku
272
+ brand
266
273
  description
267
274
  }
268
275
  }
@@ -292,7 +299,8 @@ class WorksheetSorting extends localize(i18next)(PageView) {
292
299
  ...worksheetDetail.targetInventory,
293
300
  ...worksheetDetail.targetInventory.product,
294
301
  ...worksheetDetail.targetInventory.inventory,
295
- productSku: worksheetDetail.targetInventory.inventory.product.sku
302
+ productSku: worksheetDetail.targetInventory.inventory.product.sku,
303
+ productBrand: worksheetDetail.targetInventory.inventory.product.brand
296
304
  }
297
305
  })
298
306
  }
@@ -183,10 +183,10 @@ class ElcclInventoryReport extends connect(store)(localize(i18next)(PageView)) {
183
183
  },
184
184
  {
185
185
  type: 'string',
186
- name: 'orderName',
186
+ name: 'orderNo',
187
187
  header: i18next.t('field.order_no'),
188
188
  sortable: true,
189
- imex: { header: i18next.t('field.order_no'), key: 'orderName', width: 25, type: 'string' },
189
+ imex: { header: i18next.t('field.order_no'), key: 'orderNo', width: 25, type: 'string' },
190
190
  width: 300
191
191
  },
192
192
  {
@@ -235,7 +235,7 @@ class ElcclInventoryReport extends connect(store)(localize(i18next)(PageView)) {
235
235
  this._config = this.reportConfig
236
236
  }
237
237
 
238
- async pageUpdated(changes, lifecycle) {
238
+ pageUpdated(changes, lifecycle) {
239
239
  if (this.active) {
240
240
  this.report.fetch()
241
241
  }
@@ -247,30 +247,8 @@ class ElcclInventoryReport extends connect(store)(localize(i18next)(PageView)) {
247
247
 
248
248
  const response = await client.query({
249
249
  query: gql`
250
- query {
251
- elcclInventoryHistoryReport(${gqlBuilder.buildArgs({
252
- filters: [
253
- ...this.searchForm.queryFilters.map(filter => {
254
- switch (filter.name) {
255
- case 'fromDate':
256
- let fromDt = new Date(filter.value)
257
- fromDt.setHours(0)
258
- filter.value = fromDt.toISOString()
259
- break
260
- case 'toDate':
261
- let toDt = new Date(filter.value)
262
- toDt.setHours(23, 59, 59)
263
- filter.value = toDt.toISOString()
264
- break
265
- default:
266
- break
267
- }
268
- return filter
269
- })
270
- ],
271
- pagination: { page, limit },
272
- sortings: sorters
273
- })}) {
250
+ query elcclInventoryHistoryReport($filters: [Filter], $pagination: Pagination, $sortings: [Sorting]) {
251
+ elcclInventoryHistoryReport(filters: $filters, pagination: $pagination, sortings: $sortings) {
274
252
  batchId
275
253
  product {
276
254
  sku
@@ -283,11 +261,34 @@ class ElcclInventoryReport extends connect(store)(localize(i18next)(PageView)) {
283
261
  openingUomValue
284
262
  qty
285
263
  uomValue
286
- orderName
264
+ orderNo
287
265
  createdAt
288
266
  }
289
267
  }
290
- `
268
+ `,
269
+ variables: {
270
+ filters: [
271
+ ...this.searchForm.queryFilters.map(filter => {
272
+ switch (filter.name) {
273
+ case 'fromDate':
274
+ let fromDt = new Date(filter.value)
275
+ fromDt.setHours(0)
276
+ filter.value = fromDt.toISOString()
277
+ break
278
+ case 'toDate':
279
+ let toDt = new Date(filter.value)
280
+ toDt.setHours(23, 59, 59)
281
+ filter.value = toDt.toISOString()
282
+ break
283
+ default:
284
+ break
285
+ }
286
+ return filter
287
+ })
288
+ ],
289
+ pagination: { page, limit },
290
+ sortings: sorters
291
+ }
291
292
  })
292
293
  return {
293
294
  total: 0,
@@ -302,7 +303,7 @@ class ElcclInventoryReport extends connect(store)(localize(i18next)(PageView)) {
302
303
  }) || []
303
304
  }
304
305
  } catch (e) {
305
- console.log(e)
306
+ this._showToast(e)
306
307
  }
307
308
  }
308
309
 
@@ -7,7 +7,7 @@ import { connect } from 'pwa-helpers/connect-mixin'
7
7
 
8
8
  import { i18next, localize } from '@things-factory/i18n-base'
9
9
  import { client, PageView, store } from '@things-factory/shell'
10
- import { flattenObject, gqlBuilder, isMobileDevice } from '@things-factory/utils'
10
+ import { flattenObject, isMobileDevice } from '@things-factory/utils'
11
11
 
12
12
  class ElcclInventorySummaryReport extends connect(store)(localize(i18next)(PageView)) {
13
13
  static get styles() {
@@ -243,7 +243,7 @@ class ElcclInventorySummaryReport extends connect(store)(localize(i18next)(PageV
243
243
  this._config = this.reportConfig
244
244
  }
245
245
 
246
- async pageUpdated(changes, lifecycle) {
246
+ pageUpdated(changes, lifecycle) {
247
247
  if (this.active) {
248
248
  this.dataGrist.fetch()
249
249
  }
@@ -271,33 +271,30 @@ class ElcclInventorySummaryReport extends connect(store)(localize(i18next)(PageV
271
271
  })
272
272
  const response = await client.query({
273
273
  query: gql`
274
- query {
275
- elcclInventoryHistorySummaryReport(${gqlBuilder.buildArgs({
276
- filters: filter,
277
- pagination: { page, limit },
278
- sortings: sorters
279
- })}) {
280
- items{
281
- batchId
282
- packingType
283
- product{
284
- id
285
- sku
286
- name
287
- description
288
- }
289
- adjustmentQty
290
- closingQty
291
- totalInQty
292
- totalOutQty
293
- totalReturnQty
294
- initialQty
295
- initialDate
274
+ query elcclInventoryHistorySummaryReport($filters: [Filter], $pagination: Pagination, $sortings: [Sorting]) {
275
+ elcclInventoryHistorySummaryReport(filters: $filters, pagination: $pagination, sortings: $sortings) {
276
+ items {
277
+ batchId
278
+ packingType
279
+ product {
280
+ id
281
+ sku
282
+ name
283
+ description
296
284
  }
297
- total
285
+ adjustmentQty
286
+ closingQty
287
+ totalInQty
288
+ totalOutQty
289
+ totalReturnQty
290
+ initialQty
291
+ initialDate
298
292
  }
293
+ total
299
294
  }
300
- `
295
+ }
296
+ `,
297
+ variables: { filters: filter, pagination: { page, limit }, sortings: sorters }
301
298
  })
302
299
  return {
303
300
  total: response.data.elcclInventoryHistorySummaryReport.total,
@@ -8,7 +8,7 @@ import { connect } from 'pwa-helpers/connect-mixin'
8
8
  import { getCodeByName } from '@things-factory/code-base'
9
9
  import { i18next, localize } from '@things-factory/i18n-base'
10
10
  import { client, PageView, store } from '@things-factory/shell'
11
- import { flattenObject, gqlBuilder, isMobileDevice } from '@things-factory/utils'
11
+ import { flattenObject, isMobileDevice } from '@things-factory/utils'
12
12
 
13
13
  class InventoryPalletStorageReport extends connect(store)(localize(i18next)(PageView)) {
14
14
  static get styles() {
@@ -254,7 +254,7 @@ class InventoryPalletStorageReport extends connect(store)(localize(i18next)(Page
254
254
  this._config = this.reportConfig
255
255
  }
256
256
 
257
- async pageUpdated(changes, lifecycle) {
257
+ pageUpdated(changes, lifecycle) {
258
258
  if (this.active) {
259
259
  this.dataGrist.fetch()
260
260
  }
@@ -285,13 +285,13 @@ class InventoryPalletStorageReport extends connect(store)(localize(i18next)(Page
285
285
 
286
286
  const response = await client.query({
287
287
  query: gql`
288
- query {
289
- inventoryHistoryPalletStorageReport(${gqlBuilder.buildArgs({
290
- filters: filter,
291
- pagination: { page, limit },
292
- sortings: sorters
293
- })}) {
294
- items{
288
+ query inventoryHistoryPalletStorageReport(
289
+ $filters: [Filter!]
290
+ $pagination: Pagination
291
+ $sortings: [Sorting!]
292
+ ) {
293
+ inventoryHistoryPalletStorageReport(filters: $filters, pagination: $pagination, sortings: $sortings) {
294
+ items {
295
295
  bizplace {
296
296
  name
297
297
  }
@@ -309,7 +309,8 @@ class InventoryPalletStorageReport extends connect(store)(localize(i18next)(Page
309
309
  totalWithOpeningBalance
310
310
  }
311
311
  }
312
- `
312
+ `,
313
+ variables: { filters: filter, pagination: { page, limit }, sortings: sorters }
313
314
  })
314
315
 
315
316
  let data = {
@@ -7,7 +7,7 @@ import { connect } from 'pwa-helpers/connect-mixin'
7
7
 
8
8
  import { i18next, localize } from '@things-factory/i18n-base'
9
9
  import { client, PageView, store } from '@things-factory/shell'
10
- import { flattenObject, gqlBuilder } from '@things-factory/utils'
10
+ import { flattenObject } from '@things-factory/utils'
11
11
 
12
12
  class InventoryReport extends connect(store)(localize(i18next)(PageView)) {
13
13
  static get styles() {
@@ -208,10 +208,10 @@ class InventoryReport extends connect(store)(localize(i18next)(PageView)) {
208
208
  },
209
209
  {
210
210
  type: 'string',
211
- name: 'orderName',
211
+ name: 'orderNo',
212
212
  header: i18next.t('field.order_no'),
213
213
  sortable: true,
214
- imex: { header: i18next.t('field.order_no'), key: 'orderName', width: 25, type: 'string' },
214
+ imex: { header: i18next.t('field.order_no'), key: 'orderNo', width: 25, type: 'string' },
215
215
  width: 300
216
216
  },
217
217
  {
@@ -260,7 +260,7 @@ class InventoryReport extends connect(store)(localize(i18next)(PageView)) {
260
260
  this._config = this.reportConfig
261
261
  }
262
262
 
263
- async pageUpdated(changes, lifecycle) {
263
+ pageUpdated(changes, lifecycle) {
264
264
  if (this.active) {
265
265
  this.report.fetch()
266
266
  }
@@ -273,32 +273,8 @@ class InventoryReport extends connect(store)(localize(i18next)(PageView)) {
273
273
  var tzoffset = new Date().getTimezoneOffset() * 60
274
274
  const response = await client.query({
275
275
  query: gql`
276
- query {
277
- inventoryHistoryReport(${gqlBuilder.buildArgs({
278
- filters: [
279
- ...this.searchForm.queryFilters.map(filter => {
280
- switch (filter.name) {
281
- case 'fromDate':
282
- let fromDt = new Date(filter.value)
283
- fromDt.setHours(0)
284
- filter.value = fromDt.toISOString()
285
- break
286
- case 'toDate':
287
- let toDt = new Date(filter.value)
288
- toDt.setHours(23, 59, 59)
289
- filter.value = toDt.toISOString()
290
- break
291
- default:
292
- break
293
- }
294
-
295
- return filter
296
- }),
297
- { name: 'tzoffset', operator: 'custom', value: tzoffset }
298
- ],
299
- pagination: { page, limit },
300
- sortings: sorters
301
- })}) {
276
+ query inventoryHistoryReport($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
277
+ inventoryHistoryReport(filters: $filters, pagination: $pagination, sortings: $sortings) {
302
278
  palletId
303
279
  batchId
304
280
  bizplace {
@@ -313,15 +289,38 @@ class InventoryReport extends connect(store)(localize(i18next)(PageView)) {
313
289
  qty
314
290
  uom
315
291
  uomValue
316
- status
317
292
  packingType
318
- transactionType
319
- orderName
293
+ orderNo
320
294
  orderRefNo
321
295
  createdAt
322
296
  }
323
297
  }
324
- `
298
+ `,
299
+ variables: {
300
+ filters: [
301
+ ...this.searchForm.queryFilters.map(filter => {
302
+ switch (filter.name) {
303
+ case 'fromDate':
304
+ let fromDt = new Date(filter.value)
305
+ fromDt.setHours(0)
306
+ filter.value = fromDt.toISOString()
307
+ break
308
+ case 'toDate':
309
+ let toDt = new Date(filter.value)
310
+ toDt.setHours(23, 59, 59)
311
+ filter.value = toDt.toISOString()
312
+ break
313
+ default:
314
+ break
315
+ }
316
+
317
+ return filter
318
+ }),
319
+ { name: 'tzoffset', operator: 'custom', value: tzoffset }
320
+ ],
321
+ pagination: { page, limit },
322
+ sortings: sorters
323
+ }
325
324
  })
326
325
  return {
327
326
  total: 0,
@@ -411,17 +410,16 @@ class InventoryReport extends connect(store)(localize(i18next)(PageView)) {
411
410
  } else {
412
411
  const response = await client.query({
413
412
  query: gql`
414
- query {
415
- productsByBizplace(${gqlBuilder.buildArgs({
416
- filters: [...bizplace]
417
- })}) {
418
- items {
419
- id
420
- name
421
- }
413
+ query productsByBizplace($filters: [Filter!]) {
414
+ productsByBizplace(filters: $filters) {
415
+ items {
416
+ id
417
+ name
422
418
  }
423
419
  }
424
- `
420
+ }
421
+ `,
422
+ variables: { filters: [...bizplace] }
425
423
  })
426
424
 
427
425
  if (!response.errors) {
@@ -10,7 +10,7 @@ import { getPartnerCodeByName } from '@things-factory/code-base'
10
10
  import { i18next, localize } from '@things-factory/i18n-base'
11
11
  import { openPopup } from '@things-factory/layout-base'
12
12
  import { client, PageView, store } from '@things-factory/shell'
13
- import { flattenObject, gqlBuilder, isMobileDevice } from '@things-factory/utils'
13
+ import { flattenObject, isMobileDevice } from '@things-factory/utils'
14
14
 
15
15
  class InventorySummaryReport extends connect(store)(localize(i18next)(PageView)) {
16
16
  static get styles() {
@@ -320,7 +320,7 @@ class InventorySummaryReport extends connect(store)(localize(i18next)(PageView))
320
320
  this._config = this.reportConfig
321
321
  }
322
322
 
323
- async pageUpdated(changes, lifecycle) {
323
+ pageUpdated(changes, lifecycle) {
324
324
  if (this.active) {
325
325
  this.dataGrist.fetch()
326
326
  }
@@ -349,35 +349,32 @@ class InventorySummaryReport extends connect(store)(localize(i18next)(PageView))
349
349
  })
350
350
  const response = await client.query({
351
351
  query: gql`
352
- query {
353
- inventoryHistorySummaryReport(${gqlBuilder.buildArgs({
354
- filters: filter,
355
- pagination: { page, limit },
356
- sortings: sorters
357
- })}) {
358
- items{
359
- batchId
360
- packingType
361
- packingSize
362
- product{
363
- id
364
- sku
365
- name
366
- description
367
- type
368
- }
369
- openingQty
370
- totalInQty
371
- totalOutQty
372
- adjustmentQty
373
- closingQty
352
+ query inventoryHistorySummaryReport($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
353
+ inventoryHistorySummaryReport(filters: $filters, pagination: $pagination, sortings: $sortings) {
354
+ items {
355
+ batchId
356
+ packingType
357
+ packingSize
358
+ product {
359
+ id
360
+ sku
361
+ name
362
+ description
363
+ type
374
364
  }
375
- total
376
- totalInboundQty
377
- totalOpeningBal
365
+ openingQty
366
+ totalInQty
367
+ totalOutQty
368
+ adjustmentQty
369
+ closingQty
378
370
  }
371
+ total
372
+ totalInboundQty
373
+ totalOpeningBal
379
374
  }
380
- `
375
+ }
376
+ `,
377
+ variables: { filters: filter, pagination: { page, limit }, sortings: sorters }
381
378
  })
382
379
 
383
380
  const data = {
package/client/route.js CHANGED
@@ -514,5 +514,10 @@ export default function route(page) {
514
514
  case 'execute_reverse_kitting':
515
515
  import('./pages/vas/reverse-kitting/execute-reverse-kitting')
516
516
  return page
517
+
518
+ /* Bulk Operations */
519
+ case 'bulk_operation':
520
+ import('./pages/bulk-operation/bulk-operation')
521
+ return page
517
522
  }
518
523
  }
@@ -145,7 +145,7 @@ exports.elcclInventoryHistoryReport = {
145
145
  uomValue: itm.uom_value,
146
146
  openingQty: itm.opening_qty,
147
147
  openingUomValue: itm.opening_uom_value,
148
- orderName: itm.order_name,
148
+ orderNo: itm.order_name,
149
149
  createdAt: itm.created_at
150
150
  };
151
151
  });
@@ -1 +1 @@
1
- {"version":3,"file":"elccl-inventory-history-report.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elccl-inventory-history-report.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,7 @@ async function inventoryHistorySummaryReportQuery(_, params, context) {
46
46
  await tx.query(`
47
47
  create temp table temp_inv_history on commit drop as (
48
48
  select i2.pallet_id, ih.product_id::uuid, ih.packing_type, ih.batch_id,
49
- ih.id as inventory_history_id, ih.seq, ih.status, ih.transaction_type, ih.qty, ih.opening_qty, ih.weight, ih.opening_weight, ih.created_at,
49
+ ih.id as inventory_history_id, ih.seq, ih.status, ih.transaction_type, ih.qty, ih.opening_qty, ih.created_at,
50
50
  ih.ref_order_id::uuid as ref_order_id
51
51
  from inventories i2
52
52
  inner join reduced_inventory_histories ih on ih.pallet_id = i2.pallet_id and ih.domain_id = i2.domain_id