@things-factory/operato-wms 4.3.752 → 4.3.755

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 (78) hide show
  1. package/client/pages/inbound/unload-product.js +30 -33
  2. package/client/pages/outbound/loading-product.js +2 -3
  3. package/client/pages/outbound/loading-v2/loading-execution-base.js +568 -56
  4. package/client/pages/outbound/loading-v2/loading-execution.js +258 -8
  5. package/client/pages/outbound/loading-v2/loading.js +82 -12
  6. package/client/pages/outbound/picking-product.js +11 -6
  7. package/client/pages/outbound/picking-v2/picking-execution-base.js +8 -8
  8. package/client/pages/outbound/picking-v2/picking-execution.js +75 -0
  9. package/client/pages/outbound/route-label-history-dialog.js +253 -0
  10. package/client/pages/outbound/route-label-popup.js +637 -131
  11. package/client/pages/outbound/show-ro-list-popup.js +8 -4
  12. package/client/pages/outbound/single-outbound-worksheet.js +55 -6
  13. package/client/pages/outbound/sorting-product.js +71 -25
  14. package/client/pages/outbound/zone-worksheet.js +62 -3
  15. package/dist-server/entities/index.js +9 -0
  16. package/dist-server/entities/index.js.map +1 -0
  17. package/dist-server/entities/route-label-sequence-counter.js +75 -0
  18. package/dist-server/entities/route-label-sequence-counter.js.map +1 -0
  19. package/dist-server/entities/route-label-sequence-log.js +74 -0
  20. package/dist-server/entities/route-label-sequence-log.js.map +1 -0
  21. package/dist-server/graphql/resolvers/index.js +3 -0
  22. package/dist-server/graphql/resolvers/index.js.map +1 -1
  23. package/dist-server/graphql/resolvers/outbound/complete-load.js +40 -3
  24. package/dist-server/graphql/resolvers/outbound/complete-load.js.map +1 -1
  25. package/dist-server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.js +50 -11
  26. package/dist-server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.js.map +1 -1
  27. package/dist-server/graphql/resolvers/outbound/find-loadable-release-good.js +90 -48
  28. package/dist-server/graphql/resolvers/outbound/find-loadable-release-good.js.map +1 -1
  29. package/dist-server/graphql/resolvers/outbound/loading-worksheet-v2.js +15 -7
  30. package/dist-server/graphql/resolvers/outbound/loading-worksheet-v2.js.map +1 -1
  31. package/dist-server/graphql/resolvers/outbound/sort-item.js +95 -16
  32. package/dist-server/graphql/resolvers/outbound/sort-item.js.map +1 -1
  33. package/dist-server/graphql/resolvers/route-label/index.js +7 -0
  34. package/dist-server/graphql/resolvers/route-label/index.js.map +1 -0
  35. package/dist-server/graphql/resolvers/route-label/route-label.js +220 -0
  36. package/dist-server/graphql/resolvers/route-label/route-label.js.map +1 -0
  37. package/dist-server/graphql/resolvers/zone-worksheet/index.js.map +1 -1
  38. package/dist-server/graphql/resolvers/zone-worksheet/zone-picking.js +123 -27
  39. package/dist-server/graphql/resolvers/zone-worksheet/zone-picking.js.map +1 -1
  40. package/dist-server/graphql/resolvers/zone-worksheet/zone-worksheet.js.map +1 -1
  41. package/dist-server/graphql/types/index.js +4 -0
  42. package/dist-server/graphql/types/index.js.map +1 -1
  43. package/dist-server/graphql/types/outbound/index.js +7 -1
  44. package/dist-server/graphql/types/outbound/index.js.map +1 -1
  45. package/dist-server/graphql/types/route-label/index.js +14 -0
  46. package/dist-server/graphql/types/route-label/index.js.map +1 -0
  47. package/dist-server/graphql/types/route-label/route-label-sequence.js +53 -0
  48. package/dist-server/graphql/types/route-label/route-label-sequence.js.map +1 -0
  49. package/dist-server/index.js +5 -0
  50. package/dist-server/index.js.map +1 -1
  51. package/dist-server/validators/setting-validators.js +519 -0
  52. package/dist-server/validators/setting-validators.js.map +1 -0
  53. package/helps/operato-wms/outbound/picking-product.en.md +156 -158
  54. package/package.json +50 -50
  55. package/server/entities/index.ts +6 -0
  56. package/server/entities/route-label-sequence-counter.ts +56 -0
  57. package/server/entities/route-label-sequence-log.ts +47 -0
  58. package/server/graphql/resolvers/index.ts +3 -0
  59. package/server/graphql/resolvers/outbound/complete-load.ts +42 -1
  60. package/server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.ts +56 -13
  61. package/server/graphql/resolvers/outbound/find-loadable-release-good.ts +120 -57
  62. package/server/graphql/resolvers/outbound/loading-worksheet-v2.ts +9 -2
  63. package/server/graphql/resolvers/outbound/sort-item.ts +125 -21
  64. package/server/graphql/resolvers/route-label/index.ts +16 -0
  65. package/server/graphql/resolvers/route-label/route-label.ts +264 -0
  66. package/server/graphql/resolvers/zone-worksheet/index.ts +2 -2
  67. package/server/graphql/resolvers/zone-worksheet/zone-picking.ts +156 -39
  68. package/server/graphql/resolvers/zone-worksheet/zone-worksheet.ts +1 -2
  69. package/server/graphql/types/index.ts +4 -0
  70. package/server/graphql/types/outbound/index.ts +7 -1
  71. package/server/graphql/types/route-label/index.ts +18 -0
  72. package/server/graphql/types/route-label/route-label-sequence.ts +50 -0
  73. package/server/index.ts +7 -1
  74. package/server/validators/setting-validators.ts +668 -0
  75. package/translations/en.json +280 -252
  76. package/translations/ko.json +29 -1
  77. package/translations/ms.json +28 -0
  78. package/translations/zh.json +28 -0
@@ -744,22 +744,7 @@ class UnloadProduct extends connect(store)(localize(i18next)(PageView)) {
744
744
  }
745
745
  }
746
746
 
747
- _formatManufactureDate(date) {
748
- if (!date) return date
749
-
750
- if (!isNaN(Number(date))) {
751
- date = Number(date)
752
- }
753
-
754
- const DATE_OPTIONS = {
755
- year: 'numeric',
756
- month: 'numeric',
757
- day: 'numeric'
758
- }
759
- const formatter = new Intl.DateTimeFormat(navigator.language, DATE_OPTIONS)
760
- return formatter.format(new Date(date))
761
- }
762
-
747
+ //===== FORMAT TIMESTAMP VALUE TO DATE STRING (YYYY-MM-DD) =====
763
748
  _formatDateForInput(date) {
764
749
  if (!date) return ''
765
750
 
@@ -781,6 +766,7 @@ class UnloadProduct extends connect(store)(localize(i18next)(PageView)) {
781
766
  return `${year}-${month}-${day}`
782
767
  }
783
768
 
769
+ //==== GET THE VALID MANUFACTURING DATE FROM THE MANUFACTURING DATE INPUT =====
784
770
  _getValidManufactureDate() {
785
771
  const value = this.manufactureDateInput?.value
786
772
  if (!value || value.trim() === '') return null
@@ -795,19 +781,24 @@ class UnloadProduct extends connect(store)(localize(i18next)(PageView)) {
795
781
  }
796
782
 
797
783
  _getManufactureDateValue() {
784
+ //===== IF MANUFACTURING DATE CHECK SETTING IS SET =====
798
785
  if (this._isRequiredCheckManufactureDate) {
799
786
  return this._getValidManufactureDate()
800
787
  }
801
788
 
789
+ //===== ELSE, GET THE MANUFACTURING DATE FROM THE SELECTED ORDER PRODUCT =====
790
+ let manufactureDate = null
791
+
802
792
  if (this.refOrderType === AVAIL_ORDER_TYPES.ARRIVAL_NOTICE.value) {
803
- return this._selectedOrderProduct?.manufactureDate || null
793
+ manufactureDate = this._selectedOrderProduct?.manufactureDate || null
794
+ } else if (this.refOrderType === AVAIL_ORDER_TYPES.RETURN_ORDER.value) {
795
+ manufactureDate = this._selectedOrderProduct?.inventory?.manufactureDate || null
804
796
  }
805
797
 
806
- if (this.refOrderType === AVAIL_ORDER_TYPES.RETURN_ORDER.value) {
807
- return this._selectedOrderProduct?.inventory?.manufactureDate || null
808
- }
798
+ if (!manufactureDate) return null
809
799
 
810
- return null
800
+ const formattedDate = this._formatDateForInput(manufactureDate)
801
+ return formattedDate || null
811
802
  }
812
803
 
813
804
  async _fetchProducts(orderNo, response) {
@@ -945,7 +936,12 @@ class UnloadProduct extends connect(store)(localize(i18next)(PageView)) {
945
936
  itm => itm.id == this._selectedOrderProduct.id && itm.actualPackQty == itm.packQty
946
937
  )
947
938
  if (quantityTally?.length == 1) {
948
- this._selectedOrderProduct = null
939
+ // Only clear selected product if serial number scanning is NOT required
940
+ // This ensures the Serial Number button remains visible when qty is matched
941
+ if (!this._isRequireSerialNumberScanningInbound) {
942
+ this._selectedOrderProduct = null
943
+ }
944
+
949
945
  if (this._isRequireSerialNumberScanningInbound) {
950
946
  this.serialNumberInput.value = ''
951
947
 
@@ -1122,17 +1118,18 @@ class UnloadProduct extends connect(store)(localize(i18next)(PageView)) {
1122
1118
  inventory.packingSize == orderProduct.packingSize
1123
1119
  )
1124
1120
 
1125
- if (matchingInventories.length > 0) {
1126
- const manufactureDates = matchingInventories
1127
- .map(inv => inv.manufactureDate)
1128
- .filter(date => date != null && date !== '')
1129
- .map(date => this._formatManufactureDate(date))
1130
- .filter((date, index, self) => self.indexOf(date) === index)
1131
- .sort()
1132
-
1133
- orderProduct.displayManufactureDate = manufactureDates.length > 0 ? manufactureDates.join(', ') : (orderProduct.manufactureDate ? this._formatManufactureDate(orderProduct.manufactureDate) : null)
1134
- } else if (orderProduct.manufactureDate) {
1135
- orderProduct.displayManufactureDate = this._formatManufactureDate(orderProduct.manufactureDate)
1121
+ if (matchingInventories.length > 0) { // FOR ARRIVAL NOTICE AND RETURN ORDER WHERE ORDER PRODUCT IS UNLOADED
1122
+ const manufactureDates = [...new Set(
1123
+ matchingInventories
1124
+ .map(inv => this._formatDateForInput(inv.manufactureDate))
1125
+ .filter(date => date)
1126
+ )].sort()
1127
+
1128
+ orderProduct.displayManufactureDate = manufactureDates.length > 0 ? manufactureDates.join(', ') : (orderProduct.manufactureDate ? this._formatDateForInput(orderProduct.manufactureDate) : null)
1129
+ } else if (orderProduct.manufactureDate) { // FOR ARRIVAL NOTICE
1130
+ orderProduct.displayManufactureDate = this._formatDateForInput(orderProduct.manufactureDate)
1131
+ } else if (orderProduct?.inventory?.manufactureDate) { // FOR RETURN ORDER
1132
+ orderProduct.displayManufactureDate = this._formatDateForInput(orderProduct.inventory.manufactureDate)
1136
1133
  }
1137
1134
 
1138
1135
  return orderProduct
@@ -345,8 +345,7 @@ class LoadingProduct extends connect(store)(localize(i18next)(PageView)) {
345
345
  this._requireDeliveryInformation = enableLoadingDeliveryInformation
346
346
  this._enableLoadingSelectAll = enableLoadingSelectAll || false
347
347
 
348
- // let enableToteScanning = await fetchSettingRule('enable-tote-scanning')
349
- // this._requireDeliveryInformation = await fetchSettingRule('enable-loading-delivery-information')
348
+ const toteScanningValue = parseInt(enableToteScanning || '0', 10)
350
349
 
351
350
  let configColumns = [
352
351
  { type: 'gutter', gutterName: 'sequence' },
@@ -365,7 +364,7 @@ class LoadingProduct extends connect(store)(localize(i18next)(PageView)) {
365
364
  'loadedQty'
366
365
  ]
367
366
 
368
- if (enableToteScanning) {
367
+ if (toteScanningValue >= 1) {
369
368
  configColumns.push({
370
369
  type: 'string',
371
370
  name: 'toteName',