'use client'; /** * 수주 선택 모달 */ import { useState } from 'react'; import { Search, X, FileText } from 'lucide-react'; import { Dialog, DialogContent, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Input } from '@/components/ui/input'; import { Badge } from '@/components/ui/badge'; import { mockSalesOrders } from './mockData'; import type { SalesOrder } from './types'; interface SalesOrderSelectModalProps { open: boolean; onOpenChange: (open: boolean) => void; onSelect: (order: SalesOrder) => void; } export function SalesOrderSelectModal({ open, onOpenChange, onSelect, }: SalesOrderSelectModalProps) { const [searchTerm, setSearchTerm] = useState(''); // 필터링된 수주 목록 const filteredOrders = mockSalesOrders.filter((order) => { if (!searchTerm) return true; const term = searchTerm.toLowerCase(); return ( order.orderNo.toLowerCase().includes(term) || order.client.toLowerCase().includes(term) || order.projectName.toLowerCase().includes(term) ); }); const handleSelect = (order: SalesOrder) => { onSelect(order); onOpenChange(false); }; return ( 수주 선택 {/* 검색 */}
setSearchTerm(e.target.value)} className="pl-9" />
{/* 안내 문구 */}

생산지시 가능한 수주 {filteredOrders.length}건 (회계확인 완료 상태)

{/* 수주 목록 */}
{filteredOrders.map((order) => (
handleSelect(order)} className="p-4 border rounded-lg cursor-pointer hover:bg-muted/50 transition-colors" >
{order.orderNo} {order.status}
납기: {order.dueDate}
{order.client}
{order.projectName}
{order.itemCount}개 품목 분할 {order.splitCount}건
))} {filteredOrders.length === 0 && (

검색 결과가 없습니다.

)}
); }