/** * 驗收頁面 - Mobile-first RWD */ import { ArrowLeft } from "lucide-react"; import { Button } from "./ui/button"; import { InspectionOrderInfo } from "./inspection/InspectionOrderInfo"; import { InspectionTable } from "./inspection/InspectionTable"; import { InspectionAmountSummary } from "./inspection/InspectionAmountSummary"; import { InspectionAutoActions } from "./inspection/InspectionAutoActions"; import { InspectionActionBar } from "./inspection/InspectionActionBar"; import { StatusProgressBar } from "./purchase-order/StatusProgressBar"; import type { PurchaseOrder, PurchaseOrderItem } from "../types/purchase-order"; import { useInspection } from "../hooks/useInspection"; interface InspectionPageProps { order?: PurchaseOrder; onComplete: (orderId: string, items: PurchaseOrderItem[]) => void; onCancel: () => void; } export default function InspectionPage({ order, onComplete, onCancel, }: InspectionPageProps) { const { inspectionItems, statistics, updateReceivedQuantity, updateIssueNote, } = useInspection({ order }); const handleComplete = () => { if (!order) return; // 更新商品數量(使用實際收到的數量) const updatedItems: PurchaseOrderItem[] = inspectionItems.map((item) => ({ productId: item.productId, productName: item.productName, quantity: item.receivedQuantity, unit: item.unit, unitPrice: item.unitPrice, previousPrice: item.previousPrice, subtotal: item.receivedQuantity * item.unitPrice, })); onComplete(order.id, updatedItems); }; if (!order) { return (
未找到採購單資訊
); } const hasIssues = statistics.shortageItems > 0; const actualAmount = inspectionItems.reduce( (sum, item) => sum + item.receivedQuantity * item.unitPrice, 0 ); return (
{/* Header */}
{/* 返回按鈕 - 手機版和桌面版都顯示 */}

驗收與收貨

請確認實際收貨數量

{/* Main Content */}
{/* Level 1: 訂單資訊卡片 */} {/* Level 2: 商品驗收 */} {/* Level 3: 金額統計 */} {/* Level 4: 驗收後自動執行(收合狀態) */} {/* 操作按鈕 */}
); }