summaryrefslogtreecommitdiff
path: root/lib/vendor-pool/table/vendor-pool-table.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vendor-pool/table/vendor-pool-table.tsx')
-rw-r--r--lib/vendor-pool/table/vendor-pool-table.tsx75
1 files changed, 10 insertions, 65 deletions
diff --git a/lib/vendor-pool/table/vendor-pool-table.tsx b/lib/vendor-pool/table/vendor-pool-table.tsx
index 336c93f5..e41c0fd5 100644
--- a/lib/vendor-pool/table/vendor-pool-table.tsx
+++ b/lib/vendor-pool/table/vendor-pool-table.tsx
@@ -12,7 +12,7 @@ import { DataTable } from "@/components/data-table/data-table"
import { DataTableAdvancedToolbar } from "@/components/data-table/data-table-advanced-toolbar"
import { Button } from "@/components/ui/button"
import { toast } from "sonner"
-import { BulkImportDialog } from "./bulk-import-dialog"
+import { BulkInsertDialog } from "./bulk-insert-dialog"
import { columns, type VendorPoolItem } from "./vendor-pool-table-columns"
import { createVendorPool, updateVendorPool, deleteVendorPool } from "../service"
@@ -45,50 +45,22 @@ const createEmptyVendorPoolBase = (): Omit<VendorPool, 'id'> & { id?: string | n
designCategoryCode: "",
designCategory: "",
equipBulkDivision: "",
- packageCode: null,
- packageName: null,
materialGroupCode: null,
materialGroupName: null,
- smCode: null,
similarMaterialNamePurchase: null,
- similarMaterialNameOther: null,
vendorCode: null,
vendorName: "",
taxId: null,
faTarget: false,
faStatus: null,
- faRemark: null,
tier: null,
- isAgent: false,
- contractSignerCode: null,
- contractSignerName: "",
headquarterLocation: "",
manufacturingLocation: "",
avlVendorName: null,
similarVendorName: null,
- hasAvl: false,
isBlacklist: false,
isBcc: false,
purchaseOpinion: null,
- shipTypeCommon: false,
- shipTypeAmax: false,
- shipTypeSmax: false,
- shipTypeVlcc: false,
- shipTypeLngc: false,
- shipTypeCont: false,
- offshoreTypeCommon: false,
- offshoreTypeFpso: false,
- offshoreTypeFlng: false,
- offshoreTypeFpu: false,
- offshoreTypePlatform: false,
- offshoreTypeWtiv: false,
- offshoreTypeGom: false,
- picName: null,
- picEmail: null,
- picPhone: null,
- agentName: null,
- agentEmail: null,
- agentPhone: null,
recentQuoteDate: null,
recentQuoteNumber: null,
recentOrderDate: null,
@@ -111,7 +83,7 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP
const [isCreating, setIsCreating] = React.useState(false)
// 일괄입력 다이얼로그 상태
- const [bulkImportDialogOpen, setBulkImportDialogOpen] = React.useState(false)
+ const [bulkInsertDialogOpen, setBulkInsertDialogOpen] = React.useState(false)
@@ -309,7 +281,7 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP
const finalData = { ...rowData, ...changes }
// 필수 필드 검증 (최종 데이터 기준)
- const requiredFields = ['constructionSector', 'htDivision', 'designCategory', 'vendorName', 'materialGroupCode', 'materialGroupName', 'tier', 'contractSignerName', 'headquarterLocation', 'manufacturingLocation', 'avlVendorName']
+ const requiredFields = ['constructionSector', 'htDivision', 'designCategory', 'vendorName', 'materialGroupCode', 'materialGroupName', 'tier', 'headquarterLocation', 'manufacturingLocation', 'avlVendorName']
// 필드명과 한국어 레이블 매핑
const fieldLabels: Record<string, string> = {
@@ -320,7 +292,6 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP
materialGroupCode: '자재그룹코드',
materialGroupName: '자재그룹명',
tier: '등급(Tier)',
- contractSignerName: '계약서명주체명',
headquarterLocation: '위치(국가)',
manufacturingLocation: '제작/선적지(국가)',
avlVendorName: 'AVL등재업체명'
@@ -436,22 +407,6 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP
]
},
{
- id: "isAgent",
- label: "Agent 여부",
- options: [
- { label: "Agent", value: "true" },
- { label: "일반", value: "false" },
- ]
- },
- {
- id: "hasAvl",
- label: "AVL 존재",
- options: [
- { label: "있음", value: "true" },
- { label: "없음", value: "false" },
- ]
- },
- {
id: "isBlacklist",
label: "Blacklist",
options: [
@@ -500,16 +455,6 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP
type: "text",
},
{
- id: "packageCode",
- label: "패키지 코드",
- type: "text",
- },
- {
- id: "packageName",
- label: "패키지 명",
- type: "text",
- },
- {
id: "materialGroupCode",
label: "자재그룹 코드",
type: "text",
@@ -638,7 +583,7 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP
break
case 'bulk-import':
- setBulkImportDialogOpen(true)
+ setBulkInsertDialogOpen(true)
break
case 'save':
@@ -698,7 +643,7 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP
}, [table, onRefresh])
// 일괄입력 핸들러
- const handleBulkImport = React.useCallback(async (bulkData: Record<string, any>) => {
+ const handleBulkInsert = React.useCallback(async (bulkData: Record<string, any>) => {
const selectedRows = table.getFilteredSelectedRowModel().rows
if (selectedRows.length === 0) {
@@ -720,7 +665,7 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP
}
toast.success(`${selectedRows.length}개 행에 일괄 입력이 적용되었습니다.`)
- setBulkImportDialogOpen(false)
+ setBulkInsertDialogOpen(false)
} catch (error) {
console.error('일괄입력 처리 실패:', error)
toast.error('일괄입력 처리 중 오류가 발생했습니다.')
@@ -821,10 +766,10 @@ export function VendorPoolTable({ data, pageCount, onRefresh }: VendorPoolTableP
</DataTableAdvancedToolbar>
</DataTable>
- <BulkImportDialog
- open={bulkImportDialogOpen}
- onOpenChange={setBulkImportDialogOpen}
- onSubmit={handleBulkImport}
+ <BulkInsertDialog
+ open={bulkInsertDialogOpen}
+ onOpenChange={setBulkInsertDialogOpen}
+ onSubmit={handleBulkInsert}
/>
</>
)