diff --git a/src/app/[locale]/(protected)/sales/quote-management/test-new/page.tsx b/src/app/[locale]/(protected)/sales/quote-management/test-new/page.tsx index 90c78208..c825e714 100644 --- a/src/app/[locale]/(protected)/sales/quote-management/test-new/page.tsx +++ b/src/app/[locale]/(protected)/sales/quote-management/test-new/page.tsx @@ -13,6 +13,8 @@ import { QuoteRegistrationV2, QuoteFormDataV2 } from '@/components/quotes/QuoteR import { IntegratedDetailTemplate } from '@/components/templates/IntegratedDetailTemplate'; import { quoteCreateConfig } from '@/components/quotes/quoteConfig'; import { toast } from 'sonner'; +import { createQuote } from '@/components/quotes/actions'; +import { transformV2ToApi } from '@/components/quotes/types'; export default function QuoteTestNewPage() { const router = useRouter(); @@ -25,20 +27,29 @@ export default function QuoteTestNewPage() { const handleSave = useCallback(async (data: QuoteFormDataV2, saveType: 'temporary' | 'final') => { setIsSaving(true); try { - // TODO: API 연동 시 실제 저장 로직 구현 - console.log('[테스트] 저장 데이터:', data); - console.log('[테스트] 저장 타입:', saveType); + // V2 폼 데이터를 API 형식으로 변환 + const updatedData = { ...data, status: saveType }; + const apiData = transformV2ToApi(updatedData); - // 테스트용 지연 - await new Promise((resolve) => setTimeout(resolve, 1000)); + console.log('[QuoteTestNewPage] 저장 데이터:', apiData); + console.log('[QuoteTestNewPage] 저장 타입:', saveType); - toast.success(`[테스트] ${saveType === 'temporary' ? '임시' : '최종'} 저장 완료`); + // API 호출 + const result = await createQuote(apiData); - // 저장 후 상세 페이지로 이동 (테스트용으로 ID=1 사용) - if (saveType === 'final') { - router.push('/sales/quote-management/test/1'); + if (!result.success) { + toast.error(result.error || '저장 중 오류가 발생했습니다.'); + return; + } + + toast.success(`${saveType === 'temporary' ? '임시' : '최종'} 저장 완료`); + + // 저장 후 상세 페이지로 이동 (실제 생성된 ID 사용) + if (result.data?.id) { + router.push(`/sales/quote-management/test/${result.data.id}`); } } catch (error) { + console.error('[QuoteTestNewPage] 저장 오류:', error); toast.error('저장 중 오류가 발생했습니다.'); } finally { setIsSaving(false);