From 93b6b8868d409c7f6c9d9222b93750848caaedde Mon Sep 17 00:00:00 2001
From: dujinkim <dujin.kim@dtsolution.co.kr>
Date: Fri, 5 Dec 2025 03:28:04 +0000
Subject: (최겸) 구매 입찰 수정
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../bidding/create/bidding-create-dialog.tsx       | 51 +++++++++++++++-------
 1 file changed, 36 insertions(+), 15 deletions(-)

(limited to 'components/bidding/create/bidding-create-dialog.tsx')

diff --git a/components/bidding/create/bidding-create-dialog.tsx b/components/bidding/create/bidding-create-dialog.tsx
index b3972e11..af33f1f6 100644
--- a/components/bidding/create/bidding-create-dialog.tsx
+++ b/components/bidding/create/bidding-create-dialog.tsx
@@ -63,7 +63,7 @@ import { PurchaseGroupCodeSelector } from '@/components/common/selectors/purchas
 import { ProcurementManagerSelector } from '@/components/common/selectors/procurement-manager'
 import type { PurchaseGroupCodeWithUser } from '@/components/common/selectors/purchase-group-code/purchase-group-code-service'
 import type { ProcurementManagerWithUser } from '@/components/common/selectors/procurement-manager/procurement-manager-service'
-import { createBidding } from '@/lib/bidding/service'
+import { createBidding, getUserDetails } from '@/lib/bidding/service'
 import { useSession } from 'next-auth/react'
 import { useRouter } from 'next/navigation'
 
@@ -97,13 +97,6 @@ export function BiddingCreateDialog({ form, onSuccess }: BiddingCreateDialogProp
     sparePartOptions: '',
   })
 
-  // 구매요청자 정보 (현재 사용자)
-  // React.useEffect(() => {
-  //   // 실제로는 현재 로그인한 사용자의 정보를 가져와야 함
-  //   // 임시로 기본값 설정
-  //   form.setValue('requesterName', '김두진') // 실제로는 API에서 가져와야 함
-  // }, [form])
-
   const [shiAttachmentFiles, setShiAttachmentFiles] = React.useState<File[]>([])
   const [vendorAttachmentFiles, setVendorAttachmentFiles] = React.useState<File[]>([])
 
@@ -164,13 +157,41 @@ export function BiddingCreateDialog({ form, onSuccess }: BiddingCreateDialogProp
 
   React.useEffect(() => {
     if (isOpen) {
-      if (userId && session?.user?.name) {
-        // 현재 사용자의 정보를 임시로 입찰담당자로 설정
-        form.setValue('bidPicName', session.user.name)
-        form.setValue('bidPicId', userId)
-        // userCode는 현재 세션에 없으므로 이름으로 설정 (실제로는 API에서 가져와야 함)
-        // form.setValue('bidPicCode', session.user.name)
+      const initUser = async () => {
+        if (userId) {
+          try {
+            const user = await getUserDetails(userId)
+            if (user) {
+              // 현재 사용자의 정보를 입찰담당자로 설정
+              form.setValue('bidPicName', user.name)
+              form.setValue('bidPicId', user.id)
+              form.setValue('bidPicCode', user.userCode || '')
+
+              // 담당자 selector 상태 업데이트
+              setSelectedBidPic({
+                PURCHASE_GROUP_CODE: user.userCode || '',
+                DISPLAY_NAME: user.name,
+                EMPLOYEE_NUMBER: user.employeeNumber || '',
+                user: {
+                  id: user.id,
+                  name: user.name,
+                  email: '', 
+                  employeeNumber: user.employeeNumber
+                }
+              } as any)
+            }
+          } catch (error) {
+            console.error('Failed to fetch user details:', error)
+            // 실패 시 세션 정보로 폴백
+            if (session?.user?.name) {
+              form.setValue('bidPicName', session.user.name)
+              form.setValue('bidPicId', userId)
+            }
+          }
+        }
       }
+      initUser()
+
       loadPaymentTerms()
       loadIncoterms()
       loadShippingPlaces()
@@ -181,7 +202,7 @@ export function BiddingCreateDialog({ form, onSuccess }: BiddingCreateDialogProp
         form.setValue('biddingConditions.taxConditions', 'V1')
       }
     }
-  }, [isOpen, loadPaymentTerms, loadIncoterms, loadShippingPlaces, loadDestinationPlaces, form])
+  }, [isOpen, userId, session, form, loadPaymentTerms, loadIncoterms, loadShippingPlaces, loadDestinationPlaces])
 
   // SHI용 파일 첨부 핸들러
   const handleShiFileUpload = (event: React.ChangeEvent<HTMLInputElement>) => {
-- 
cgit v1.2.3

