diff --git a/src/components/FinishedGoodSearch/GoodPickExecutiondetail.tsx b/src/components/FinishedGoodSearch/GoodPickExecutiondetail.tsx
index ec6386b..ba53432 100644
--- a/src/components/FinishedGoodSearch/GoodPickExecutiondetail.tsx
+++ b/src/components/FinishedGoodSearch/GoodPickExecutiondetail.tsx
@@ -19,7 +19,6 @@ import {
TablePagination,
Modal,
Chip,
- Chip,
} from "@mui/material";
import TestQrCodeProvider from '../QrCodeScannerProvider/TestQrCodeProvider';
import { fetchLotDetail } from "@/app/api/inventory/actions";
@@ -46,7 +45,7 @@ import {
DoPickOrderDetail, // ✅ 必须添加
fetchFGPickOrdersByUserId
} from "@/app/api/pickOrder/actions";
-import FGPickOrderInfoCard from "./FGPickOrderInfoCard";
+
import FGPickOrderInfoCard from "./FGPickOrderInfoCard";
import LotConfirmationModal from "./LotConfirmationModal";
//import { fetchItem } from "@/app/api/settings/item";
@@ -445,13 +444,13 @@ const [isConfirmingLot, setIsConfirmingLot] = useState(false);
return allCompleted;
}, []);
const fetchAllCombinedLotData = useCallback(async (userId?: number, pickOrderIdOverride?: number) => {
- const fetchAllCombinedLotData = useCallback(async (userId?: number, pickOrderIdOverride?: number) => {
+
setCombinedDataLoading(true);
try {
const userIdToUse = userId || currentUserId;
console.log("🔍 fetchAllCombinedLotData called with userId:", userIdToUse);
- console.log("🔍 fetchAllCombinedLotData called with userId:", userIdToUse);
+
if (!userIdToUse) {
console.warn("⚠️ No userId available, skipping API call");
@@ -761,7 +760,6 @@ const [isConfirmingLot, setIsConfirmingLot] = useState(false);
console.log("✅ Transformed flat lot data:", flatLotData);
console.log("🔍 Total items (including null stock):", flatLotData.length);
- console.log("🔍 Total items (including null stock):", flatLotData.length);
setCombinedLotData(flatLotData);
setOriginalCombinedData(flatLotData);
@@ -777,7 +775,6 @@ const [isConfirmingLot, setIsConfirmingLot] = useState(false);
setCombinedDataLoading(false);
}
}, [currentUserId, selectedPickOrderId, checkAllLotsCompleted]);
- }, [currentUserId, selectedPickOrderId, checkAllLotsCompleted]);
// ✅ Add effect to check completion when lot data changes
useEffect(() => {
if (combinedLotData.length > 0) {
@@ -1609,24 +1606,9 @@ const handleSubmitPickQtyWithQty = useCallback(async (lot: any, submitQty: numbe
console.error("Error switching pick order:", error);
} finally {
setPickOrderSwitching(false);
- }
- }, [pickOrderSwitching, currentUserId, fetchAllCombinedLotData]);
- const handlePickOrderSwitch = useCallback(async (pickOrderId: number) => {
- if (pickOrderSwitching) return;
-
- setPickOrderSwitching(true);
- try {
- console.log("🔍 Switching to pick order:", pickOrderId);
- setSelectedPickOrderId(pickOrderId);
-
- // ✅ 强制刷新数据,确保显示正确的 pick order 数据
- await fetchAllCombinedLotData(currentUserId, pickOrderId);
- } catch (error) {
- console.error("Error switching pick order:", error);
- } finally {
- setPickOrderSwitching(false);
- }
- }, [pickOrderSwitching, currentUserId, fetchAllCombinedLotData]);
+ }
+ }, [pickOrderSwitching, currentUserId, fetchAllCombinedLotData]);
+
const handleStopScan = useCallback(() => {
console.log("⏹️ Stopping manual QR scan...");
setIsManualScanning(false);
@@ -1791,40 +1773,8 @@ const handleSubmitPickQtyWithQty = useCallback(async (lot: any, submitQty: numbe
{t("Departure Time")}: {fgPickOrders[0].DepartureTime || '-'}
- lotData={combinedLotData}
- onScanLot={handleQrCodeSubmit}
- filterActive={(lot) => (
- lot.lotAvailability !== 'rejected' &&
- lot.stockOutLineStatus !== 'rejected' &&
- lot.stockOutLineStatus !== 'completed'
- )}
- >
-
-
- {/* DO Header */}
- {fgPickOrdersLoading ? (
-
-
-
- ) : (
- fgPickOrders.length > 0 && (
-
-
- {/* 基本信息 */}
-
-
- {t("Shop Name")}: {fgPickOrders[0].shopName || '-'}
-
-
- {t("Store ID")}: {fgPickOrders[0].storeId || '-'}
-
-
- {t("Ticket No.")}: {fgPickOrders[0].ticketNo || '-'}
-
-
- {t("Departure Time")}: {fgPickOrders[0].DepartureTime || '-'}
-
-
+
+
@@ -2163,160 +2113,10 @@ paginatedData.map((lot, index) => {
/>
)}
-
-
- {isIssueLot ? (
- // ✅ Issue lot 只显示 Issue 按钮
-
- ) : (
- // ✅ Normal lot 显示两个按钮
-
-
-
-
-
- )}
-
-
-
- );
-})
- )}
-
-
-
-
-
- `${from}-${to} of ${count !== -1 ? count : `more than ${to}`}`
- }
- />
-
-
+
- {/* ✅ 保留:QR Code Modal */}
- {
- setQrModalOpen(false);
- setSelectedLotForQr(null);
- stopScan();
- resetScan();
- }}
- lot={selectedLotForQr}
- combinedLotData={combinedLotData}
- onQrCodeSubmit={handleQrCodeSubmitFromModal}
- />
-
- {/* ✅ 保留:Lot Confirmation Modal */}
- {lotConfirmationOpen && expectedLotData && scannedLotData && (
- {
- setLotConfirmationOpen(false);
- setExpectedLotData(null);
- setScannedLotData(null);
- }}
- onConfirm={handleLotConfirmation}
- expectedLot={expectedLotData}
- scannedLot={scannedLotData}
- isLoading={isConfirmingLot}
- />
- )}
-
- {/* ✅ 保留:Good Pick Execution Form Modal */}
- {pickExecutionFormOpen && selectedLotForExecutionForm && (
- {
- setPickExecutionFormOpen(false);
- setSelectedLotForExecutionForm(null);
- }}
- onSubmit={handlePickExecutionFormSubmit}
- selectedLot={selectedLotForExecutionForm}
- selectedPickOrderLine={{
- id: selectedLotForExecutionForm.pickOrderLineId,
- itemId: selectedLotForExecutionForm.itemId,
- itemCode: selectedLotForExecutionForm.itemCode,
- itemName: selectedLotForExecutionForm.itemName,
- pickOrderCode: selectedLotForExecutionForm.pickOrderCode,
- availableQty: selectedLotForExecutionForm.availableQty || 0,
- requiredQty: selectedLotForExecutionForm.requiredQty || 0,
- // uomCode: selectedLotForExecutionForm.uomCode || '',
- uomDesc: selectedLotForExecutionForm.uomDesc || '',
- pickedQty: selectedLotForExecutionForm.actualPickQty || 0,
- uomShortDesc: selectedLotForExecutionForm.uomShortDesc || '',
- suggestedList: []
- }}
- pickOrderId={selectedLotForExecutionForm.pickOrderId}
- pickOrderCreateDate={new Date()}
- />
- )}
-
+
+
);
};