summaryrefslogtreecommitdiff
path: root/lib/general-contracts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/general-contracts')
-rw-r--r--lib/general-contracts/service.ts23
-rw-r--r--lib/general-contracts/utils.ts10
2 files changed, 29 insertions, 4 deletions
diff --git a/lib/general-contracts/service.ts b/lib/general-contracts/service.ts
index b803d2d4..d0fa7b7a 100644
--- a/lib/general-contracts/service.ts
+++ b/lib/general-contracts/service.ts
@@ -7,7 +7,7 @@ import path from 'path'
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 { basicContract, basicContractTemplates, buyerSignatures } from '@/db/schema/basicContractDocumnet'
import { generalContractTemplates } from '@/db/schema'
import { vendors } from '@/db/schema/vendors'
import { users, roles, userRoles } from '@/db/schema/users'
@@ -21,6 +21,9 @@ import { v4 as uuidv4 } from 'uuid'
import { GetGeneralContractsSchema } from './validation'
import { sendEmail } from '../mail/sendEmail'
+const DEFAULT_SHI_ADDRESS = '경기도 성남시 분당구 판교로 227번길 23'
+const DEFAULT_SHI_CEO_NAME = '최성안'
+
export async function getGeneralContracts(input: GetGeneralContractsSchema) {
try {
const offset = (input.page - 1) * input.perPage
@@ -800,6 +803,16 @@ export async function getBasicInfo(contractId: number) {
}
const contract = result[0]
+ const [activeBuyerSignature] = await db
+ .select()
+ .from(buyerSignatures)
+ .where(eq(buyerSignatures.isActive, true))
+ .limit(1)
+
+ const shiAddress = activeBuyerSignature?.shiAddress || DEFAULT_SHI_ADDRESS
+ const shiCeoName = activeBuyerSignature?.shiCeoName || DEFAULT_SHI_CEO_NAME
+ const buyerSignatureName = activeBuyerSignature?.name || '삼성중공업'
+
return {
success: true,
enabled: true, // basic-info는 항상 활성화
@@ -844,7 +857,13 @@ export async function getBasicInfo(contractId: number) {
interlockingSystem: contract.interlockingSystem,
mandatoryDocuments: contract.mandatoryDocuments,
contractTerminationConditions: contract.contractTerminationConditions,
- externalYardEntry: contract.externalYardEntry || 'N'
+ externalYardEntry: contract.externalYardEntry || 'N',
+
+ // SHI 서명 정보
+ shiAddress,
+ shiCeoName,
+ buyerSignatureName,
+ buyerSignatureId: activeBuyerSignature?.id || null,
}
}
} catch (error) {
diff --git a/lib/general-contracts/utils.ts b/lib/general-contracts/utils.ts
index ec15a3a1..5bbb5980 100644
--- a/lib/general-contracts/utils.ts
+++ b/lib/general-contracts/utils.ts
@@ -1,5 +1,8 @@
import { format } from "date-fns"
+const DEFAULT_SHI_ADDRESS = "경기도 성남시 분당구 판교로 227번길 23"
+const DEFAULT_SHI_CEO_NAME = "최성안"
+
/**
* ContractSummary 인터페이스 (UI 컴포넌트와 맞춤)
*/
@@ -20,6 +23,9 @@ export function mapContractDataToTemplateVariables(contractSummary: ContractSumm
const { basicInfo, items, storageInfo } = contractSummary
const firstItem = items && items.length > 0 ? items[0] : {}
+ const shiAddress = basicInfo.shiAddress || DEFAULT_SHI_ADDRESS
+ const shiCeoName = basicInfo.shiCeoName || DEFAULT_SHI_CEO_NAME
+
// 날짜 포맷팅 헬퍼 (YYYY-MM-DD)
const formatDate = (date: any) => {
if (!date) return ''
@@ -206,8 +212,8 @@ export function mapContractDataToTemplateVariables(contractSummary: ContractSumm
// ----------------------------------
// 당사(SHI) 정보 (고정값/설정값)
// ----------------------------------
- shiAddress: "경기도 성남시 분당구 판교로 227번길 23", // {{SHI_Address}}, {{위탁자 주소}}
- shiCeoName: "최성안", // {{SHI_CEO_Name}}, {{대표이사}}
+ shiAddress: shiAddress, // {{SHI_Address}}, {{위탁자 주소}}
+ shiCeoName: shiCeoName, // {{SHI_CEO_Name}}, {{대표이사}}
// ----------------------------------
// 품목 정보