@things-factory/operato-wms 4.3.760 → 4.3.761

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.
@@ -106,7 +106,7 @@ class DeliveryOrderInfo extends localize(i18next)(LitElement) {
106
106
  {
107
107
  type: 'row',
108
108
  content: [
109
- { header: 'Exp Date', field: 'expirationDate', type: 'string' },
109
+ { header: 'Exp Date', field: 'inventory.expirationDate', type: 'string' },
110
110
  { header: 'Batch No', field: 'batchId', type: 'string' }
111
111
  ]
112
112
  },
@@ -166,6 +166,11 @@ class DeliveryOrderInfo extends localize(i18next)(LitElement) {
166
166
 
167
167
  async undoLoad() {
168
168
  try {
169
+ // Validate data exists before proceeding
170
+ if (!this.data?.id) {
171
+ throw new Error('Delivery order data is not available')
172
+ }
173
+
169
174
  const result = await CustomAlert({
170
175
  title: i18next.t('title.are_you_sure'),
171
176
  text: i18next.t('text.proceed_undo_loading'),
@@ -175,23 +180,31 @@ class DeliveryOrderInfo extends localize(i18next)(LitElement) {
175
180
 
176
181
  if (!result.value) return
177
182
 
183
+ const doId = this.data.id
184
+
178
185
  const response = await client.mutate({
179
186
  mutation: gql`
180
187
  mutation undoLoad($doId: String!) {
181
188
  undoLoad(doId: $doId)
182
189
  }
183
190
  `,
184
- variables: { doId: this.data.id }
191
+ variables: { doId }
185
192
  })
186
193
 
187
194
  if (!response.errors) {
188
- this.dispatchEvent(new CustomEvent('undo', { detail: { doId: this.data.id } }))
189
- history.back()
195
+ // Dispatch event with bubbles and composed to ensure proper propagation through shadow DOM
196
+ this.dispatchEvent(new CustomEvent('undo', {
197
+ detail: { doId },
198
+ bubbles: true,
199
+ composed: true
200
+ }))
201
+ // Small delay to allow event handler to process before closing popup
202
+ setTimeout(() => history.back(), 100)
190
203
  } else {
191
204
  throw new Error(response.errors[0]?.message || 'Failed to undo loading')
192
205
  }
193
206
  } catch (e) {
194
- showToast(e)
207
+ showToast({ type: 'error', message: e.message || 'Failed to undo loading' })
195
208
  }
196
209
  }
197
210
 
@@ -215,8 +228,9 @@ class DeliveryOrderInfo extends localize(i18next)(LitElement) {
215
228
  const groupedMap = new Map()
216
229
 
217
230
  this.data.orderInventories.forEach(oi => {
218
- // Create a unique key based on product details
219
- const key = `${oi.product?.sku || ''}_${oi.batchId || ''}_${oi.expirationDate || ''}_${oi.packingType || ''}_${oi.packingSize || ''}`
231
+ // Create a unique key based on product details (expirationDate is on inventory relation)
232
+ const expirationDate = oi.inventory?.expirationDate || ''
233
+ const key = `${oi.product?.sku || ''}_${oi.batchId || ''}_${expirationDate}_${oi.packingType || ''}_${oi.packingSize || ''}`
220
234
 
221
235
  if (groupedMap.has(key)) {
222
236
  const existing = groupedMap.get(key)
@@ -562,9 +562,13 @@ export class LoadingExecutionBase extends LitElement {
562
562
  this.fetchData(orderNoForQc, 'qc', useQcSkuForFetch),
563
563
  this.fetchData(orderNoForQc, 'loading', useQcSkuForFetch)
564
564
  ])
565
+
566
+ // QC tab: items that still need QC (sortedQty != pickedQty)
565
567
  this.qcData = qcData.filter(data => data?.sortedQty != data?.pickedQty) || []
568
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
566
569
  this.loadingData =
567
- loadingData.filter(data => data?.sortedQty > 0 && data.status != WORKSHEET_STATUS.DONE.value) || []
570
+ loadingData.filter(data => data?.sortedQty >= data?.pickedQty && data.status != WORKSHEET_STATUS.DONE.value) || []
571
+
568
572
  // Check seal status when opening QC tab (needed for Tote button visibility)
569
573
  await this._checkAndUpdateSealStatus()
570
574
  // Update button visibility after fetching QC data (which updates _hasRefWorksheetId)
@@ -585,8 +589,9 @@ export class LoadingExecutionBase extends LitElement {
585
589
  // Filter to only show items for the currently selected release order AND from this bin
586
590
  // Note: FIND_LOADABLE_RELEASE_GOOD_BY_BIN returns OrderInventory status ('LOADED'),
587
591
  // not WorksheetDetail status ('DONE'), so we filter by 'LOADED'
592
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
588
593
  this.loadingData = (binData || []).filter(
589
- data => data?.status !== 'LOADED' && data?.releaseGood?.name === this._currentReleaseGood.releaseGood.name
594
+ data => data?.sortedQty >= data?.pickedQty && data?.status !== 'LOADED' && data?.releaseGood?.name === this._currentReleaseGood.releaseGood.name
590
595
  )
591
596
  }
592
597
 
@@ -617,9 +622,13 @@ export class LoadingExecutionBase extends LitElement {
617
622
  }
618
623
  }
619
624
  } else {
620
- this.loadingData = await this.fetchData(this.worksheet?.releaseGood?.name, 'loading', this._useQcSku)
621
- // Filter out items that are already LOADED (safety check in case backend returns them)
622
- this.loadingData = (this.loadingData || []).filter(data => data?.status !== WORKSHEET_STATUS.DONE.value)
625
+ const rawLoadingData = await this.fetchData(this.worksheet?.releaseGood?.name, 'loading', this._useQcSku)
626
+
627
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
628
+ this.loadingData = (rawLoadingData || []).filter(
629
+ data => data?.sortedQty >= data?.pickedQty && data?.status !== WORKSHEET_STATUS.DONE.value
630
+ )
631
+
623
632
  // Refresh tabCounts when switching to LOADING tab
624
633
  if (this._currentReleaseGood?.releaseGood?.name || this.worksheet?.releaseGood?.name) {
625
634
  const orderNo = this._currentReleaseGood?.releaseGood?.name || this.worksheet?.releaseGood?.name
@@ -774,13 +783,16 @@ export class LoadingExecutionBase extends LitElement {
774
783
 
775
784
  // Filter to only show items for the selected release order from this bin
776
785
  // Note: FIND_LOADABLE_RELEASE_GOOD_BY_BIN returns OrderInventory status ('LOADED')
786
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
777
787
  this.loadingData = (binData || []).filter(
778
- data => data?.status !== 'LOADED' && data?.releaseGood?.name === selectedRO.name
788
+ data => data?.sortedQty >= data?.pickedQty && data?.status !== 'LOADED' && data?.releaseGood?.name === selectedRO.name
779
789
  )
780
790
  } else {
781
791
  this.loadingData = await this.fetchData(selectedRO.name, 'loading', false)
782
- // Filter out items that are already LOADED (safety check)
783
- this.loadingData = (this.loadingData || []).filter(data => data?.status !== WORKSHEET_STATUS.DONE.value)
792
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
793
+ this.loadingData = (this.loadingData || []).filter(
794
+ data => data?.sortedQty >= data?.pickedQty && data?.status !== WORKSHEET_STATUS.DONE.value
795
+ )
784
796
  }
785
797
  } else if (finalTabName === TAB_TYPES.LOADED) {
786
798
  this.loadedData = await fetchDeliveryOrders(selectedRO.name)
@@ -801,19 +813,22 @@ export class LoadingExecutionBase extends LitElement {
801
813
  data?.releaseGood?.name === selectedRO.name
802
814
  )
803
815
  // Also fetch loading data for banner
816
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
804
817
  let binLoadingData = await this.fetchData(this.worksheet.binLocationName, 'loading', true)
805
818
  this.loadingData = (binLoadingData || []).filter(
806
819
  data =>
807
- data?.sortedQty > 0 && data?.status !== 'LOADED' && data?.releaseGood?.name === selectedRO.name
820
+ data?.sortedQty >= data?.pickedQty && data?.status !== 'LOADED' && data?.releaseGood?.name === selectedRO.name
808
821
  )
809
822
  } else {
810
823
  const [qcData, loadingData] = await Promise.all([
811
824
  this.fetchData(selectedRO.name, 'qc', this._useQcSku),
812
825
  this.fetchData(selectedRO.name, 'loading', this._useQcSku)
813
826
  ])
827
+ // QC tab: items that still need QC (sortedQty < pickedQty)
814
828
  this.qcData = qcData.filter(data => data?.sortedQty < data?.pickedQty) || []
829
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
815
830
  this.loadingData =
816
- loadingData.filter(data => data?.sortedQty > 0 && data.status != WORKSHEET_STATUS.DONE.value) || []
831
+ loadingData.filter(data => data?.sortedQty >= data?.pickedQty && data.status != WORKSHEET_STATUS.DONE.value) || []
817
832
  }
818
833
  // fetchData updates _hasRefWorksheetId, so update buttons after data is fetched
819
834
  }
@@ -873,9 +888,11 @@ export class LoadingExecutionBase extends LitElement {
873
888
  )
874
889
  }
875
890
 
891
+ // QC tab: items that still need QC (sortedQty < pickedQty)
876
892
  this.qcData = this.worksheetDetails.filter(data => data?.sortedQty < data?.pickedQty) || []
893
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
877
894
  this.loadingData =
878
- this.worksheetDetails.filter(data => data?.sortedQty > 0 && data.status != WORKSHEET_STATUS.DONE.value) || []
895
+ this.worksheetDetails.filter(data => data?.sortedQty >= data?.pickedQty && data.status != WORKSHEET_STATUS.DONE.value) || []
879
896
  this.loadedData = this.deliveryOrdersInfo || []
880
897
 
881
898
  this._executionData = {
@@ -990,14 +1007,17 @@ export class LoadingExecutionBase extends LitElement {
990
1007
  let binData = await this.fetchData(this.worksheet.binLocationName, 'loading', true)
991
1008
  // Filter to only show items for the selected release order from this bin
992
1009
  // Note: FIND_LOADABLE_RELEASE_GOOD_BY_BIN returns OrderInventory status ('LOADED')
1010
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
993
1011
  this.loadingData = (binData || []).filter(
994
- data => data?.status !== 'LOADED' && data?.releaseGood?.name === orderNo
1012
+ data => data?.sortedQty >= data?.pickedQty && data?.status !== 'LOADED' && data?.releaseGood?.name === orderNo
995
1013
  )
996
1014
  } else {
997
1015
  // Standard mode: fetch by release order name
998
1016
  this.loadingData = await this.fetchData(orderNo, 'loading', false)
999
- // Filter out items that are already LOADED (safety check)
1000
- this.loadingData = (this.loadingData || []).filter(data => data?.status !== WORKSHEET_STATUS.DONE.value)
1017
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
1018
+ this.loadingData = (this.loadingData || []).filter(
1019
+ data => data?.sortedQty >= data?.pickedQty && data?.status !== WORKSHEET_STATUS.DONE.value
1020
+ )
1001
1021
  }
1002
1022
  }
1003
1023
 
@@ -1240,9 +1260,11 @@ export class LoadingExecutionBase extends LitElement {
1240
1260
  this.fetchData(orderNoForRefresh, 'loading', useQcSkuForRefresh)
1241
1261
  ])
1242
1262
 
1263
+ // QC tab: items that still need QC (sortedQty < pickedQty)
1243
1264
  this.qcData = qcData.filter(data => data?.sortedQty < data?.pickedQty) || []
1265
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
1244
1266
  this.loadingData =
1245
- loadingData.filter(data => data?.sortedQty > 0 && data.status != WORKSHEET_STATUS.DONE.value) || []
1267
+ loadingData.filter(data => data?.sortedQty >= data?.pickedQty && data.status != WORKSHEET_STATUS.DONE.value) || []
1246
1268
 
1247
1269
  // Update QC banner state after data changes
1248
1270
  if (this._updateQcBannerState) {
@@ -1493,8 +1515,10 @@ export class LoadingExecutionBase extends LitElement {
1493
1515
  @warehouse-return=${async e => {
1494
1516
  showToast({ type: 'success', message: 'Returning worksheet generated' })
1495
1517
  this.loadingData = await this.fetchData(this.worksheet?.releaseGood?.name, 'loading', this._useQcSku)
1496
- // Filter out items that are already LOADED (safety check)
1497
- this.loadingData = (this.loadingData || []).filter(data => data?.status !== WORKSHEET_STATUS.DONE.value)
1518
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
1519
+ this.loadingData = (this.loadingData || []).filter(
1520
+ data => data?.sortedQty >= data?.pickedQty && data?.status !== WORKSHEET_STATUS.DONE.value
1521
+ )
1498
1522
  }}
1499
1523
  ></warehouse-return-popup>
1500
1524
  `,
@@ -1557,6 +1581,7 @@ export class LoadingExecutionBase extends LitElement {
1557
1581
  }
1558
1582
 
1559
1583
  const worksheetDetailInfos = response.data.loadingWorksheetv2.worksheetDetailInfos
1584
+
1560
1585
  // Check if any order inventory has refWorksheetId
1561
1586
  this._hasRefWorksheetId = worksheetDetailInfos.some(
1562
1587
  item => item?.relatedOrderInv?.refWorksheetId != null && item?.relatedOrderInv?.refWorksheetId !== ''
@@ -424,9 +424,11 @@ export class LoadingExecution extends LoadingExecutionBase {
424
424
  }
425
425
 
426
426
  // Filter data for different tabs
427
+ // QC tab: items that still need QC (sortedQty < pickedQty)
427
428
  this.qcData = processedDetails.filter(data => data?.sortedQty < data?.pickedQty && data.status !== 'LOADED') || []
429
+ // Loading tab: items that have completed QC (sortedQty >= pickedQty) and are not yet loaded
428
430
  this.loadingData =
429
- processedDetails.filter(data => data?.sortedQty > 0 && data.status != WORKSHEET_STATUS.DONE.value) || []
431
+ processedDetails.filter(data => data?.sortedQty >= data?.pickedQty && data.status != WORKSHEET_STATUS.DONE.value) || []
430
432
  this.loadedData = this.deliveryOrdersInfo || []
431
433
 
432
434
  // Update execution data
@@ -28,7 +28,8 @@ exports.undoLoad = {
28
28
  targetInventory: { id: (0, typeorm_1.In)(doInventoryIds) },
29
29
  type: worksheet_base_1.WORKSHEET_TYPE.LOADING,
30
30
  status: worksheet_base_1.WORKSHEET_STATUS.DONE
31
- }
31
+ },
32
+ relations: ['targetInventory']
32
33
  });
33
34
  // Create a map for O(1) lookup of worksheet details by targetInventory.id
34
35
  const wsdByTargetId = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"undo-load.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/undo-load.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"undo-load.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/undo-load.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/operato-wms",
3
- "version": "4.3.760",
3
+ "version": "4.3.761",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -108,7 +108,7 @@
108
108
  "@things-factory/transport-base": "^4.3.755",
109
109
  "@things-factory/tutorial-ui": "^4.3.755",
110
110
  "@things-factory/warehouse-base": "^4.3.755",
111
- "@things-factory/worksheet-base": "^4.3.760"
111
+ "@things-factory/worksheet-base": "^4.3.761"
112
112
  },
113
113
  "devDependencies": {
114
114
  "@things-factory/builder": "^4.3.755",
@@ -117,5 +117,5 @@
117
117
  "cypress-localstorage-commands": "^1.6.1",
118
118
  "eslint-plugin-cypress": "^2.12.1"
119
119
  },
120
- "gitHead": "c6b185ad92efc92e1ea5d80899f2a1f38cf37c4b"
120
+ "gitHead": "ed2c237b4da43cdb1f9902ab9bfc6fbadb1cc53a"
121
121
  }
@@ -33,7 +33,8 @@ export const undoLoad = {
33
33
  targetInventory: { id: In(doInventoryIds) },
34
34
  type: WORKSHEET_TYPE.LOADING,
35
35
  status: WORKSHEET_STATUS.DONE
36
- }
36
+ },
37
+ relations: ['targetInventory']
37
38
  })
38
39
 
39
40
  // Create a map for O(1) lookup of worksheet details by targetInventory.id