diff options
Diffstat (limited to 'lib/rfq-last/service.ts')
| -rw-r--r-- | lib/rfq-last/service.ts | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/rfq-last/service.ts b/lib/rfq-last/service.ts index 7ebec795..68cfdac7 100644 --- a/lib/rfq-last/service.ts +++ b/lib/rfq-last/service.ts @@ -27,6 +27,37 @@ export async function getDefaultDueDate(): Promise<Date> { return defaultDueDate; } +export type Project = { + id: number; + projectCode: string; + projectName: string; + type: string; +} + +export async function getProjects(): Promise<Project[]> { + try { + // 트랜잭션을 사용하여 프로젝트 데이터 조회 + const projectList = await db.transaction(async (tx) => { + // 모든 프로젝트 조회 + const results = await tx + .select({ + id: projects.id, + projectCode: projects.code, // 테이블의 실제 컬럼명에 맞게 조정 + projectName: projects.name, // 테이블의 실제 컬럼명에 맞게 조정 + type: projects.type, // 테이블의 실제 컬럼명에 맞게 조정 + }) + .from(projects) + .orderBy(projects.code); + + return results; + }); + + return projectList; + } catch (error) { + console.error("프로젝트 목록 가져오기 실패:", error); + return []; // 오류 발생 시 빈 배열 반환 + } +} export async function getRfqs(input: GetRfqsSchema) { unstable_noStore(); @@ -47,6 +78,11 @@ export async function getRfqs(input: GetRfqsSchema) { typeFilter = like(rfqsLastView.rfqCode,'F%'); break; + case "pre_bidding": + // 사전견적(입찰): rfqCode가 B로 시작하는 경우 + typeFilter = + like(rfqsLastView.rfqCode,'B%'); + break; case "itb": // ITB: projectCompany가 있는 경우 typeFilter = @@ -106,6 +142,7 @@ export async function getRfqs(input: GetRfqsSchema) { ilike(rfqsLastView.projectName, s), ilike(rfqsLastView.rfqTitle, s), ilike(rfqsLastView.prNumber, s), + ilike(rfqsLastView.biddingNumber, s), ].filter(Boolean); if (searchConditions.length > 0) { |
