diff --git a/frontend/app/(main)/COMPANY_10/purchase/supplier/page.tsx b/frontend/app/(main)/COMPANY_10/purchase/supplier/page.tsx index 521f770e..4ae229ab 100644 --- a/frontend/app/(main)/COMPANY_10/purchase/supplier/page.tsx +++ b/frontend/app/(main)/COMPANY_10/purchase/supplier/page.tsx @@ -195,6 +195,10 @@ export default function SupplierManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -820,11 +824,12 @@ export default function SupplierManagementPage() { const allItems = res.data?.data?.data || res.data?.data?.rows || []; setItemTotalCount(allItems.length); const existingItemIds = new Set(priceItems.map((p: any) => p.item_id || p.item_number)); - const PURCHASE_CODES = ["s"]; // 구매관리 카테고리 코드 + const purchaseCode = categoryOptions["item_division"]?.find((o) => o.label === "구매관리")?.code; setItemSearchResults(allItems.filter((item: any) => { if (existingItemIds.has(item.item_number) || existingItemIds.has(item.id)) return false; - const divCodes = (item.division || "").split(",").map((c: string) => c.trim()); - return divCodes.some((code: string) => PURCHASE_CODES.includes(code)); + if (!purchaseCode) return true; + const div = item.division || ""; + return div.includes(purchaseCode); })); } catch { /* skip */ } finally { setItemSearchLoading(false); } }; diff --git a/frontend/app/(main)/COMPANY_10/sales/customer/page.tsx b/frontend/app/(main)/COMPANY_10/sales/customer/page.tsx index c500c7ae..96e2512c 100644 --- a/frontend/app/(main)/COMPANY_10/sales/customer/page.tsx +++ b/frontend/app/(main)/COMPANY_10/sales/customer/page.tsx @@ -195,6 +195,10 @@ export default function CustomerManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -811,7 +815,7 @@ export default function CustomerManagementPage() { const searchItems = async () => { setItemSearchLoading(true); try { - const salesCode = categoryOptions["division"]?.find((o) => o.label === "영업관리")?.code; + const salesCode = categoryOptions["item_division"]?.find((o) => o.label === "영업관리")?.code; const filters: any[] = salesCode ? [{ columnName: "division", operator: "contains", value: salesCode }] : []; diff --git a/frontend/app/(main)/COMPANY_16/purchase/supplier/page.tsx b/frontend/app/(main)/COMPANY_16/purchase/supplier/page.tsx index 8f2755e5..b4dc6be0 100644 --- a/frontend/app/(main)/COMPANY_16/purchase/supplier/page.tsx +++ b/frontend/app/(main)/COMPANY_16/purchase/supplier/page.tsx @@ -195,6 +195,10 @@ export default function SupplierManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -820,11 +824,12 @@ export default function SupplierManagementPage() { const allItems = res.data?.data?.data || res.data?.data?.rows || []; setItemTotalCount(allItems.length); const existingItemIds = new Set(priceItems.map((p: any) => p.item_id || p.item_number)); - const PURCHASE_CODES = ["s"]; // 구매관리 카테고리 코드 + const purchaseCode = categoryOptions["item_division"]?.find((o) => o.label === "구매관리")?.code; setItemSearchResults(allItems.filter((item: any) => { if (existingItemIds.has(item.item_number) || existingItemIds.has(item.id)) return false; - const divCodes = (item.division || "").split(",").map((c: string) => c.trim()); - return divCodes.some((code: string) => PURCHASE_CODES.includes(code)); + if (!purchaseCode) return true; + const div = item.division || ""; + return div.includes(purchaseCode); })); } catch { /* skip */ } finally { setItemSearchLoading(false); } }, [itemSearchKeyword, priceItems]); diff --git a/frontend/app/(main)/COMPANY_16/sales/customer/page.tsx b/frontend/app/(main)/COMPANY_16/sales/customer/page.tsx index e5821403..5ae6fc77 100644 --- a/frontend/app/(main)/COMPANY_16/sales/customer/page.tsx +++ b/frontend/app/(main)/COMPANY_16/sales/customer/page.tsx @@ -195,6 +195,10 @@ export default function CustomerManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -811,7 +815,7 @@ export default function CustomerManagementPage() { const searchItems = useCallback(async () => { setItemSearchLoading(true); try { - const salesCode = categoryOptions["division"]?.find((o) => o.label === "영업관리")?.code; + const salesCode = categoryOptions["item_division"]?.find((o) => o.label === "영업관리")?.code; const filters: any[] = salesCode ? [{ columnName: "division", operator: "contains", value: salesCode }] : []; diff --git a/frontend/app/(main)/COMPANY_29/purchase/supplier/page.tsx b/frontend/app/(main)/COMPANY_29/purchase/supplier/page.tsx index 521f770e..4ae229ab 100644 --- a/frontend/app/(main)/COMPANY_29/purchase/supplier/page.tsx +++ b/frontend/app/(main)/COMPANY_29/purchase/supplier/page.tsx @@ -195,6 +195,10 @@ export default function SupplierManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -820,11 +824,12 @@ export default function SupplierManagementPage() { const allItems = res.data?.data?.data || res.data?.data?.rows || []; setItemTotalCount(allItems.length); const existingItemIds = new Set(priceItems.map((p: any) => p.item_id || p.item_number)); - const PURCHASE_CODES = ["s"]; // 구매관리 카테고리 코드 + const purchaseCode = categoryOptions["item_division"]?.find((o) => o.label === "구매관리")?.code; setItemSearchResults(allItems.filter((item: any) => { if (existingItemIds.has(item.item_number) || existingItemIds.has(item.id)) return false; - const divCodes = (item.division || "").split(",").map((c: string) => c.trim()); - return divCodes.some((code: string) => PURCHASE_CODES.includes(code)); + if (!purchaseCode) return true; + const div = item.division || ""; + return div.includes(purchaseCode); })); } catch { /* skip */ } finally { setItemSearchLoading(false); } }; diff --git a/frontend/app/(main)/COMPANY_29/sales/customer/page.tsx b/frontend/app/(main)/COMPANY_29/sales/customer/page.tsx index c500c7ae..96e2512c 100644 --- a/frontend/app/(main)/COMPANY_29/sales/customer/page.tsx +++ b/frontend/app/(main)/COMPANY_29/sales/customer/page.tsx @@ -195,6 +195,10 @@ export default function CustomerManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -811,7 +815,7 @@ export default function CustomerManagementPage() { const searchItems = async () => { setItemSearchLoading(true); try { - const salesCode = categoryOptions["division"]?.find((o) => o.label === "영업관리")?.code; + const salesCode = categoryOptions["item_division"]?.find((o) => o.label === "영업관리")?.code; const filters: any[] = salesCode ? [{ columnName: "division", operator: "contains", value: salesCode }] : []; diff --git a/frontend/app/(main)/COMPANY_30/purchase/supplier/page.tsx b/frontend/app/(main)/COMPANY_30/purchase/supplier/page.tsx index 521f770e..4ae229ab 100644 --- a/frontend/app/(main)/COMPANY_30/purchase/supplier/page.tsx +++ b/frontend/app/(main)/COMPANY_30/purchase/supplier/page.tsx @@ -195,6 +195,10 @@ export default function SupplierManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -820,11 +824,12 @@ export default function SupplierManagementPage() { const allItems = res.data?.data?.data || res.data?.data?.rows || []; setItemTotalCount(allItems.length); const existingItemIds = new Set(priceItems.map((p: any) => p.item_id || p.item_number)); - const PURCHASE_CODES = ["s"]; // 구매관리 카테고리 코드 + const purchaseCode = categoryOptions["item_division"]?.find((o) => o.label === "구매관리")?.code; setItemSearchResults(allItems.filter((item: any) => { if (existingItemIds.has(item.item_number) || existingItemIds.has(item.id)) return false; - const divCodes = (item.division || "").split(",").map((c: string) => c.trim()); - return divCodes.some((code: string) => PURCHASE_CODES.includes(code)); + if (!purchaseCode) return true; + const div = item.division || ""; + return div.includes(purchaseCode); })); } catch { /* skip */ } finally { setItemSearchLoading(false); } }; diff --git a/frontend/app/(main)/COMPANY_30/sales/customer/page.tsx b/frontend/app/(main)/COMPANY_30/sales/customer/page.tsx index c500c7ae..96e2512c 100644 --- a/frontend/app/(main)/COMPANY_30/sales/customer/page.tsx +++ b/frontend/app/(main)/COMPANY_30/sales/customer/page.tsx @@ -195,6 +195,10 @@ export default function CustomerManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -811,7 +815,7 @@ export default function CustomerManagementPage() { const searchItems = async () => { setItemSearchLoading(true); try { - const salesCode = categoryOptions["division"]?.find((o) => o.label === "영업관리")?.code; + const salesCode = categoryOptions["item_division"]?.find((o) => o.label === "영업관리")?.code; const filters: any[] = salesCode ? [{ columnName: "division", operator: "contains", value: salesCode }] : []; diff --git a/frontend/app/(main)/COMPANY_7/purchase/supplier/page.tsx b/frontend/app/(main)/COMPANY_7/purchase/supplier/page.tsx index 521f770e..4ae229ab 100644 --- a/frontend/app/(main)/COMPANY_7/purchase/supplier/page.tsx +++ b/frontend/app/(main)/COMPANY_7/purchase/supplier/page.tsx @@ -195,6 +195,10 @@ export default function SupplierManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -820,11 +824,12 @@ export default function SupplierManagementPage() { const allItems = res.data?.data?.data || res.data?.data?.rows || []; setItemTotalCount(allItems.length); const existingItemIds = new Set(priceItems.map((p: any) => p.item_id || p.item_number)); - const PURCHASE_CODES = ["s"]; // 구매관리 카테고리 코드 + const purchaseCode = categoryOptions["item_division"]?.find((o) => o.label === "구매관리")?.code; setItemSearchResults(allItems.filter((item: any) => { if (existingItemIds.has(item.item_number) || existingItemIds.has(item.id)) return false; - const divCodes = (item.division || "").split(",").map((c: string) => c.trim()); - return divCodes.some((code: string) => PURCHASE_CODES.includes(code)); + if (!purchaseCode) return true; + const div = item.division || ""; + return div.includes(purchaseCode); })); } catch { /* skip */ } finally { setItemSearchLoading(false); } }; diff --git a/frontend/app/(main)/COMPANY_7/sales/customer/page.tsx b/frontend/app/(main)/COMPANY_7/sales/customer/page.tsx index c500c7ae..96e2512c 100644 --- a/frontend/app/(main)/COMPANY_7/sales/customer/page.tsx +++ b/frontend/app/(main)/COMPANY_7/sales/customer/page.tsx @@ -195,6 +195,10 @@ export default function CustomerManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -811,7 +815,7 @@ export default function CustomerManagementPage() { const searchItems = async () => { setItemSearchLoading(true); try { - const salesCode = categoryOptions["division"]?.find((o) => o.label === "영업관리")?.code; + const salesCode = categoryOptions["item_division"]?.find((o) => o.label === "영업관리")?.code; const filters: any[] = salesCode ? [{ columnName: "division", operator: "contains", value: salesCode }] : []; diff --git a/frontend/app/(main)/COMPANY_8/purchase/supplier/page.tsx b/frontend/app/(main)/COMPANY_8/purchase/supplier/page.tsx index 521f770e..4ae229ab 100644 --- a/frontend/app/(main)/COMPANY_8/purchase/supplier/page.tsx +++ b/frontend/app/(main)/COMPANY_8/purchase/supplier/page.tsx @@ -195,6 +195,10 @@ export default function SupplierManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -820,11 +824,12 @@ export default function SupplierManagementPage() { const allItems = res.data?.data?.data || res.data?.data?.rows || []; setItemTotalCount(allItems.length); const existingItemIds = new Set(priceItems.map((p: any) => p.item_id || p.item_number)); - const PURCHASE_CODES = ["s"]; // 구매관리 카테고리 코드 + const purchaseCode = categoryOptions["item_division"]?.find((o) => o.label === "구매관리")?.code; setItemSearchResults(allItems.filter((item: any) => { if (existingItemIds.has(item.item_number) || existingItemIds.has(item.id)) return false; - const divCodes = (item.division || "").split(",").map((c: string) => c.trim()); - return divCodes.some((code: string) => PURCHASE_CODES.includes(code)); + if (!purchaseCode) return true; + const div = item.division || ""; + return div.includes(purchaseCode); })); } catch { /* skip */ } finally { setItemSearchLoading(false); } }; diff --git a/frontend/app/(main)/COMPANY_8/sales/customer/page.tsx b/frontend/app/(main)/COMPANY_8/sales/customer/page.tsx index c500c7ae..96e2512c 100644 --- a/frontend/app/(main)/COMPANY_8/sales/customer/page.tsx +++ b/frontend/app/(main)/COMPANY_8/sales/customer/page.tsx @@ -195,6 +195,10 @@ export default function CustomerManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -811,7 +815,7 @@ export default function CustomerManagementPage() { const searchItems = async () => { setItemSearchLoading(true); try { - const salesCode = categoryOptions["division"]?.find((o) => o.label === "영업관리")?.code; + const salesCode = categoryOptions["item_division"]?.find((o) => o.label === "영업관리")?.code; const filters: any[] = salesCode ? [{ columnName: "division", operator: "contains", value: salesCode }] : []; diff --git a/frontend/app/(main)/COMPANY_9/purchase/supplier/page.tsx b/frontend/app/(main)/COMPANY_9/purchase/supplier/page.tsx index 521f770e..4ae229ab 100644 --- a/frontend/app/(main)/COMPANY_9/purchase/supplier/page.tsx +++ b/frontend/app/(main)/COMPANY_9/purchase/supplier/page.tsx @@ -195,6 +195,10 @@ export default function SupplierManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -820,11 +824,12 @@ export default function SupplierManagementPage() { const allItems = res.data?.data?.data || res.data?.data?.rows || []; setItemTotalCount(allItems.length); const existingItemIds = new Set(priceItems.map((p: any) => p.item_id || p.item_number)); - const PURCHASE_CODES = ["s"]; // 구매관리 카테고리 코드 + const purchaseCode = categoryOptions["item_division"]?.find((o) => o.label === "구매관리")?.code; setItemSearchResults(allItems.filter((item: any) => { if (existingItemIds.has(item.item_number) || existingItemIds.has(item.id)) return false; - const divCodes = (item.division || "").split(",").map((c: string) => c.trim()); - return divCodes.some((code: string) => PURCHASE_CODES.includes(code)); + if (!purchaseCode) return true; + const div = item.division || ""; + return div.includes(purchaseCode); })); } catch { /* skip */ } finally { setItemSearchLoading(false); } }; diff --git a/frontend/app/(main)/COMPANY_9/sales/customer/page.tsx b/frontend/app/(main)/COMPANY_9/sales/customer/page.tsx index c500c7ae..96e2512c 100644 --- a/frontend/app/(main)/COMPANY_9/sales/customer/page.tsx +++ b/frontend/app/(main)/COMPANY_9/sales/customer/page.tsx @@ -195,6 +195,10 @@ export default function CustomerManagementPage() { if (res.data?.success) optMap[col] = flatten(res.data.data || []); } catch { /* skip */ } } + try { + const res = await apiClient.get(`/table-categories/item_info/division/values`); + if (res.data?.success) optMap["item_division"] = flatten(res.data.data || []); + } catch { /* skip */ } setCategoryOptions(optMap); const priceOpts: Record = {}; @@ -811,7 +815,7 @@ export default function CustomerManagementPage() { const searchItems = async () => { setItemSearchLoading(true); try { - const salesCode = categoryOptions["division"]?.find((o) => o.label === "영업관리")?.code; + const salesCode = categoryOptions["item_division"]?.find((o) => o.label === "영업관리")?.code; const filters: any[] = salesCode ? [{ columnName: "division", operator: "contains", value: salesCode }] : [];