diff options
| author | joonhoekim <26rote@gmail.com> | 2025-11-24 20:50:31 +0900 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-11-24 20:50:31 +0900 |
| commit | 41bdba862edf3095c240ed316c3df31b31021ed8 (patch) | |
| tree | eb56d5f62eca58088ee56d7a1814dff74cc1ab8e /lib/bidding/failure | |
| parent | 6bc4162b19f06ad4f919270ebcd4ef18f31cd490 (diff) | |
(김준회) bidding: 빌드 오류 수정
Diffstat (limited to 'lib/bidding/failure')
| -rw-r--r-- | lib/bidding/failure/biddings-closure-dialog.tsx | 62 |
1 files changed, 26 insertions, 36 deletions
diff --git a/lib/bidding/failure/biddings-closure-dialog.tsx b/lib/bidding/failure/biddings-closure-dialog.tsx index 93ba0eda..f331167b 100644 --- a/lib/bidding/failure/biddings-closure-dialog.tsx +++ b/lib/bidding/failure/biddings-closure-dialog.tsx @@ -21,26 +21,13 @@ interface BiddingsClosureDialogProps { biddingNumber: string; } | null; onSuccess?: () => void; - onApprovalPreview?: (data: { - templateName: string - variables: Record<string, string> - title: string - description: string - files?: File[] - }) => void } - -interface ClosureFormData { - description: string; - files: File[]; -} export function BiddingsClosureDialog({ open, onOpenChange, bidding, - onSuccess, - onApprovalPreview + onSuccess }: BiddingsClosureDialogProps) { const { data: session } = useSession() const [description, setDescription] = useState('') @@ -55,34 +42,37 @@ interface ClosureFormData { return } - // 결재 템플릿 변수 준비 - const { mapBiddingClosureToTemplateVariables } = await import('@/lib/bidding/handlers') + setIsSubmitting(true) try { - const variables = await mapBiddingClosureToTemplateVariables({ + const result = await requestBiddingClosureWithApproval({ biddingId: bidding.id, description: description.trim(), - requestedAt: new Date() + files, + currentUser: { + id: session?.user?.id ? Number(session.user.id) : 0, + epId: session?.user?.epId || null, + email: session?.user?.email || undefined, + }, }) - // 상위 컴포넌트로 결재 미리보기 데이터 전달 - if (onApprovalPreview) { - onApprovalPreview({ - templateName: '폐찰 품의 요청서', - variables, - title: `폐찰 - ${bidding.title}`, - description: description.trim(), - files - }) + if (result.status === 'pending_approval') { + toast.success('폐찰 결재가 상신되었습니다.') + onOpenChange(false) + // 폼 초기화 + setDescription('') + setFiles([]) + if (onSuccess) { + onSuccess() + } + } else { + toast.error('결재 상신에 실패했습니다.') } - - onOpenChange(false) - // 폼 초기화 - setDescription('') - setFiles([]) } catch (error) { - console.error('폐찰 템플릿 변수 준비 실패:', error) - toast.error('결재 문서 준비 중 오류가 발생했습니다.') + console.error('폐찰 결재 상신 실패:', error) + toast.error(error instanceof Error ? error.message : '결재 상신 중 오류가 발생했습니다.') + } finally { + setIsSubmitting(false) } } @@ -158,6 +148,6 @@ interface ClosureFormData { </form> </DialogContent> </Dialog> - </> - ) + ) + }
\ No newline at end of file |
