|
|
|
@@ -530,7 +530,7 @@ console.log("🔍 DEBUG fgOrder.deliveryNos:", fgOrder.deliveryNos); |
|
|
|
pickOrderConsoCode: mergedPickOrder.consoCode, |
|
|
|
pickOrderTargetDate: mergedPickOrder.targetDate, |
|
|
|
pickOrderStatus: mergedPickOrder.status, |
|
|
|
pickOrderId: mergedPickOrder.pickOrderIds?.[0] || 0, // 使用第一个 pickOrderId |
|
|
|
pickOrderId: line.pickOrderId || mergedPickOrder.pickOrderIds?.[0] || 0, // 使用第一个 pickOrderId |
|
|
|
pickOrderCode: mergedPickOrder.pickOrderCodes?.[0] || "", |
|
|
|
pickOrderLineId: line.id, |
|
|
|
pickOrderLineRequiredQty: line.requiredQty, |
|
|
|
@@ -578,7 +578,7 @@ console.log("🔍 DEBUG fgOrder.deliveryNos:", fgOrder.deliveryNos); |
|
|
|
pickOrderConsoCode: mergedPickOrder.consoCodes?.[0] || "", // 修复:consoCodes 是数组 |
|
|
|
pickOrderTargetDate: mergedPickOrder.targetDate, |
|
|
|
pickOrderStatus: mergedPickOrder.status, |
|
|
|
pickOrderId: mergedPickOrder.pickOrderIds?.[0] || 0, // 使用第一个 pickOrderId |
|
|
|
pickOrderId: line.pickOrderId || mergedPickOrder.pickOrderIds?.[0] || 0, // 使用第一个 pickOrderId |
|
|
|
pickOrderCode: mergedPickOrder.pickOrderCodes?.[0] || "", |
|
|
|
pickOrderLineId: line.id, |
|
|
|
pickOrderLineRequiredQty: line.requiredQty, |
|
|
|
@@ -1371,6 +1371,26 @@ const paginatedData = useMemo(() => { |
|
|
|
const endIndex = startIndex + paginationController.pageSize; |
|
|
|
return combinedLotData.slice(startIndex, endIndex); // No sorting needed |
|
|
|
}, [combinedLotData, paginationController]); |
|
|
|
const allItemsReady = useMemo(() => { |
|
|
|
if (combinedLotData.length === 0) return false; |
|
|
|
|
|
|
|
return combinedLotData.every((lot: any) => { |
|
|
|
const status = lot.stockOutLineStatus?.toLowerCase(); |
|
|
|
const isRejected = |
|
|
|
status === 'rejected' || lot.lotAvailability === 'rejected'; |
|
|
|
const isCompleted = |
|
|
|
status === 'completed' || status === 'partially_completed' || status === 'partially_complete'; |
|
|
|
const isChecked = status === 'checked'; |
|
|
|
|
|
|
|
// 无库存(noLot)行:只要状态不是 pending/rejected 即视为已处理 |
|
|
|
if (lot.noLot === true) { |
|
|
|
return isChecked || isCompleted || isRejected; |
|
|
|
} |
|
|
|
|
|
|
|
// 正常 lot:必须已扫描/提交或者被拒收 |
|
|
|
return isChecked || isCompleted || isRejected; |
|
|
|
}); |
|
|
|
}, [combinedLotData]); |
|
|
|
const handleSubmitPickQtyWithQty = useCallback(async (lot: any, submitQty: number) => { |
|
|
|
if (!lot.stockOutLineId) { |
|
|
|
console.error("No stock out line found for this lot"); |
|
|
|
@@ -1789,7 +1809,10 @@ const handleSubmitPickQtyWithQty = useCallback(async (lot: any, submitQty: numbe |
|
|
|
variant="contained" |
|
|
|
color="success" |
|
|
|
onClick={handleSubmitAllScanned} |
|
|
|
disabled={scannedItemsCount === 0 || isSubmittingAll} |
|
|
|
disabled={ |
|
|
|
// scannedItemsCount === 0 |
|
|
|
!allItemsReady |
|
|
|
|| isSubmittingAll} |
|
|
|
sx={{ minWidth: '160px' }} |
|
|
|
> |
|
|
|
{isSubmittingAll ? ( |
|
|
|
|