@things-factory/operato-wms 4.3.758 → 4.3.759
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/outbound/loading-v2/delivery-order-info.js +38 -3
- package/client/pages/outbound/loading-v2/loading-execution-base.js +132 -17
- package/dist-server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.js +15 -0
- package/dist-server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.js.map +1 -1
- package/dist-server/graphql/resolvers/outbound/find-loadable-release-good.js +9 -8
- package/dist-server/graphql/resolvers/outbound/find-loadable-release-good.js.map +1 -1
- package/dist-server/graphql/resolvers/outbound/load-by-qty.js +115 -45
- package/dist-server/graphql/resolvers/outbound/load-by-qty.js.map +1 -1
- package/dist-server/graphql/resolvers/outbound/loading-worksheet-v2.js +4 -0
- package/dist-server/graphql/resolvers/outbound/loading-worksheet-v2.js.map +1 -1
- package/dist-server/graphql/resolvers/outbound/undo-load.js +94 -42
- package/dist-server/graphql/resolvers/outbound/undo-load.js.map +1 -1
- package/dist-server/graphql/resolvers/route-label/route-label.js +8 -12
- package/dist-server/graphql/resolvers/route-label/route-label.js.map +1 -1
- package/dist-server/graphql/resolvers/zone-worksheet/zone-picking.js +31 -2
- package/dist-server/graphql/resolvers/zone-worksheet/zone-picking.js.map +1 -1
- package/package.json +4 -4
- package/server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.ts +15 -0
- package/server/graphql/resolvers/outbound/find-loadable-release-good.ts +9 -7
- package/server/graphql/resolvers/outbound/load-by-qty.ts +198 -81
- package/server/graphql/resolvers/outbound/loading-worksheet-v2.ts +4 -0
- package/server/graphql/resolvers/outbound/undo-load.ts +116 -44
- package/server/graphql/resolvers/route-label/route-label.ts +9 -12
- package/server/graphql/resolvers/zone-worksheet/zone-picking.ts +41 -2
|
@@ -151,7 +151,7 @@ class DeliveryOrderInfo extends localize(i18next)(LitElement) {
|
|
|
151
151
|
|
|
152
152
|
<!-- Content Section -->
|
|
153
153
|
<div class="content">
|
|
154
|
-
<product-list-view .config=${this.deliveryInfoConfig} .data=${this.
|
|
154
|
+
<product-list-view .config=${this.deliveryInfoConfig} .data=${this._getGroupedOrderInventories()}></product-list-view>
|
|
155
155
|
</div>
|
|
156
156
|
<!-- Content Section End -->
|
|
157
157
|
|
|
@@ -184,9 +184,11 @@ class DeliveryOrderInfo extends localize(i18next)(LitElement) {
|
|
|
184
184
|
variables: { doId: this.data.id }
|
|
185
185
|
})
|
|
186
186
|
|
|
187
|
-
if(!response.
|
|
187
|
+
if (!response.errors) {
|
|
188
188
|
this.dispatchEvent(new CustomEvent('undo', { detail: { doId: this.data.id } }))
|
|
189
189
|
history.back()
|
|
190
|
+
} else {
|
|
191
|
+
throw new Error(response.errors[0]?.message || 'Failed to undo loading')
|
|
190
192
|
}
|
|
191
193
|
} catch (e) {
|
|
192
194
|
showToast(e)
|
|
@@ -194,7 +196,40 @@ class DeliveryOrderInfo extends localize(i18next)(LitElement) {
|
|
|
194
196
|
}
|
|
195
197
|
|
|
196
198
|
_getTotalSku() {
|
|
197
|
-
|
|
199
|
+
if (!this.data?.orderInventories?.length) return 0
|
|
200
|
+
// Count unique products by SKU
|
|
201
|
+
const uniqueSkus = new Set(
|
|
202
|
+
this.data.orderInventories.map(oi => oi.product?.sku).filter(Boolean)
|
|
203
|
+
)
|
|
204
|
+
return uniqueSkus.size
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Groups order inventories by SKU, batchId, expirationDate, packingType, and packingSize.
|
|
209
|
+
* Sums the pickedQty for items with the same grouping key.
|
|
210
|
+
* @returns {Array} Grouped order inventories with aggregated quantities
|
|
211
|
+
*/
|
|
212
|
+
_getGroupedOrderInventories() {
|
|
213
|
+
if (!this.data?.orderInventories?.length) return []
|
|
214
|
+
|
|
215
|
+
const groupedMap = new Map()
|
|
216
|
+
|
|
217
|
+
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 || ''}`
|
|
220
|
+
|
|
221
|
+
if (groupedMap.has(key)) {
|
|
222
|
+
const existing = groupedMap.get(key)
|
|
223
|
+
// Sum the quantities
|
|
224
|
+
existing.pickedQty = (existing.pickedQty || 0) + (oi.pickedQty || 0)
|
|
225
|
+
existing.releaseQty = (existing.releaseQty || 0) + (oi.releaseQty || 0)
|
|
226
|
+
} else {
|
|
227
|
+
// Create a new entry with a copy of the order inventory
|
|
228
|
+
groupedMap.set(key, { ...oi })
|
|
229
|
+
}
|
|
230
|
+
})
|
|
231
|
+
|
|
232
|
+
return Array.from(groupedMap.values())
|
|
198
233
|
}
|
|
199
234
|
|
|
200
235
|
closePopup() {
|
|
@@ -576,6 +576,22 @@ export class LoadingExecutionBase extends LitElement {
|
|
|
576
576
|
} else if (tabName === TAB_TYPES.LOADING) {
|
|
577
577
|
// Use bin-based query only if QC SKU mode AND it's not a release good scan
|
|
578
578
|
if (this._useQcSku && this.worksheet?.binLocationName && !this.worksheet?.isReleaseGoodScan) {
|
|
579
|
+
// If there's already a selected release order, refresh data for it first
|
|
580
|
+
// This ensures that if user closes the popup without selection, current data is shown
|
|
581
|
+
// IMPORTANT: Use bin location name with useQcSku=true to filter by specific bin
|
|
582
|
+
if (this._currentReleaseGood?.releaseGood?.name) {
|
|
583
|
+
// Fetch data using bin location (not release order name) to get only items from this bin
|
|
584
|
+
let binData = await this.fetchData(this.worksheet.binLocationName, 'loading', true)
|
|
585
|
+
// Filter to only show items for the currently selected release order AND from this bin
|
|
586
|
+
// Note: FIND_LOADABLE_RELEASE_GOOD_BY_BIN returns OrderInventory status ('LOADED'),
|
|
587
|
+
// not WorksheetDetail status ('DONE'), so we filter by 'LOADED'
|
|
588
|
+
this.loadingData = (binData || []).filter(
|
|
589
|
+
data =>
|
|
590
|
+
data?.status !== 'LOADED' &&
|
|
591
|
+
data?.releaseGood?.name === this._currentReleaseGood.releaseGood.name
|
|
592
|
+
)
|
|
593
|
+
}
|
|
594
|
+
|
|
579
595
|
const response = await client.query({
|
|
580
596
|
query: FIND_LOADABLE_RELEASE_GOOD,
|
|
581
597
|
variables: {
|
|
@@ -604,6 +620,10 @@ export class LoadingExecutionBase extends LitElement {
|
|
|
604
620
|
}
|
|
605
621
|
} else {
|
|
606
622
|
this.loadingData = await this.fetchData(this.worksheet?.releaseGood?.name, 'loading', this._useQcSku)
|
|
623
|
+
// Filter out items that are already LOADED (safety check in case backend returns them)
|
|
624
|
+
this.loadingData = (this.loadingData || []).filter(
|
|
625
|
+
data => data?.status !== WORKSHEET_STATUS.DONE.value
|
|
626
|
+
)
|
|
607
627
|
// Refresh tabCounts when switching to LOADING tab
|
|
608
628
|
if (this._currentReleaseGood?.releaseGood?.name || this.worksheet?.releaseGood?.name) {
|
|
609
629
|
const orderNo = this._currentReleaseGood?.releaseGood?.name || this.worksheet?.releaseGood?.name
|
|
@@ -751,7 +771,23 @@ export class LoadingExecutionBase extends LitElement {
|
|
|
751
771
|
await this.updateComplete
|
|
752
772
|
|
|
753
773
|
if (finalTabName === TAB_TYPES.LOADING) {
|
|
754
|
-
|
|
774
|
+
// In QC SKU mode with bin location, fetch by bin and filter by selected order
|
|
775
|
+
// to preserve the bin-scoped view
|
|
776
|
+
if (this._useQcSku && this.worksheet?.binLocationName && !this.worksheet?.isReleaseGoodScan) {
|
|
777
|
+
let binData = await this.fetchData(this.worksheet.binLocationName, 'loading', true)
|
|
778
|
+
|
|
779
|
+
// Filter to only show items for the selected release order from this bin
|
|
780
|
+
// Note: FIND_LOADABLE_RELEASE_GOOD_BY_BIN returns OrderInventory status ('LOADED')
|
|
781
|
+
this.loadingData = (binData || []).filter(
|
|
782
|
+
data => data?.status !== 'LOADED' && data?.releaseGood?.name === selectedRO.name
|
|
783
|
+
)
|
|
784
|
+
} else {
|
|
785
|
+
this.loadingData = await this.fetchData(selectedRO.name, 'loading', false)
|
|
786
|
+
// Filter out items that are already LOADED (safety check)
|
|
787
|
+
this.loadingData = (this.loadingData || []).filter(
|
|
788
|
+
data => data?.status !== WORKSHEET_STATUS.DONE.value
|
|
789
|
+
)
|
|
790
|
+
}
|
|
755
791
|
} else if (finalTabName === TAB_TYPES.LOADED) {
|
|
756
792
|
this.loadedData = await fetchDeliveryOrders(selectedRO.name)
|
|
757
793
|
if (!this.worksheet?.worksheet?.id) {
|
|
@@ -759,13 +795,34 @@ export class LoadingExecutionBase extends LitElement {
|
|
|
759
795
|
}
|
|
760
796
|
} else if (finalTabName === TAB_TYPES.QC) {
|
|
761
797
|
// Fetch both QC and LOADING data so banner can check if items are ready for loading
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
this.fetchData(
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
798
|
+
// In QC SKU mode with bin location, fetch by bin and filter by selected order
|
|
799
|
+
if (this._useQcSku && this.worksheet?.binLocationName && !this.worksheet?.isReleaseGoodScan) {
|
|
800
|
+
let binData = await this.fetchData(this.worksheet.binLocationName, 'qc', true)
|
|
801
|
+
// Filter to only show items for the selected release order from this bin
|
|
802
|
+
// Note: FIND_LOADABLE_RELEASE_GOOD_BY_BIN returns OrderInventory status
|
|
803
|
+
this.qcData = (binData || []).filter(
|
|
804
|
+
data =>
|
|
805
|
+
data?.sortedQty < data?.pickedQty &&
|
|
806
|
+
data?.status !== 'LOADED' &&
|
|
807
|
+
data?.releaseGood?.name === selectedRO.name
|
|
808
|
+
)
|
|
809
|
+
// Also fetch loading data for banner
|
|
810
|
+
let binLoadingData = await this.fetchData(this.worksheet.binLocationName, 'loading', true)
|
|
811
|
+
this.loadingData = (binLoadingData || []).filter(
|
|
812
|
+
data =>
|
|
813
|
+
data?.sortedQty > 0 &&
|
|
814
|
+
data?.status !== 'LOADED' &&
|
|
815
|
+
data?.releaseGood?.name === selectedRO.name
|
|
816
|
+
)
|
|
817
|
+
} else {
|
|
818
|
+
const [qcData, loadingData] = await Promise.all([
|
|
819
|
+
this.fetchData(selectedRO.name, 'qc', this._useQcSku),
|
|
820
|
+
this.fetchData(selectedRO.name, 'loading', this._useQcSku)
|
|
821
|
+
])
|
|
822
|
+
this.qcData = qcData.filter(data => data?.sortedQty < data?.pickedQty) || []
|
|
823
|
+
this.loadingData =
|
|
824
|
+
loadingData.filter(data => data?.sortedQty > 0 && data.status != WORKSHEET_STATUS.DONE.value) || []
|
|
825
|
+
}
|
|
769
826
|
// fetchData updates _hasRefWorksheetId, so update buttons after data is fetched
|
|
770
827
|
}
|
|
771
828
|
|
|
@@ -934,11 +991,35 @@ export class LoadingExecutionBase extends LitElement {
|
|
|
934
991
|
|
|
935
992
|
// Always refresh loadingData (not just when on LOADING tab)
|
|
936
993
|
// This ensures banner condition (which uses loadingData.length) is accurate after undo/load mutations
|
|
937
|
-
// If a release good is selected (from popup), use release good query, not bin query
|
|
938
994
|
if (orderNo) {
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
this.
|
|
995
|
+
// In bin scan mode (qcSku enabled with bin location), fetch by bin and filter by selected RO
|
|
996
|
+
// This ensures we only show items from the scanned bin, not all items for the RO
|
|
997
|
+
if (this._useQcSku && this.worksheet?.binLocationName && !this.worksheet?.isReleaseGoodScan) {
|
|
998
|
+
let binData = await this.fetchData(this.worksheet.binLocationName, 'loading', true)
|
|
999
|
+
// Filter to only show items for the selected release order from this bin
|
|
1000
|
+
// Note: FIND_LOADABLE_RELEASE_GOOD_BY_BIN returns OrderInventory status ('LOADED')
|
|
1001
|
+
this.loadingData = (binData || []).filter(
|
|
1002
|
+
data => data?.status !== 'LOADED' && data?.releaseGood?.name === orderNo
|
|
1003
|
+
)
|
|
1004
|
+
} else {
|
|
1005
|
+
// Standard mode: fetch by release order name
|
|
1006
|
+
this.loadingData = await this.fetchData(orderNo, 'loading', false)
|
|
1007
|
+
// Filter out items that are already LOADED (safety check)
|
|
1008
|
+
this.loadingData = (this.loadingData || []).filter(
|
|
1009
|
+
data => data?.status !== WORKSHEET_STATUS.DONE.value
|
|
1010
|
+
)
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
// Auto-switch to LOADED tab if LOADING tab is now empty but LOADED has items
|
|
1015
|
+
// This provides better UX after loading completes
|
|
1016
|
+
if (
|
|
1017
|
+
this.state?.activeTab === TAB_TYPES.LOADING &&
|
|
1018
|
+
(!this.loadingData || this.loadingData.length === 0) &&
|
|
1019
|
+
this.loadedData &&
|
|
1020
|
+
this.loadedData.length > 0
|
|
1021
|
+
) {
|
|
1022
|
+
this.state = { ...this.state, activeTab: TAB_TYPES.LOADED }
|
|
942
1023
|
}
|
|
943
1024
|
|
|
944
1025
|
// Update button visibility
|
|
@@ -1422,6 +1503,10 @@ export class LoadingExecutionBase extends LitElement {
|
|
|
1422
1503
|
@warehouse-return=${async e => {
|
|
1423
1504
|
showToast({ type: 'success', message: 'Returning worksheet generated' })
|
|
1424
1505
|
this.loadingData = await this.fetchData(this.worksheet?.releaseGood?.name, 'loading', this._useQcSku)
|
|
1506
|
+
// Filter out items that are already LOADED (safety check)
|
|
1507
|
+
this.loadingData = (this.loadingData || []).filter(
|
|
1508
|
+
data => data?.status !== WORKSHEET_STATUS.DONE.value
|
|
1509
|
+
)
|
|
1425
1510
|
}}
|
|
1426
1511
|
></warehouse-return-popup>
|
|
1427
1512
|
`,
|
|
@@ -1435,7 +1520,7 @@ export class LoadingExecutionBase extends LitElement {
|
|
|
1435
1520
|
|
|
1436
1521
|
async fetchData(orderNo, tab, useQcSku) {
|
|
1437
1522
|
try {
|
|
1438
|
-
//
|
|
1523
|
+
// Use FIND_LOADABLE_RELEASE_GOOD_BY_BIN for both QC and LOADING tabs when useQcSku is true (bin scan)
|
|
1439
1524
|
if (useQcSku && !this.worksheet?.isReleaseGoodScan) {
|
|
1440
1525
|
const response = await client.query({
|
|
1441
1526
|
query: FIND_LOADABLE_RELEASE_GOOD_BY_BIN,
|
|
@@ -1444,11 +1529,15 @@ export class LoadingExecutionBase extends LitElement {
|
|
|
1444
1529
|
|
|
1445
1530
|
if (!response.errors) {
|
|
1446
1531
|
const data = response.data.findLoadableReleaseGoodByBin.worksheetDetailInfos
|
|
1532
|
+
|
|
1447
1533
|
// Check if any order inventory has refWorksheetId
|
|
1448
1534
|
this._hasRefWorksheetId = data.some(
|
|
1449
1535
|
item => item?.relatedOrderInv?.refWorksheetId != null && item?.relatedOrderInv?.refWorksheetId !== ''
|
|
1450
1536
|
)
|
|
1451
|
-
|
|
1537
|
+
// Combine same products for better UX display, but preserve all order inventory references
|
|
1538
|
+
// so backend can distribute loadedQty across multiple order inventories
|
|
1539
|
+
const combined = combineSameProductsWithAllRefs(data)
|
|
1540
|
+
return combined
|
|
1452
1541
|
}
|
|
1453
1542
|
} else {
|
|
1454
1543
|
const response = await client.query({
|
|
@@ -1500,19 +1589,45 @@ function resetContext(target) {
|
|
|
1500
1589
|
target.configContext()
|
|
1501
1590
|
}
|
|
1502
1591
|
|
|
1503
|
-
|
|
1592
|
+
/**
|
|
1593
|
+
* Combines same products for UI display while preserving ALL order inventory references.
|
|
1594
|
+
* This allows the backend to distribute loadedQty across multiple order inventories.
|
|
1595
|
+
*
|
|
1596
|
+
* @param {Array} data - Array of worksheet detail items
|
|
1597
|
+
* @returns {Array} Combined items with aggregated quantities and allRelatedOrderInvs array
|
|
1598
|
+
*/
|
|
1599
|
+
function combineSameProductsWithAllRefs(data) {
|
|
1504
1600
|
const combinedMap = new Map()
|
|
1505
1601
|
|
|
1506
1602
|
data.forEach(item => {
|
|
1507
|
-
|
|
1603
|
+
// Include status in key to keep LOADING and LOADED items separate
|
|
1604
|
+
const key = `${item.relatedOrderInv?.product?.sku}_${item.batchId}_${item.expirationDate}_${item.status}`
|
|
1508
1605
|
|
|
1509
1606
|
if (combinedMap.has(key)) {
|
|
1510
1607
|
const existing = combinedMap.get(key)
|
|
1511
1608
|
existing.releaseQty += item.releaseQty
|
|
1512
1609
|
existing.pickedQty += item.pickedQty
|
|
1513
1610
|
existing.sortedQty += item.sortedQty
|
|
1611
|
+
// Store all order inventory references for backend to process
|
|
1612
|
+
existing.allRelatedOrderInvs.push({
|
|
1613
|
+
id: item.relatedOrderInv?.id,
|
|
1614
|
+
pickedQty: item.pickedQty,
|
|
1615
|
+
sortedQty: item.sortedQty,
|
|
1616
|
+
releaseQty: item.releaseQty
|
|
1617
|
+
})
|
|
1514
1618
|
} else {
|
|
1515
|
-
combinedMap.set(key, {
|
|
1619
|
+
combinedMap.set(key, {
|
|
1620
|
+
...item,
|
|
1621
|
+
// Initialize array with first order inventory reference
|
|
1622
|
+
allRelatedOrderInvs: [
|
|
1623
|
+
{
|
|
1624
|
+
id: item.relatedOrderInv?.id,
|
|
1625
|
+
pickedQty: item.pickedQty,
|
|
1626
|
+
sortedQty: item.sortedQty,
|
|
1627
|
+
releaseQty: item.releaseQty
|
|
1628
|
+
}
|
|
1629
|
+
]
|
|
1630
|
+
})
|
|
1516
1631
|
}
|
|
1517
1632
|
})
|
|
1518
1633
|
|
|
@@ -115,6 +115,21 @@ const transformToWorksheetFormat = (orderInventories, releaseGood) => {
|
|
|
115
115
|
binLocation: {
|
|
116
116
|
name: (_b = oi.binLocation) === null || _b === void 0 ? void 0 : _b.name
|
|
117
117
|
},
|
|
118
|
+
// Include releaseGood for each item to support filtering by release order in bin scan mode
|
|
119
|
+
releaseGood: oi.releaseGood
|
|
120
|
+
? {
|
|
121
|
+
id: oi.releaseGood.id,
|
|
122
|
+
name: oi.releaseGood.name,
|
|
123
|
+
attentionCompany: oi.releaseGood.attentionCompany,
|
|
124
|
+
attentionTo: oi.releaseGood.attentionTo,
|
|
125
|
+
deliveryAddress1: oi.releaseGood.deliveryAddress1,
|
|
126
|
+
deliveryAddress2: oi.releaseGood.deliveryAddress2,
|
|
127
|
+
status: oi.releaseGood.status,
|
|
128
|
+
refNo: oi.releaseGood.refNo,
|
|
129
|
+
refNo2: oi.releaseGood.refNo2,
|
|
130
|
+
refNo3: oi.releaseGood.refNo3
|
|
131
|
+
}
|
|
132
|
+
: null,
|
|
118
133
|
productName: (_d = (_c = oi.inventory) === null || _c === void 0 ? void 0 : _c.product) === null || _d === void 0 ? void 0 : _d.name,
|
|
119
134
|
productSku: (_f = (_e = oi.inventory) === null || _e === void 0 ? void 0 : _e.product) === null || _f === void 0 ? void 0 : _f.sku,
|
|
120
135
|
relatedOrderInv: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-loadable-release-good-by-bin.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.ts"],"names":[],"mappings":";;;AAEA,mEAAyD;AAEzD,2DAA8G;AAE9G;;;GAGG;AACH,MAAM,kBAAmB,SAAQ,KAAK;IACpC,YAAY,OAAe,EAAS,IAAY;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAA;QADoB,SAAI,GAAJ,IAAI,CAAQ;QAE9C,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,+BAA+B,GAAG,CAAC,EAAiB,EAAE,QAAgB,EAAE,OAAe,EAAE,EAAE;IAC/F,OAAO,EAAE;SACN,aAAa,CAAC,wBAAW,CAAC;SAC1B,kBAAkB,CAAC,aAAa,CAAC;SACjC,iBAAiB,CAAC,sBAAsB,EAAE,UAAU,CAAC;SACrD,KAAK,CAAC,mCAAmC,EAAE,EAAE,QAAQ,EAAE,CAAC;SACxD,QAAQ,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,CAAC;SACpD,QAAQ,CAAC,oCAAoC,EAAE;QAC9C,MAAM,EAAE,CAAC,yBAAY,CAAC,OAAO,EAAE,yBAAY,CAAC,UAAU,EAAE,yBAAY,CAAC,kBAAkB,EAAE,yBAAY,CAAC,IAAI,CAAC;KAC5G,CAAC,CAAA;AACN,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,wBAAwB,GAAG,CAC/B,EAAiB,EACjB,QAAgB,EAChB,OAAyD,EACzD,EAAE;IACF,MAAM,YAAY,GAAG,EAAE;SACpB,aAAa,CAAC,2BAAc,CAAC;SAC7B,kBAAkB,CAAC,gBAAgB,CAAC;SACpC,iBAAiB,CAAC,0BAA0B,EAAE,WAAW,CAAC;SAC1D,iBAAiB,CAAC,mBAAmB,EAAE,SAAS,CAAC;SACjD,iBAAiB,CAAC,yBAAyB,EAAE,eAAe,CAAC;SAC7D,iBAAiB,CAAC,4BAA4B,EAAE,aAAa,CAAC;SAC9D,kBAAkB,CAAC,4BAA4B,EAAE,aAAa,CAAC;SAC/D,KAAK,CAAC,sCAAsC,EAAE,EAAE,QAAQ,EAAE,CAAC;SAC3D,QAAQ,CAAC,qDAAqD,EAAE;QAC/D,oBAAoB,EAAE;YACpB,mCAAsB,CAAC,OAAO;YAC9B,mCAAsB,CAAC,OAAO;YAC9B,mCAAsB,CAAC,MAAM;SAC9B;KACF,CAAC,CAAA;IAEJ,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAE;QACvB,YAAY,CAAC,QAAQ,CAAC,8CAA8C,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;KAC1G;IAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAE;QAC1B,YAAY,CAAC,QAAQ,CAAC,iDAAiD,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;KACnH;IAED,OAAO,YAAY,CAAC,OAAO,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;AAChE,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,0BAA0B,GAAG,CAAC,gBAAkC,EAAE,WAAyB,EAAE,EAAE;;IACnG,IAAI,CAAC,gBAAgB,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAEzC,oCAAoC;IACpC,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,WAAC,OAAA,MAAA,EAAE,CAAC,WAAW,0CAAE,IAAI,CAAA,EAAA,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAEzG,8DAA8D;IAC9D,MAAM,gBAAgB,GAAG,WAAW,KAAI,MAAA,gBAAgB,CAAC,CAAC,CAAC,0CAAE,WAAW,CAAA,CAAA;IAExE,OAAO;QACL,aAAa,EAAE;YACb,SAAS,EAAE;gBACT,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,IAAI;aACb;YACD,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,gBAAgB;gBAC3B,CAAC,CAAC;oBACE,EAAE,EAAE,gBAAgB,CAAC,EAAE;oBACvB,IAAI,EAAE,gBAAgB,CAAC,IAAI;oBAC3B,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB;oBACnD,WAAW,EAAE,gBAAgB,CAAC,WAAW;oBACzC,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB;oBACnD,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB;oBACnD,MAAM,EAAE,gBAAgB,CAAC,MAAM;oBAC/B,KAAK,EAAE,gBAAgB,CAAC,KAAK;oBAC7B,MAAM,EAAE,gBAAgB,CAAC,MAAM;oBAC/B,MAAM,EAAE,gBAAgB,CAAC,MAAM;iBAChC;gBACH,CAAC,CAAC,IAAI;YACR,eAAe,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,iBAAiB,EAAE,CAAC,CAAC,WAAW,CAAC,qEAAqE;SACvG;QACD,oBAAoB,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;;YAAC,OAAA,CAAC;gBAChD,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,cAAc,EAAE,MAAA,EAAE,CAAC,SAAS,0CAAE,cAAc;gBAC5C,WAAW,EAAE;oBACX,IAAI,EAAE,MAAA,EAAE,CAAC,WAAW,0CAAE,IAAI;iBAC3B;gBACD,WAAW,EAAE,MAAA,MAAA,EAAE,CAAC,SAAS,0CAAE,OAAO,0CAAE,IAAI;gBACxC,UAAU,EAAE,MAAA,MAAA,EAAE,CAAC,SAAS,0CAAE,OAAO,0CAAE,GAAG;gBACtC,eAAe,EAAE;oBACf,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,WAAW,EAAE,EAAE,CAAC,WAAW;oBAC3B,cAAc,EAAE,EAAE,CAAC,cAAc;oBACjC,OAAO,EAAE,CAAA,MAAA,EAAE,CAAC,SAAS,0CAAE,OAAO;wBAC5B,CAAC,CAAC;4BACE,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;4BAC3B,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG;4BAC7B,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI;yBAChC;wBACH,CAAC,CAAC,IAAI;oBACR,aAAa,EAAE,CAAA,MAAA,EAAE,CAAC,SAAS,0CAAE,aAAa;wBACxC,CAAC,CAAC;4BACE,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;yBAClC;wBACH,CAAC,CAAC,IAAI;iBACT;aACF,CAAC,CAAA;SAAA,CAAC;KACJ,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;GAOG;AACU,QAAA,4BAA4B,GAAG;IAC1C,KAAK,CAAC,4BAA4B,CAAC,CAAM,EAAE,EAAE,OAAO,EAAuB,EAAE,OAAY;QACvF,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAA0C,OAAO,CAAC,KAAK,CAAA;QAE3E,IAAI,mBAAmB,GAAqB,EAAE,CAAA;QAE9C,IAAI,gBAAgB,GAAgB,MAAM,+BAA+B,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;QAE1G,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,IAAI,yBAAY,CAAC,IAAI,EAAE;YACpE,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAA;SACjE;aAAM,IAAI,gBAAgB,EAAE;YAC3B,+FAA+F;YAC/F,mBAAmB,GAAG,MAAM,wBAAwB,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBAClE,aAAa,EAAE,gBAAgB,CAAC,EAAE;aACnC,CAAC,CAAC,OAAO,EAAE,CAAA;YAEZ,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,gEAAgE;gBAChE,OAAO,0BAA0B,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAA;aACzE;iBAAM;gBACL,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,EAAE,mBAAmB,CAAC,CAAA;aACpF;SACF;aAAM;YACL,8BAA8B;YAC9B,MAAM,WAAW,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,yBAAQ,CAAC,CAAC,OAAO,CAAC;gBACrE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;aACjC,CAAC,CAAA;YAEF,IAAI,WAAW,EAAE;gBACf,mBAAmB,GAAG,MAAM,wBAAwB,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;aAC9G;YAED,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,OAAO,0BAA0B,CAAC,mBAAmB,CAAC,CAAA;aACvD;iBAAM;gBACL,MAAM,IAAI,kBAAkB,CAAC,8BAA8B,EAAE,iBAAiB,CAAC,CAAA;aAChF;SACF;IACH,CAAC;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"find-loadable-release-good-by-bin.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/find-loadable-release-good-by-bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,18 +34,19 @@ async function getInventoryCounts(tx, domainId, releaseGoodId, binLocationId) {
|
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Assigns itemCounts and tabCounts to a release good based on inventory counts
|
|
37
|
+
*
|
|
38
|
+
* Business logic for "completed" items:
|
|
39
|
+
* - QC tab: completed = items that passed QC (LOADING + LOADED status)
|
|
40
|
+
* - LOADING tab: completed = items that were loaded (LOADED status)
|
|
41
|
+
* - LOADED tab: completed = items that are loaded (LOADED status)
|
|
37
42
|
*/
|
|
38
43
|
function assignCountsToReleaseGood(releaseGood, counts, tabName, isBinScan = false) {
|
|
39
44
|
const { loadingTotal, loadingCompleted, loadedTotal, loadedCompleted, total } = counts;
|
|
40
45
|
// Calculate completed count for current tab (backward compatibility)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
else {
|
|
46
|
-
// ORDER scan: QC tab considers LOADING+LOADED as completed
|
|
47
|
-
currentCompleted = tabName === 'QC' ? loadingTotal + loadedTotal : loadedTotal;
|
|
48
|
-
}
|
|
46
|
+
// For QC tab: completed = items that passed QC (LOADING + LOADED)
|
|
47
|
+
// For LOADING/LOADED tabs: completed = items that are loaded (LOADED)
|
|
48
|
+
// This logic applies to both BIN scan and ORDER scan
|
|
49
|
+
const currentCompleted = tabName === 'QC' ? loadingTotal + loadedTotal : loadedTotal;
|
|
49
50
|
// Backward compatibility: itemCounts for current tab
|
|
50
51
|
releaseGood['itemCounts'] = {
|
|
51
52
|
total,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-loadable-release-good.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/find-loadable-release-good.ts"],"names":[],"mappings":";;;AAEA,mEAAyD;AAEzD,2DAA8G;AAE9G;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,EAAiB,EACjB,QAAgB,EAChB,aAAqB,EACrB,aAAsB;IAQtB,MAAM,EAAE,GAAG,EAAE;SACV,aAAa,CAAC,2BAAc,CAAC;SAC7B,kBAAkB,CAAC,gBAAgB,CAAC;SACpC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;SAC3B,SAAS,CACR,yEAAyE,EACzE,cAAc,CACf;SACA,SAAS,CACR,wEAAwE,EACxE,aAAa,CACd;SACA,KAAK,CAAC,iDAAiD,EAAE,EAAE,aAAa,EAAE,CAAC;SAC3E,QAAQ,CAAC,sCAAsC,EAAE,EAAE,QAAQ,EAAE,CAAC;SAC9D,YAAY,CAAC,eAAe,EAAE,mCAAsB,CAAC,OAAO,CAAC;SAC7D,YAAY,CAAC,cAAc,EAAE,mCAAsB,CAAC,MAAM,CAAC,CAAA;IAE9D,IAAI,aAAa,EAAE;QACjB,EAAE,CAAC,QAAQ,CAAC,iDAAiD,EAAE,EAAE,aAAa,EAAE,CAAC,CAAA;KAClF;IAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,EAAE,CAAA;IAEnC,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACvD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAErD,OAAO;QACL,YAAY;QACZ,gBAAgB,EAAE,WAAW;QAC7B,WAAW;QACX,eAAe,EAAE,WAAW;QAC5B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;KACnC,CAAA;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"find-loadable-release-good.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/find-loadable-release-good.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const worksheet_base_1 = require("@things-factory/worksheet-base");
|
|
|
8
8
|
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
9
9
|
exports.loadByQty = {
|
|
10
10
|
async loadByQty(_, { worksheetDetailPatch }, context) {
|
|
11
|
-
var _a;
|
|
11
|
+
var _a, _b, _c;
|
|
12
12
|
try {
|
|
13
13
|
const { domain, user, tx } = context.state;
|
|
14
14
|
console.time('load');
|
|
@@ -52,52 +52,122 @@ exports.loadByQty = {
|
|
|
52
52
|
});
|
|
53
53
|
const updatedOrderInventories = [];
|
|
54
54
|
for (const wsd of updatedWorksheetDetails) {
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
// Check if this is combined data with multiple order inventory references
|
|
56
|
+
// (from bin scan flow with combineSameProductsWithAllRefs)
|
|
57
|
+
if (wsd.allRelatedOrderInvs && wsd.allRelatedOrderInvs.length > 0) {
|
|
58
|
+
// Combined mode: distribute loadedQty across multiple order inventories (FIFO)
|
|
59
|
+
let remainingLoadQty = wsd.loadedQty;
|
|
60
|
+
for (const ref of wsd.allRelatedOrderInvs) {
|
|
61
|
+
if (remainingLoadQty <= 0)
|
|
62
|
+
break;
|
|
63
|
+
let orderInventory = orderInventories.find(oi => oi.id === ref.id);
|
|
64
|
+
if (!orderInventory)
|
|
65
|
+
continue;
|
|
66
|
+
const foundWorksheetDetail = worksheet.worksheetDetails.find(foundWsd => foundWsd.targetInventory.id === orderInventory.id);
|
|
67
|
+
if (!foundWorksheetDetail)
|
|
68
|
+
continue;
|
|
69
|
+
// Skip if already loaded or DO generated
|
|
70
|
+
if (orderInventory.status === sales_base_1.ORDER_INVENTORY_STATUS.LOADED || orderInventory.deliveryOrderId !== null) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
// Calculate how much to load from this order inventory
|
|
74
|
+
const availableQty = orderInventory.pickedQty;
|
|
75
|
+
const qtyToLoad = Math.min(remainingLoadQty, availableQty);
|
|
76
|
+
remainingLoadQty -= qtyToLoad;
|
|
77
|
+
if (qtyToLoad === orderInventory.releaseQty) {
|
|
78
|
+
// Full load - mark as LOADED
|
|
79
|
+
orderInventory = Object.assign(Object.assign({}, orderInventory), { status: sales_base_1.ORDER_INVENTORY_STATUS.LOADED, updater: user, updatedAt: new Date() });
|
|
80
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).update(foundWorksheetDetail.id, {
|
|
81
|
+
status: worksheet_base_1.WORKSHEET_STATUS.DONE,
|
|
82
|
+
updater: user,
|
|
83
|
+
updatedAt: new Date()
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
else if (qtyToLoad < orderInventory.releaseQty && qtyToLoad > 0) {
|
|
87
|
+
// Partial load - split order inventory
|
|
88
|
+
const remainingOiQty = orderInventory.releaseQty - qtyToLoad;
|
|
89
|
+
const newOrderInventory = tx.getRepository(sales_base_1.OrderInventory).create(Object.assign(Object.assign({}, orderInventory), { id: undefined, name: sales_base_1.OrderNoGenerator.orderInventory(), releaseQty: remainingOiQty, releaseUomValue: (orderInventory.releaseUomValue / orderInventory.releaseQty) * remainingOiQty, pickedQty: orderInventory.pickedQty - qtyToLoad, sortedQty: orderInventory.sortedQty === 0 ? 0 : orderInventory.sortedQty - qtyToLoad, status: orderInventory.status, updater: user, updatedAt: new Date() }));
|
|
90
|
+
await tx.getRepository(sales_base_1.OrderInventory).save(newOrderInventory);
|
|
91
|
+
const newWorksheetDetail = tx.getRepository(worksheet_base_1.WorksheetDetail).create(Object.assign(Object.assign({}, foundWorksheetDetail), { id: undefined, name: `LOAD-DETAIL-` + (0, uuid_1.v4)(), worksheet: worksheet, targetInventory: newOrderInventory, status: worksheet_base_1.WORKSHEET_STATUS.EXECUTING, updater: user, updatedAt: new Date() }));
|
|
92
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).save(newWorksheetDetail);
|
|
93
|
+
orderInventory = Object.assign(Object.assign({}, orderInventory), { status: sales_base_1.ORDER_INVENTORY_STATUS.LOADED, releaseUomValue: (orderInventory.releaseUomValue / orderInventory.releaseQty) * qtyToLoad, releaseQty: qtyToLoad, pickedQty: qtyToLoad, sortedQty: qtyToLoad, updater: user, updatedAt: new Date() });
|
|
94
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).update(foundWorksheetDetail.id, {
|
|
95
|
+
status: worksheet_base_1.WORKSHEET_STATUS.DONE,
|
|
96
|
+
updater: user,
|
|
97
|
+
updatedAt: new Date()
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
// qtyToLoad is 0, skip this order inventory
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
const inventory = await tx.getRepository(warehouse_base_1.Inventory).findOne({
|
|
105
|
+
where: { id: orderInventory.inventoryId }
|
|
106
|
+
});
|
|
107
|
+
await (0, warehouse_base_1.generateInventoryHistory)(inventory, releaseGood, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.LOADING, 0, 0, user, tx);
|
|
108
|
+
updatedOrderInventories.push(orderInventory);
|
|
109
|
+
}
|
|
110
|
+
// Validate that all requested quantity was loaded
|
|
111
|
+
if (remainingLoadQty > 0) {
|
|
112
|
+
console.warn(`Could not fully distribute loadedQty for SKU ${wsd.productSku}. Remaining: ${remainingLoadQty}`);
|
|
113
|
+
}
|
|
61
114
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
updatedAt: new Date()
|
|
115
|
+
else {
|
|
116
|
+
// Standard mode: single order inventory reference
|
|
117
|
+
// Support both:
|
|
118
|
+
// 1. Match by worksheetDetail name (when using LOADING_WORKSHEET_V2 query)
|
|
119
|
+
// 2. Match by relatedOrderInv.id (when name is null)
|
|
120
|
+
let foundWorksheetDetail;
|
|
121
|
+
let orderInventory;
|
|
122
|
+
if (wsd.name) {
|
|
123
|
+
foundWorksheetDetail = worksheet.worksheetDetails.find(foundWsd => foundWsd.name === wsd.name);
|
|
124
|
+
if (foundWorksheetDetail) {
|
|
125
|
+
orderInventory = orderInventories.find(oi => oi.id === foundWorksheetDetail.targetInventory.id);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (!foundWorksheetDetail && ((_a = wsd.relatedOrderInv) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
129
|
+
orderInventory = orderInventories.find(oi => oi.id === wsd.relatedOrderInv.id);
|
|
130
|
+
if (orderInventory) {
|
|
131
|
+
foundWorksheetDetail = worksheet.worksheetDetails.find(foundWsd => foundWsd.targetInventory.id === orderInventory.id);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (!foundWorksheetDetail || !orderInventory) {
|
|
135
|
+
console.warn(`Could not find worksheet detail or order inventory for item: ${JSON.stringify({ name: wsd.name, relatedOrderInvId: (_b = wsd.relatedOrderInv) === null || _b === void 0 ? void 0 : _b.id, productSku: wsd.productSku })}`);
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
if (orderInventory.status === sales_base_1.ORDER_INVENTORY_STATUS.LOADED || orderInventory.deliveryOrderId !== null) {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (wsd.loadedQty > orderInventory.pickedQty) {
|
|
142
|
+
throw new Error('Load qty is more than picked qty for sku ' + wsd.productSku);
|
|
143
|
+
}
|
|
144
|
+
else if (wsd.loadedQty == orderInventory.releaseQty) {
|
|
145
|
+
orderInventory = Object.assign(Object.assign({}, orderInventory), { status: sales_base_1.ORDER_INVENTORY_STATUS.LOADED, updater: user, updatedAt: new Date() });
|
|
146
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).update(foundWorksheetDetail.id, {
|
|
147
|
+
status: worksheet_base_1.WORKSHEET_STATUS.DONE,
|
|
148
|
+
updater: user,
|
|
149
|
+
updatedAt: new Date()
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
else if (wsd.loadedQty < orderInventory.releaseQty) {
|
|
153
|
+
const remainingQty = orderInventory.releaseQty - wsd.loadedQty;
|
|
154
|
+
const newOrderInventory = tx.getRepository(sales_base_1.OrderInventory).create(Object.assign(Object.assign({}, orderInventory), { id: undefined, name: sales_base_1.OrderNoGenerator.orderInventory(), releaseQty: remainingQty, releaseUomValue: (orderInventory.releaseUomValue / orderInventory.releaseQty) * remainingQty, pickedQty: orderInventory.pickedQty - wsd.loadedQty, sortedQty: orderInventory.sortedQty === 0 ? 0 : orderInventory.sortedQty - wsd.loadedQty, status: orderInventory.status, updater: user, updatedAt: new Date() }));
|
|
155
|
+
await tx.getRepository(sales_base_1.OrderInventory).save(newOrderInventory);
|
|
156
|
+
const newWorksheetDetail = tx.getRepository(worksheet_base_1.WorksheetDetail).create(Object.assign(Object.assign({}, foundWorksheetDetail), { id: undefined, name: `LOAD-DETAIL-` + (0, uuid_1.v4)(), worksheet: worksheet, targetInventory: newOrderInventory, status: worksheet_base_1.WORKSHEET_STATUS.EXECUTING, updater: user, updatedAt: new Date() }));
|
|
157
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).save(newWorksheetDetail);
|
|
158
|
+
orderInventory = Object.assign(Object.assign({}, orderInventory), { status: sales_base_1.ORDER_INVENTORY_STATUS.LOADED, releaseUomValue: (orderInventory.releaseUomValue / orderInventory.releaseQty) * wsd.loadedQty, releaseQty: wsd.loadedQty, pickedQty: wsd.loadedQty, sortedQty: wsd.loadedQty, updater: user, updatedAt: new Date() });
|
|
159
|
+
await tx.getRepository(worksheet_base_1.WorksheetDetail).update(foundWorksheetDetail.id, {
|
|
160
|
+
status: worksheet_base_1.WORKSHEET_STATUS.DONE,
|
|
161
|
+
updater: user,
|
|
162
|
+
updatedAt: new Date()
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
const inventory = await tx.getRepository(warehouse_base_1.Inventory).findOne({
|
|
166
|
+
where: { id: orderInventory.inventoryId }
|
|
93
167
|
});
|
|
168
|
+
await (0, warehouse_base_1.generateInventoryHistory)(inventory, releaseGood, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.LOADING, 0, 0, user, tx);
|
|
169
|
+
updatedOrderInventories.push(orderInventory);
|
|
94
170
|
}
|
|
95
|
-
const inventory = await tx.getRepository(warehouse_base_1.Inventory).findOne({
|
|
96
|
-
where: { id: orderInventory.inventoryId }
|
|
97
|
-
});
|
|
98
|
-
// generate inventory history
|
|
99
|
-
await (0, warehouse_base_1.generateInventoryHistory)(inventory, releaseGood, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.LOADING, 0, 0, user, tx);
|
|
100
|
-
updatedOrderInventories.push(orderInventory);
|
|
101
171
|
}
|
|
102
172
|
if (updatedOrderInventories.length < 1) {
|
|
103
173
|
return false;
|
|
@@ -107,7 +177,7 @@ exports.loadByQty = {
|
|
|
107
177
|
truckNo: worksheetDetailPatch === null || worksheetDetailPatch === void 0 ? void 0 : worksheetDetailPatch.vehicleNo,
|
|
108
178
|
ownCollection: worksheetDetailPatch === null || worksheetDetailPatch === void 0 ? void 0 : worksheetDetailPatch.ownCollection,
|
|
109
179
|
totalPalletQty: worksheetDetailPatch === null || worksheetDetailPatch === void 0 ? void 0 : worksheetDetailPatch.palletQty,
|
|
110
|
-
contactPointRefId: ((
|
|
180
|
+
contactPointRefId: ((_c = releaseGood.deliverTo) === null || _c === void 0 ? void 0 : _c.id) || null
|
|
111
181
|
};
|
|
112
182
|
const createdDo = await (0, sales_base_1.generateDeliveryOrder)(deliveryOrder, updatedOrderInventories, releaseGood.bizplace, releaseGood, domain, user, tx);
|
|
113
183
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-by-qty.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/load-by-qty.ts"],"names":[],"mappings":";;;AAAA,qCAA2C;AAC3C,+BAAmC;AAInC,2DAQmC;AACnC,mEAA6G;AAC7G,mEAAgH;AAEnG,QAAA,SAAS,GAAG;IACvB,KAAK,CAAC,SAAS,CAAC,CAAM,EAAE,EAAE,oBAAoB,EAAE,EAAE,OAAY;;QAC5D,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;YAC7F,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACpB,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,gBAAgB,CAAA;YACrE,MAAM,aAAa,GAAG,oBAAoB,CAAC,aAAa,CAAA;YACxD,MAAM,WAAW,GAAgB,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAW,CAAC,CAAC,OAAO,CAAC;gBAC3E,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;gBACtC,SAAS,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC;aAC5C,CAAC,CAAA;YAEF,IAAI,CAAC,WAAW,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;aAC1C;YAED,MAAM,SAAS,GAAc,MAAM,EAAE,CAAC,aAAa,CAAC,0BAAS,CAAC,CAAC,OAAO,CAAC;gBACrE,KAAK,EAAE;oBACL,MAAM;oBACN,WAAW;oBACX,IAAI,EAAE,+BAAc,CAAC,OAAO;oBAC5B,MAAM,EAAE,IAAA,YAAE,EAAC;wBACT,iCAAgB,CAAC,SAAS;wBAC1B,iCAAgB,CAAC,iBAAiB;qBACnC,CAAC;iBACH;gBACD,SAAS,EAAE,CAAC,kBAAkB,EAAE,kCAAkC,EAAE,yBAAyB,CAAC;aAC/F,CAAC,CAAA;YAEF,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,aAAa,CAAC,CAAA;aACzE;YAED,MAAM,KAAK,GAAG,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAoB,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;YAC9F,MAAM,gBAAgB,GAAqB,MAAM,EAAE,CAAC,aAAa,CAAC,2BAAc,CAAC,CAAC,IAAI,CAAC;gBACrF,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,KAAK,CAAC,EAAE;gBACxB,SAAS,EAAE;oBACT,WAAW;oBACX,QAAQ;oBACR,UAAU;oBACV,aAAa;oBACb,SAAS;oBACT,eAAe;oBACf,aAAa;oBACb,cAAc;iBACf;aACF,CAAC,CAAA;YAEF,MAAM,uBAAuB,GAAqB,EAAE,CAAA;YACpD,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE;gBACzC,
|
|
1
|
+
{"version":3,"file":"load-by-qty.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/outbound/load-by-qty.ts"],"names":[],"mappings":"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"}
|