diff options
| author | joonhoekim <26rote@gmail.com> | 2025-11-06 15:50:45 +0900 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-11-06 15:50:45 +0900 |
| commit | ba43cd261d10c6b0c5218a9da3f946993b21de6e (patch) | |
| tree | f902939afcd7a2c15359dc0a75eda43dadd540da /lib/vendors/table/approve-vendor-dialog.tsx | |
| parent | 9d00afc23fca94056ce630dfdd91e16010cad7aa (diff) | |
(김준회) 결재: 협력업체관리: 가입승인: 가입승인시 결재절차 구현 (템플릿 관련 부분은 미구현)
Diffstat (limited to 'lib/vendors/table/approve-vendor-dialog.tsx')
| -rw-r--r-- | lib/vendors/table/approve-vendor-dialog.tsx | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/lib/vendors/table/approve-vendor-dialog.tsx b/lib/vendors/table/approve-vendor-dialog.tsx index 980953aa..786399a4 100644 --- a/lib/vendors/table/approve-vendor-dialog.tsx +++ b/lib/vendors/table/approve-vendor-dialog.tsx @@ -28,7 +28,8 @@ import { DrawerTrigger, } from "@/components/ui/drawer" import { Vendor } from "@/db/schema/vendors" -import { approveVendors, rejectVendors } from "../service" +import { rejectVendors } from "../service" +import { approveVendorsWithApproval } from "../approval-actions" import { useSession } from "next-auth/react" interface VendorDecisionDialogProps @@ -55,25 +56,36 @@ export function VendorDecisionDialog({ return } + if (!session?.user?.epId) { + toast.error("Knox EP ID가 없습니다. 시스템 관리자에게 문의하세요.") + return + } + startApproveTransition(async () => { try { - console.log("🔍 [DEBUG] 승인 요청 시작 - vendors:", vendors.map(v => ({ id: v.id, vendorName: v.vendorName, email: v.email }))); - console.log("🔍 [DEBUG] 세션 정보:", { userId: session.user.id, userType: typeof session.user.id }); + console.log("🔍 [DEBUG] 결재 상신 시작 - vendors:", vendors.map(v => ({ id: v.id, vendorName: v.vendorName, email: v.email }))); + console.log("🔍 [DEBUG] 세션 정보:", { userId: session.user.id, epId: session.user.epId }); - const { error } = await approveVendors({ - ids: vendors.map((vendor) => vendor.id), - userId: Number(session.user.id) + const result = await approveVendorsWithApproval({ + vendorIds: vendors.map((vendor) => vendor.id), + currentUser: { + id: Number(session.user.id), + epId: session.user.epId as string, // 위에서 검증했으므로 타입 단언 + email: session.user.email || undefined, + }, + // TODO: 필요시 approvers 배열 추가 + // approvers: ['EP001', 'EP002'], }) - if (error) { - console.error("🚨 [DEBUG] 승인 처리 에러:", error); - toast.error(error) + if (!result.success) { + console.error("🚨 [DEBUG] 결재 상신 에러:", result.message); + toast.error(result.message || "결재 상신에 실패했습니다.") return } - console.log("✅ [DEBUG] 승인 처리 성공"); + console.log("✅ [DEBUG] 결재 상신 성공:", result); props.onOpenChange?.(false) - toast.success("협력업체 등록이 승인되었습니다.") + toast.success(`결재가 상신되었습니다. (결재ID: ${result.approvalId})`) onSuccess?.() } catch (error) { console.error("🚨 [DEBUG] 예상치 못한 에러:", error); |
