summaryrefslogtreecommitdiff
path: root/lib/general-contracts/service.ts
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-12-01 03:09:00 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-12-01 03:09:00 +0000
commit3c9a95332298450c7e0f75bfb08944439e1a3739 (patch)
tree1ecc04bf97dfd572736ee56119b02bd72678720d /lib/general-contracts/service.ts
parentc92ddd6bae8e187cccfddb37373460ebea0ade27 (diff)
(최겸)구매 일반계약 템플릿 자동 연동 및 매핑 기능 추가
Diffstat (limited to 'lib/general-contracts/service.ts')
-rw-r--r--lib/general-contracts/service.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/general-contracts/service.ts b/lib/general-contracts/service.ts
index 991616d9..3f3dc8de 100644
--- a/lib/general-contracts/service.ts
+++ b/lib/general-contracts/service.ts
@@ -8,6 +8,7 @@ import { promises as fs } from 'fs'
import { generalContracts, generalContractItems, generalContractAttachments } from '@/db/schema/generalContract'
import { contracts, contractItems, contractEnvelopes, contractSigners } from '@/db/schema/contract'
import { basicContract, basicContractTemplates } from '@/db/schema/basicContractDocumnet'
+import { generalContractTemplates } from '@/db/schema'
import { vendors } from '@/db/schema/vendors'
import { users, roles, userRoles } from '@/db/schema/users'
import { projects } from '@/db/schema/projects'
@@ -2728,4 +2729,32 @@ export async function confirmContractReview(
console.error('당사 검토 확정 오류:', error)
throw error
}
+}
+
+// 계약 유형에 맞는 최신 템플릿 조회
+export async function getContractTemplateByContractType(contractType: string) {
+ try {
+ // 1. 정확한 타입 매칭 시도
+ const templates = await db
+ .select()
+ .from(generalContractTemplates)
+ .where(
+ and(
+ eq(generalContractTemplates.contractTemplateType, contractType),
+ eq(generalContractTemplates.status, 'ACTIVE')
+ )
+ )
+ .orderBy(desc(generalContractTemplates.revision)) // 최신 리비전 우선
+ .limit(1)
+
+ if (templates.length > 0) {
+ return { success: true, template: templates[0] }
+ }
+
+ // 2. 매칭되는 템플릿이 없을 경우 (필요 시 로직 추가)
+ return { success: false, error: '해당 계약 유형에 맞는 템플릿을 찾을 수 없습니다.' }
+ } catch (error) {
+ console.error('템플릿 조회 오류:', error)
+ return { success: false, error: '템플릿 조회 중 오류가 발생했습니다.' }
+ }
} \ No newline at end of file