@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.
Files changed (206) hide show
  1. package/client/pages/bulk-operation/bulk-operation.js +96 -8
  2. package/client/pages/bulk-operation/validate-gan-popup.js +37 -27
  3. package/client/pages/bulk-operation/validate-ro-popup.js +40 -0
  4. package/client/pages/components/select-inventory-popup.js +633 -0
  5. package/client/pages/constants/order.js +2 -1
  6. package/client/pages/inbound/pallet-label-popup.js +2 -0
  7. package/client/pages/inbound/select-product-batch.js +7 -1
  8. package/client/pages/inbound/undo-unload-popup.js +37 -21
  9. package/client/pages/inbound/unload-product.js +147 -59
  10. package/client/pages/inbound/worksheet-putaway.js +1 -1
  11. package/client/pages/inbound/worksheet-unloading.js +11 -7
  12. package/client/pages/inventory/inventory-adjustment.js +261 -238
  13. package/client/pages/inventory/inventory-by-product-detail.js +99 -92
  14. package/client/pages/inventory/inventory-by-product.js +170 -68
  15. package/client/pages/inventory/onhand-inventory.js +10 -12
  16. package/client/pages/inventory/serial-number-list-popup.js +36 -5
  17. package/client/pages/inventory-check/inspecting-product.js +1 -1
  18. package/client/pages/manifest/create-loading-manifest.js +47 -22
  19. package/client/pages/manifest/dispatcher-verification-popup.js +24 -13
  20. package/client/pages/manifest/loading-manifest-detail.js +311 -46
  21. package/client/pages/manifest/loading-manifest-list.js +86 -13
  22. package/client/pages/order/arrival-notice/arrival-notice-detail.js +305 -52
  23. package/client/pages/order/arrival-notice/arrival-notice-list.js +20 -1
  24. package/client/pages/order/arrival-notice/create-arrival-notice.js +2 -2
  25. package/client/pages/order/goods-received-note/received-note-detail.js +187 -15
  26. package/client/pages/order/release-order/b2b/b2b-order-list.js +76 -80
  27. package/client/pages/order/release-order/b2c/b2c-order-requests.js +148 -123
  28. package/client/pages/order/release-order/batch-picking-popup.js +11 -0
  29. package/client/pages/order/release-order/create-release-order.js +762 -250
  30. package/client/pages/order/release-order/release-extra-product-popup.js +10 -3
  31. package/client/pages/order/release-order/release-order-detail.js +897 -215
  32. package/client/pages/order/transport-order/delivery-note-popup.js +1050 -107
  33. package/client/pages/order/transport-order/print-delivery-note.js +214 -33
  34. package/client/pages/order/transport-order/upload-delivery-note.js +6 -4
  35. package/client/pages/order/transport-order/view-delivery-note.js +0 -1
  36. package/client/pages/outbound/generate-worksheet-popup.js +374 -0
  37. package/client/pages/outbound/inventory-reassign-popup.js +1097 -0
  38. package/client/pages/outbound/loading-product.js +88 -78
  39. package/client/pages/outbound/merged-outbound-worksheet.js +1 -1
  40. package/client/pages/outbound/packing-product.js +193 -82
  41. package/client/pages/outbound/packing-worksheet-list.js +10 -9
  42. package/client/pages/outbound/picking-product.js +979 -905
  43. package/client/pages/outbound/route-label-popup.js +283 -191
  44. package/client/pages/outbound/serial-number-popup.js +1 -0
  45. package/client/pages/outbound/sorting-product.js +12 -12
  46. package/client/pages/outbound/worksheet-batch-picking.js +39 -5
  47. package/client/pages/outbound/worksheet-packing.js +17 -4
  48. package/client/pages/outbound/worksheet-picking.js +45 -6
  49. package/client/pages/report/inbound-serial-number-report.js +86 -9
  50. package/client/pages/report/inventory-report.js +10 -0
  51. package/client/pages/report/inventory-summary-report.js +28 -19
  52. package/client/pages/report/outbound-order-details-report.js +204 -43
  53. package/client/pages/report/outbound-serial-number-report.js +87 -9
  54. package/client/pages/report/release-inventory-report.js +503 -0
  55. package/client/route.js +5 -0
  56. package/client/util/index.js +2 -0
  57. package/client/util/page-settings.js +43 -0
  58. package/client/util/toast.js +10 -0
  59. package/dist-server/graphql/resolvers/board-setting/board-settings.js +3 -3
  60. package/dist-server/graphql/resolvers/board-setting/board-settings.js.map +1 -1
  61. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js +2 -2
  62. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js.map +1 -1
  63. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js +1 -1
  64. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js.map +1 -1
  65. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js +2 -2
  66. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js.map +1 -1
  67. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js +9 -10
  68. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js.map +1 -1
  69. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js +2 -2
  70. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js.map +1 -1
  71. package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js +6 -4
  72. package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js.map +1 -1
  73. package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js +6 -4
  74. package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js.map +1 -1
  75. package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js +21 -10
  76. package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js.map +1 -1
  77. package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js +1 -2
  78. package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js.map +1 -1
  79. package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js +1 -2
  80. package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js.map +1 -1
  81. package/dist-server/graphql/resolvers/dashboard/index.js +2 -1
  82. package/dist-server/graphql/resolvers/dashboard/index.js.map +1 -1
  83. package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js +17 -1
  84. package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js.map +1 -1
  85. package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js +113 -75
  86. package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js.map +1 -1
  87. package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js +21 -10
  88. package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js.map +1 -1
  89. package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js +56 -0
  90. package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js.map +1 -0
  91. package/dist-server/graphql/resolvers/index.js +5 -4
  92. package/dist-server/graphql/resolvers/index.js.map +1 -1
  93. package/dist-server/graphql/resolvers/inventory-comparison/inventory-comparison-list.js.map +1 -1
  94. package/dist-server/graphql/resolvers/opa-menu/opa-menus.js +8 -7
  95. package/dist-server/graphql/resolvers/opa-menu/opa-menus.js.map +1 -1
  96. package/dist-server/graphql/resolvers/{extra → other}/add-release-good-products.js +59 -8
  97. package/dist-server/graphql/resolvers/other/add-release-good-products.js.map +1 -0
  98. package/dist-server/graphql/resolvers/{extra → other}/index.js +3 -1
  99. package/dist-server/graphql/resolvers/other/index.js.map +1 -0
  100. package/dist-server/graphql/resolvers/other/page-settings.js +87 -0
  101. package/dist-server/graphql/resolvers/other/page-settings.js.map +1 -0
  102. package/dist-server/graphql/resolvers/reports/costing-report.js +4 -4
  103. package/dist-server/graphql/resolvers/reports/costing-report.js.map +1 -1
  104. package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js +3 -3
  105. package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js.map +1 -1
  106. package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js +36 -7
  107. package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js.map +1 -1
  108. package/dist-server/graphql/resolvers/reports/index.js +2 -1
  109. package/dist-server/graphql/resolvers/reports/index.js.map +1 -1
  110. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js +69 -30
  111. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js.map +1 -1
  112. package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js +36 -11
  113. package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js.map +1 -1
  114. package/dist-server/graphql/resolvers/reports/product-label-report.js +3 -3
  115. package/dist-server/graphql/resolvers/reports/product-label-report.js.map +1 -1
  116. package/dist-server/graphql/resolvers/reports/release-inventory-report.js +180 -0
  117. package/dist-server/graphql/resolvers/reports/release-inventory-report.js.map +1 -0
  118. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js +2 -2
  119. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js.map +1 -1
  120. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js +1 -1
  121. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js.map +1 -1
  122. package/dist-server/graphql/types/dashboard/index.js +1 -0
  123. package/dist-server/graphql/types/dashboard/index.js.map +1 -1
  124. package/dist-server/graphql/types/index.js +7 -2
  125. package/dist-server/graphql/types/index.js.map +1 -1
  126. package/dist-server/graphql/types/other/index.js +19 -0
  127. package/dist-server/graphql/types/other/index.js.map +1 -0
  128. package/dist-server/graphql/types/other/page-setting.js +34 -0
  129. package/dist-server/graphql/types/other/page-setting.js.map +1 -0
  130. package/dist-server/graphql/types/reports/index.js +6 -1
  131. package/dist-server/graphql/types/reports/index.js.map +1 -1
  132. package/dist-server/graphql/types/reports/outbound-order-details-report.js +17 -1
  133. package/dist-server/graphql/types/reports/outbound-order-details-report.js.map +1 -1
  134. package/dist-server/graphql/types/reports/release-inventory-report-list.js +12 -0
  135. package/dist-server/graphql/types/reports/release-inventory-report-list.js.map +1 -0
  136. package/dist-server/graphql/types/reports/release-inventory-report.js +27 -0
  137. package/dist-server/graphql/types/reports/release-inventory-report.js.map +1 -0
  138. package/dist-server/migrations/1568858861188-SeedSetting.js +5 -6
  139. package/dist-server/migrations/1568858861188-SeedSetting.js.map +1 -1
  140. package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js +1 -1
  141. package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js.map +1 -1
  142. package/dist-server/migrations/1623381200659-SeedStoringRule.js +1 -1
  143. package/dist-server/migrations/1623381200659-SeedStoringRule.js.map +1 -1
  144. package/dist-server/tsconfig.tsbuildinfo +1 -1
  145. package/dist-server/utils/report-query-util.js +5 -2
  146. package/dist-server/utils/report-query-util.js.map +1 -1
  147. package/helps/release-note.ko.md +8 -20
  148. package/helps/release-note.md +8 -20
  149. package/helps/release-note.ms.md +8 -20
  150. package/helps/release-note.zh.md +8 -20
  151. package/package.json +42 -42
  152. package/server/graphql/resolvers/board-setting/board-settings.ts +4 -6
  153. package/server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.ts +4 -5
  154. package/server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.ts +9 -10
  155. package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.ts +4 -5
  156. package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.ts +17 -19
  157. package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.ts +10 -8
  158. package/server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.ts +9 -9
  159. package/server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.ts +9 -9
  160. package/server/graphql/resolvers/dashboard/arrival-notices-by-status.ts +23 -14
  161. package/server/graphql/resolvers/dashboard/collection-orders-by-status.ts +4 -5
  162. package/server/graphql/resolvers/dashboard/delivery-orders-by-status.ts +4 -5
  163. package/server/graphql/resolvers/dashboard/index.ts +3 -1
  164. package/server/graphql/resolvers/dashboard/inventory-expiry-monitor.ts +18 -6
  165. package/server/graphql/resolvers/dashboard/outbound-order-by-status.ts +114 -81
  166. package/server/graphql/resolvers/dashboard/release-goods-by-status.ts +23 -14
  167. package/server/graphql/resolvers/dashboard/unit-inbounded-outbounded.ts +61 -0
  168. package/server/graphql/resolvers/index.ts +5 -4
  169. package/server/graphql/resolvers/inventory-comparison/inventory-comparison-list.ts +11 -9
  170. package/server/graphql/resolvers/opa-menu/opa-menus.ts +7 -6
  171. package/server/graphql/resolvers/{extra → other}/add-release-good-products.ts +73 -12
  172. package/server/graphql/resolvers/other/index.ts +10 -0
  173. package/server/graphql/resolvers/other/page-settings.ts +105 -0
  174. package/server/graphql/resolvers/reports/costing-report.ts +8 -10
  175. package/server/graphql/resolvers/reports/inbound-order-details-report.ts +7 -9
  176. package/server/graphql/resolvers/reports/inbound-serial-number-report.ts +41 -13
  177. package/server/graphql/resolvers/reports/index.ts +3 -1
  178. package/server/graphql/resolvers/reports/outbound-order-details-report.ts +76 -38
  179. package/server/graphql/resolvers/reports/outbound-serial-number-report.ts +42 -18
  180. package/server/graphql/resolvers/reports/product-label-report.ts +4 -6
  181. package/server/graphql/resolvers/reports/release-inventory-report.ts +201 -0
  182. package/server/graphql/resolvers/shipping-provider/shipping-providers.ts +3 -5
  183. package/server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.ts +10 -10
  184. package/server/graphql/types/dashboard/index.ts +1 -0
  185. package/server/graphql/types/index.ts +8 -2
  186. package/server/graphql/types/other/index.ts +19 -0
  187. package/server/graphql/types/other/page-setting.ts +33 -0
  188. package/server/graphql/types/reports/index.ts +6 -1
  189. package/server/graphql/types/reports/outbound-order-details-report.ts +17 -1
  190. package/server/graphql/types/reports/release-inventory-report-list.ts +8 -0
  191. package/server/graphql/types/reports/release-inventory-report.ts +23 -0
  192. package/server/migrations/1568858861188-SeedSetting.ts +4 -4
  193. package/server/migrations/1623308919899-SeedLocationRecommendSetting.ts +3 -2
  194. package/server/migrations/1623381200659-SeedStoringRule.ts +3 -2
  195. package/server/utils/report-query-util.ts +5 -2
  196. package/things-factory.config.js +4 -0
  197. package/translations/en.json +148 -27
  198. package/translations/ko.json +185 -105
  199. package/translations/ms.json +183 -98
  200. package/translations/zh.json +197 -112
  201. package/dist-server/graphql/resolvers/extra/add-release-good-products.js.map +0 -1
  202. package/dist-server/graphql/resolvers/extra/index.js.map +0 -1
  203. package/dist-server/graphql/types/extra/index.js +0 -11
  204. package/dist-server/graphql/types/extra/index.js.map +0 -1
  205. package/server/graphql/resolvers/extra/index.ts +0 -5
  206. package/server/graphql/types/extra/index.ts +0 -7
@@ -94,8 +94,6 @@ class OnhandInventory extends connect(store)(localize(i18next)(PageView)) {
94
94
  'location',
95
95
  'remainQty',
96
96
  'expirationDate',
97
- 'nonLoadedQty',
98
- 'nonLoadedUomValue',
99
97
  'uomValue',
100
98
  'uom'
101
99
  ]
@@ -180,17 +178,11 @@ class OnhandInventory extends connect(store)(localize(i18next)(PageView)) {
180
178
  header: i18next.t('field.total_uom_value'),
181
179
  width: 110
182
180
  },
183
- {
184
- type: 'string',
185
- name: 'uom',
186
- header: i18next.t('field.uom'),
187
- width: 80
188
- },
189
181
  {
190
182
  type: 'number',
191
183
  name: 'nonLoadedQty',
192
184
  header: i18next.t('field.non_loaded_qty'),
193
- width: 110
185
+ width: 80
194
186
  },
195
187
  {
196
188
  type: 'float',
@@ -198,6 +190,12 @@ class OnhandInventory extends connect(store)(localize(i18next)(PageView)) {
198
190
  header: i18next.t('field.non_loaded_uom_value'),
199
191
  width: 110
200
192
  },
193
+ {
194
+ type: 'string',
195
+ name: 'uom',
196
+ header: i18next.t('field.uom'),
197
+ width: 80
198
+ },
201
199
  {
202
200
  type: 'string',
203
201
  name: 'location_name',
@@ -407,8 +405,6 @@ class OnhandInventory extends connect(store)(localize(i18next)(PageView)) {
407
405
  packingType
408
406
  uom
409
407
  uomValue
410
- nonLoadedQty
411
- nonLoadedUomValue
412
408
  bizplace {
413
409
  id
414
410
  name
@@ -424,6 +420,8 @@ class OnhandInventory extends connect(store)(localize(i18next)(PageView)) {
424
420
  }
425
421
  qty
426
422
  remainQty
423
+ nonLoadedQty
424
+ nonLoadedUomValue
427
425
  warehouse {
428
426
  id
429
427
  name
@@ -526,9 +524,9 @@ class OnhandInventory extends connect(store)(localize(i18next)(PageView)) {
526
524
  { header: i18next.t('field.packing_type'), key: 'packingType', width: 20, type: 'string' },
527
525
  { header: i18next.t('field.qty'), key: 'remainQty', width: 15, type: 'string' },
528
526
  { header: i18next.t('field.total_uom_value'), key: 'uomValue', width: 25, type: 'string' },
529
- { header: i18next.t('field.uom'), key: 'uom', width: 15, type: 'string' },
530
527
  { header: i18next.t('field.non_loaded_qty'), key: 'nonLoadedQty', width: 25, type: 'string' },
531
528
  { header: i18next.t('field.non_loaded_uom_value'), key: 'nonLoadedUomValue', width: 25, type: 'string' },
529
+ { header: i18next.t('field.uom'), key: 'uom', width: 15, type: 'string' },
532
530
  { header: i18next.t('field.location'), key: 'location_name', width: 25, type: 'string' },
533
531
  { header: i18next.t('field.remark'), key: 'remark', width: 40, type: 'string' },
534
532
  { header: i18next.t('field.exp_date'), key: 'expirationDate', width: 30, type: 'date' },
@@ -63,7 +63,8 @@ class SerialNumberListPopup extends localize(i18next)(LitElement) {
63
63
  _currentSerialNumber: String,
64
64
  adjustmentType: String,
65
65
  enableRemove: Boolean,
66
- enableUpdateBtn: Boolean
66
+ enableUpdateBtn: Boolean,
67
+ checkDuplicate: Boolean
67
68
  }
68
69
  }
69
70
 
@@ -85,6 +86,7 @@ class SerialNumberListPopup extends localize(i18next)(LitElement) {
85
86
  super()
86
87
  this.enableRemove = true
87
88
  this.enableUpdateBtn = true
89
+ this.checkDuplicate = false
88
90
  }
89
91
 
90
92
  render() {
@@ -212,9 +214,20 @@ class SerialNumberListPopup extends localize(i18next)(LitElement) {
212
214
  }
213
215
  } else {
214
216
  this._selectedInventoryItem = record
215
- this.createInventoryItemChange(INVENTORY_ITEM_CHANGE_TYPE.REMOVED.value)
216
217
 
217
- this.data.total -= 1
218
+ let dt = this.data
219
+ dt.records[rowIndex].type =
220
+ record.type == INVENTORY_ITEM_CHANGE_TYPE.REMOVED.value
221
+ ? ''
222
+ : INVENTORY_ITEM_CHANGE_TYPE.REMOVED.value
223
+
224
+ this.data = { ...dt }
225
+
226
+ this.checkDuplicate === false
227
+ ? (this.data.total = dt.records.filter(
228
+ x => x.type != INVENTORY_ITEM_CHANGE_TYPE.REMOVED.value
229
+ ).length)
230
+ : ''
218
231
  }
219
232
 
220
233
  this.clearView()
@@ -260,6 +273,7 @@ class SerialNumberListPopup extends localize(i18next)(LitElement) {
260
273
  this._selectedInventoryItem = null
261
274
  if (this.serialNumberInput) this.serialNumberInput.value = ''
262
275
  this._currentSerialNumber = ''
276
+ this._checkDuplicated = false
263
277
  }
264
278
 
265
279
  async fetchInventoryItems() {
@@ -312,9 +326,10 @@ class SerialNumberListPopup extends localize(i18next)(LitElement) {
312
326
 
313
327
  if (this.inventory?.inventoryItemChanges) {
314
328
  let existingInventoryItemChanges = JSON.parse(this.inventory.inventoryItemChanges)
329
+
315
330
  records.push(...existingInventoryItemChanges)
316
331
 
317
- total += existingInventoryItemChanges.length
332
+ total = records.length
318
333
  }
319
334
 
320
335
  this.data = {
@@ -396,6 +411,20 @@ class SerialNumberListPopup extends localize(i18next)(LitElement) {
396
411
  }
397
412
  }
398
413
 
414
+ const duplicated = this.data.records.findIndex(
415
+ res =>
416
+ res.transactionType == 'CHANGES' &&
417
+ res.type == 'REMOVED' &&
418
+ res.serialNumber == inventoryItemChange.serialNumber
419
+ )
420
+
421
+ if (duplicated > 0) {
422
+ this.checkDuplicate = true
423
+ throw new Error(i18next.t('text.duplicated_romoval_on_same_sn'))
424
+ }
425
+
426
+ this.checkDuplicate = false
427
+
399
428
  if (type == INVENTORY_ITEM_CHANGE_TYPE.NEW.value) this.data.total += 1
400
429
  this.data = {
401
430
  ...this.data,
@@ -430,7 +459,9 @@ class SerialNumberListPopup extends localize(i18next)(LitElement) {
430
459
  detail: {
431
460
  inventoryItemChanges:
432
461
  this.data.records.filter(
433
- itm => itm.transactionType == INVENTORY_ITEM_CHANGE_TRANSACTION_TYPE.CHANGES.value
462
+ itm =>
463
+ itm.transactionType == INVENTORY_ITEM_CHANGE_TRANSACTION_TYPE.CHANGES.value ||
464
+ itm.type == INVENTORY_ITEM_CHANGE_TYPE.REMOVED.value
434
465
  ) || []
435
466
  }
436
467
  })
@@ -1013,7 +1013,7 @@ class InspectingProduct extends connect(store)(localize(i18next)(PageView)) {
1013
1013
  async checkOrderInventory() {
1014
1014
  try {
1015
1015
  const filters = [
1016
- { name: 'inventory', operator: 'eq', value: this.selectedInventory.inventoryId },
1016
+ { name: 'inventoryId', operator: 'eq', value: this.selectedInventory.inventoryId },
1017
1017
  { name: 'status', operator: 'noteq', value: ORDER_INVENTORY_STATUS.TERMINATED.value },
1018
1018
  { name: 'type', operator: 'eq', value: ORDER_TYPES.RELEASE_OF_GOODS.value }
1019
1019
  ]
@@ -6,9 +6,10 @@ import { css, html } from 'lit-element'
6
6
 
7
7
  import { MultiColumnFormStyles } from '@things-factory/form-ui'
8
8
  import { i18next, localize } from '@things-factory/i18n-base'
9
- import { client, navigate, PageView } from '@things-factory/shell'
9
+ import { client, navigate, PageView, CustomAlert } from '@things-factory/shell'
10
10
  import { CommonButtonStyles } from '@things-factory/styles'
11
11
  import { isMobileDevice } from '@things-factory/utils'
12
+ import { ORDER_STATUS } from '../constants'
12
13
 
13
14
  class CreateLoadingManifest extends localize(i18next)(PageView) {
14
15
  static get styles() {
@@ -180,6 +181,20 @@ class CreateLoadingManifest extends localize(i18next)(PageView) {
180
181
  label: true,
181
182
  header: i18next.t('field.transporter'),
182
183
  width: 200
184
+ },
185
+ {
186
+ type: 'string',
187
+ name: 'bizplaceName',
188
+ label: true,
189
+ header: i18next.t('field.company'),
190
+ width: 200
191
+ },
192
+ {
193
+ type: 'string',
194
+ name: 'status',
195
+ label: true,
196
+ header: i18next.t('field.status'),
197
+ width: 200
183
198
  }
184
199
  ]
185
200
  }
@@ -189,40 +204,50 @@ class CreateLoadingManifest extends localize(i18next)(PageView) {
189
204
  try {
190
205
  this._validateTrackingNo()
191
206
 
192
- const filters = [
193
- { name: 'trackingNo', operator: 'eq', value: this.trackingNoInput.value.trim() },
194
- { name: 'manifest_id', operator: 'is_null', value: '' },
195
- { name: 'releaseGoodOnly', operator: '', value: '' },
196
- { name: 'status', operator: 'in', value: ['PACKING', 'DONE'] }
197
- ]
198
207
  const response = await client.query({
199
208
  query: gql`
200
- query releaseGoods($filters: [Filter!], $sortings: [Sorting!]) {
201
- releaseGoods(filters: $filters, sortings: $sortings) {
202
- items {
209
+ query releaseGood($trackingNo: String) {
210
+ releaseGood(trackingNo: $trackingNo) {
211
+ id
212
+ name
213
+ trackingNo
214
+ refNo
215
+ transporter
216
+ bizplace {
203
217
  id
204
218
  name
205
- trackingNo
206
- refNo
207
- transporter
208
219
  }
220
+ status
209
221
  }
210
222
  }
211
223
  `,
212
- variables: { filters, sortings: [] }
224
+ variables: { trackingNo: this.trackingNoInput.value.trim() }
213
225
  })
214
-
215
226
  if (!response.errors) {
216
- const releaseGood = (response.data.releaseGoods.items || []).map(record => {
217
- return {
218
- ...record,
219
- orderNo: record?.refNo
220
- }
221
- })[0]
227
+ const releaseGood = response.data.releaseGood
222
228
 
223
229
  if (releaseGood && !this.shippingData.records.map(record => record.refNo).includes(releaseGood.refNo)) {
224
230
  let manifestItems = this.shippingData.records || []
225
- manifestItems.push({ ...releaseGood })
231
+
232
+ if (
233
+ releaseGood?.status === ORDER_STATUS.CANCELLED.value ||
234
+ releaseGood?.status === ORDER_STATUS.PENDING_CANCEL.value
235
+ ) {
236
+ let answer = await CustomAlert({
237
+ type: 'warning',
238
+ title: i18next.t('title.order(s)_is_at_pending_cancelled_or_cancelled'),
239
+ text: i18next.t('text.do_you_want_to_ignore'),
240
+ confirmButton: { text: i18next.t('button.ignore') },
241
+ cancelButton: { text: i18next.t('button.cancel') }
242
+ })
243
+
244
+ if (!answer?.value) {
245
+ this._clearTrackingNoInput()
246
+ return
247
+ }
248
+ }
249
+
250
+ manifestItems.push({ ...releaseGood, bizplaceName: releaseGood.bizplace.name, orderNo: releaseGood.refNo })
226
251
  this.shippingData = { records: manifestItems }
227
252
  } else {
228
253
  this._showToast({ message: i18next.t('text.tracking_no_already_exist_in_manifest_list') })
@@ -54,17 +54,20 @@ class DispatcherVerificationPopup extends localize(i18next)(LitElement) {
54
54
  }
55
55
 
56
56
  _updateManifestDispatchement() {
57
- this._validateDispatchmentUpdate()
58
- let dispatchment = this._serializeForm(this.dispatchmentForm)
59
- this.dispatchEvent(
60
- new CustomEvent('dispatch', {
61
- detail: {
62
- dispatcherName: dispatchment.dispatcherName,
63
- dispatcherIdentity: dispatchment.dispatcherIdentity
64
- }
65
- })
66
- )
67
- history.back()
57
+ if (this.dispatchmentForm.checkValidity()) {
58
+ let dispatchment = this._serializeForm(this.dispatchmentForm)
59
+ this.dispatchEvent(
60
+ new CustomEvent('dispatch', {
61
+ detail: {
62
+ dispatcherName: dispatchment.dispatcherName,
63
+ dispatcherIdentity: dispatchment.dispatcherIdentity
64
+ }
65
+ })
66
+ )
67
+ history.back()
68
+ } else {
69
+ this._showToast({ message: i18next.t('text.form_has_invalid_input') })
70
+ }
68
71
  }
69
72
 
70
73
  _serializeForm(form) {
@@ -78,8 +81,16 @@ class DispatcherVerificationPopup extends localize(i18next)(LitElement) {
78
81
  return obj
79
82
  }
80
83
 
81
- _validateDispatchmentUpdate() {
82
- this.dispatchmentForm.checkValidity()
84
+ _showToast({ type, message }) {
85
+ document.dispatchEvent(
86
+ new CustomEvent('notify', {
87
+ detail: {
88
+ type,
89
+ message,
90
+ option: { timer: 1000 }
91
+ }
92
+ })
93
+ )
83
94
  }
84
95
  }
85
96