diff options
Diffstat (limited to 'lib/avl/table')
| -rw-r--r-- | lib/avl/table/avl-vendor-add-and-modify-dialog.tsx | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/lib/avl/table/avl-vendor-add-and-modify-dialog.tsx b/lib/avl/table/avl-vendor-add-and-modify-dialog.tsx index 4f0eb404..8fb910da 100644 --- a/lib/avl/table/avl-vendor-add-and-modify-dialog.tsx +++ b/lib/avl/table/avl-vendor-add-and-modify-dialog.tsx @@ -31,6 +31,7 @@ import type { VendorSearchItem } from "@/components/common/vendor" import { PlaceOfShippingSelector } from "@/components/common/selectors/place-of-shipping" import { VendorTierSelector } from "@/components/common/selectors/vendor-tier" import { DatePicker } from "@/components/ui/date-picker" +import { NationSelector, type NationCode } from "@/components/common/selectors/nation" interface AvlVendorAddAndModifyDialogProps { open: boolean @@ -71,6 +72,8 @@ export function AvlVendorAddAndModifyDialog({ const [selectedMaterialGroup, setSelectedMaterialGroup] = React.useState<MaterialSearchItem | null>(null) // 벤더 선택 상태 const [selectedVendor, setSelectedVendor] = React.useState<VendorSearchItem | null>(null) + // 본사 위치 국가 선택 상태 + const [selectedHeadquarterNation, setSelectedHeadquarterNation] = React.useState<NationCode | undefined>(undefined) // 날짜 상태 (Date 객체로 관리) const [quoteReceivedDate, setQuoteReceivedDate] = React.useState<Date | undefined>(undefined) const [recentQuoteDate, setRecentQuoteDate] = React.useState<Date | undefined>(undefined) @@ -193,6 +196,10 @@ export function AvlVendorAddAndModifyDialog({ setSelectedVendor(null) } + // 본사 위치 국가 선택 상태 초기화 (현재는 국가명만 저장되어 있으므로 undefined로 설정) + // 실제로는 저장된 국가명으로부터 국가코드를 찾아서 설정해야 하지만, 단순화를 위해 undefined로 설정 + setSelectedHeadquarterNation(undefined) + // 날짜 상태 초기화 setQuoteReceivedDate(editingItem.quoteReceivedDate ? new Date(editingItem.quoteReceivedDate) : undefined) setRecentQuoteDate(editingItem.recentQuoteDate ? new Date(editingItem.recentQuoteDate) : undefined) @@ -288,6 +295,8 @@ export function AvlVendorAddAndModifyDialog({ setSelectedMaterialGroup(null) // 벤더 선택 상태 초기화 setSelectedVendor(null) + // 본사 위치 국가 선택 상태 초기화 + setSelectedHeadquarterNation(undefined) // 날짜 상태 초기화 setQuoteReceivedDate(undefined) setRecentQuoteDate(undefined) @@ -339,6 +348,15 @@ export function AvlVendorAddAndModifyDialog({ } }, []) + // 본사 위치 국가 선택 핸들러 + const handleHeadquarterNationSelect = React.useCallback((nation: NationCode) => { + setSelectedHeadquarterNation(nation) + setFormData(prev => ({ + ...prev, + headquarterLocation: nation.CDNM // 한국어 국가명 저장 + })) + }, []) + const handleSubmit = async () => { // 공통 필수 필드 검증 if (!formData.disciplineName || !formData.materialNameCustomerSide) { @@ -387,6 +405,7 @@ export function AvlVendorAddAndModifyDialog({ setSelectedDiscipline(undefined) setSelectedMaterialGroup(null) setSelectedVendor(null) + setSelectedHeadquarterNation(undefined) setQuoteReceivedDate(undefined) setRecentQuoteDate(undefined) setRecentOrderDate(undefined) @@ -444,6 +463,7 @@ export function AvlVendorAddAndModifyDialog({ setSelectedDiscipline(undefined) setSelectedMaterialGroup(null) setSelectedVendor(null) + setSelectedHeadquarterNation(undefined) setQuoteReceivedDate(undefined) setRecentQuoteDate(undefined) setRecentOrderDate(undefined) @@ -767,12 +787,18 @@ export function AvlVendorAddAndModifyDialog({ <div className="grid grid-cols-2 gap-4"> <div className="space-y-2"> <Label htmlFor="headquarterLocation">본사 위치 (국가)</Label> - <Input - id="headquarterLocation" - value={formData.headquarterLocation} - onChange={(e) => setFormData(prev => ({ ...prev, headquarterLocation: e.target.value }))} - placeholder="본사 위치를 입력하세요" + <NationSelector + selectedNation={selectedHeadquarterNation} + onNationSelect={handleHeadquarterNationSelect} + disabled={false} + placeholder={formData.headquarterLocation || "본사 위치 국가를 선택하세요"} + className="h-9" /> + <div className="text-xs text-muted-foreground"> + {selectedHeadquarterNation && ( + <span>선택됨: [{selectedHeadquarterNation.CD}] {selectedHeadquarterNation.CDNM}</span> + )} + </div> </div> <div className="space-y-2"> <Label htmlFor="manufacturingLocation">제작/선적지 (국가)</Label> |
