"use client"; import { useState, useCallback, useEffect } from "react"; import { DataGrid, type GridColumn } from "@/components/grid/data-grid"; import { SearchForm, SearchField } from "@/components/layout/search-form"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; // scm/scmInvoiceList.jsp 대응 - SCM 거래명세서관리 export default function ScmInvoicePage() { const [year, setYear] = useState(new Date().getFullYear().toString()); const [supplierName, setSupplierName] = useState(""); const [invoiceDateFrom, setInvoiceDateFrom] = useState(""); const [invoiceDateTo, setInvoiceDateTo] = useState(""); const [data, setData] = useState[]>([]); const columns: GridColumn[] = [ { title: "거래명세서번호", field: "INVOICE_NO", width: 140, hozAlign: "left", cellClick: (row) => window.open(`/scm/invoice/form?objId=${row.OBJID}`, "scmInvoiceDetail", "width=1000,height=700") }, { title: "공급업체", field: "SUPPLIER_NAME", width: 150, hozAlign: "left" }, { title: "프로젝트번호", field: "PROJECT_NO", width: 120, hozAlign: "left" }, { title: "발행일", field: "INVOICE_DATE", width: 100, hozAlign: "center" }, { title: "공급가액", field: "SUPPLY_AMOUNT", width: 120, hozAlign: "right", formatter: "money" }, { title: "세액", field: "TAX_AMOUNT", width: 100, hozAlign: "right", formatter: "money" }, { title: "합계", field: "TOTAL_AMOUNT", width: 120, hozAlign: "right", formatter: "money" }, { title: "상태", field: "STATUS_NAME", width: 80, hozAlign: "center" }, { title: "등록자", field: "WRITER_NAME", width: 80, hozAlign: "center" }, ]; const fetchData = useCallback(async () => { const res = await fetch("/api/scm/invoice", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ year, supplier_name: supplierName, invoice_date_from: invoiceDateFrom, invoice_date_to: invoiceDateTo, }), }); if (res.ok) { const json = await res.json(); setData(json.RESULTLIST || []); } }, [year, supplierName, invoiceDateFrom, invoiceDateTo]); // 페이지 진입 시 자동 로드 useEffect(() => { fetchData(); }, [fetchData]); return (

SCM 거래명세서관리

setSupplierName(e.target.value)} className="w-[150px]" /> setInvoiceDateFrom(e.target.value)} className="w-[140px]" /> setInvoiceDateTo(e.target.value)} className="w-[140px]" />
); }