优化
This commit is contained in:
@@ -138,7 +138,19 @@ async function changeOutboundType() { selectedReturnNo.value = ''; selectedRetur
|
||||
async function loadTransferCandidates() {
|
||||
inventoryLoading.value = true
|
||||
try {
|
||||
transferCandidates.value = await listWarehouseTransferOutboundCandidates({ customerId: selectedCustomerId.value || undefined, warehouseId: selectedWarehouseId.value || undefined })
|
||||
const pallets = await listWarehouseTransferOutboundCandidates({ customerId: selectedCustomerId.value || undefined, warehouseId: selectedWarehouseId.value || undefined })
|
||||
// The API returns pallet rows, but destination binding applies to the whole transfer.
|
||||
const transfers = new Map<string, WarehouseTransferOutboundCandidate>()
|
||||
for (const pallet of pallets) {
|
||||
const key = transferSelectionKey(pallet)
|
||||
const transfer = transfers.get(key)
|
||||
if (transfer) {
|
||||
transfer.packageCount += pallet.packageCount
|
||||
transfer.grossWeightKg = sumTransferMeasurement(transfer.grossWeightKg, pallet.grossWeightKg)
|
||||
transfer.volumeCbm = sumTransferMeasurement(transfer.volumeCbm, pallet.volumeCbm)
|
||||
} else transfers.set(key, { ...pallet })
|
||||
}
|
||||
transferCandidates.value = [...transfers.values()]
|
||||
const candidateKeys = new Set(transferCandidates.value.map(transferSelectionKey))
|
||||
selectedTransferPalletIds.value = selectedTransferPalletIds.value.filter(key => candidateKeys.has(key))
|
||||
if (transferCandidates.value.length === 1) selectedTransferPalletIds.value = [transferSelectionKey(transferCandidates.value[0])]
|
||||
@@ -149,6 +161,9 @@ async function loadTransferCandidates() {
|
||||
} finally { inventoryLoading.value = false }
|
||||
}
|
||||
function transferSelectionKey(row: WarehouseTransferOutboundCandidate) { return `${row.customerId}:${row.transferNo}` }
|
||||
function sumTransferMeasurement(left?: number | null, right?: number | null) {
|
||||
return left == null && right == null ? null : Number(((left ?? 0) + (right ?? 0)).toFixed(6))
|
||||
}
|
||||
function toggleTransferPallet(row: WarehouseTransferOutboundCandidate, checked: boolean | string | number) { const key = transferSelectionKey(row); selectedTransferPalletIds.value = checked ? [...new Set([...selectedTransferPalletIds.value, key])] : selectedTransferPalletIds.value.filter(id => id !== key) }
|
||||
function transferDestinationLabel(row: WarehouseTransferOutboundCandidate) {
|
||||
if (row.destinationType === 'PRIVATE' || row.privateDestinationAddress?.trim()) {
|
||||
|
||||
Reference in New Issue
Block a user