summaryrefslogtreecommitdiff
path: root/lib/vendors/table
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vendors/table')
-rw-r--r--lib/vendors/table/approve-vendor-dialog.tsx34
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);