import { useState, useEffect } from "react"; import AuthenticatedLayout from "@/Layouts/AuthenticatedLayout"; import { Head, Link, router } from "@inertiajs/react"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/Components/ui/table"; import { Button } from "@/Components/ui/button"; import { Input } from "@/Components/ui/input"; import { Badge } from "@/Components/ui/badge"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger, DialogFooter, } from "@/Components/ui/dialog"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/Components/ui/select"; import { Label } from "@/Components/ui/label"; import { Plus, Search, FileText, ArrowLeftRight, Loader2, } from "lucide-react"; import { format } from "date-fns"; import Pagination from "@/Components/shared/Pagination"; import { toast } from "sonner"; export default function Index({ auth, orders, warehouses, filters }) { const [searchQuery, setSearchQuery] = useState(""); // Create Dialog State const [isCreateOpen, setIsCreateOpen] = useState(false); const [sourceWarehouseId, setSourceWarehouseId] = useState(""); const [targetWarehouseId, setTargetWarehouseId] = useState(""); const [creating, setCreating] = useState(false); // Handle warehouse filter change const handleFilterChange = (value) => { router.get(route('inventory.transfer.index'), { warehouse_id: value }, { preserveState: true, replace: true, }); }; const handleCreate = () => { if (!sourceWarehouseId) { toast.error("請選擇來源倉庫"); return; } if (!targetWarehouseId) { toast.error("請選擇目的倉庫"); return; } if (sourceWarehouseId === targetWarehouseId) { toast.error("來源與目的倉庫不能相同"); return; } setCreating(true); router.post(route('inventory.transfer.store'), { from_warehouse_id: sourceWarehouseId, to_warehouse_id: targetWarehouseId }, { onFinish: () => setCreating(false), onSuccess: () => { setIsCreateOpen(false); setSourceWarehouseId(""); setTargetWarehouseId(""); } }); }; const getStatusBadge = (status) => { switch (status) { case 'draft': return 草稿; case 'completed': return 已完成; case 'voided': return 已作廢; default: return {status}; } }; return (

庫存調撥

} >
setSearchQuery(e.target.value)} />
建立新調撥單
單號 狀態 來源倉庫 目的倉庫 建立日期 過帳日期 建立人員 操作 {orders.data.length === 0 ? ( 尚無調撥單 ) : ( orders.data.map((order) => ( {order.doc_no} {getStatusBadge(order.status)} {order.from_warehouse_name} {order.to_warehouse_name} {order.created_at} {order.posted_at} {order.created_by} )) )}
); }