diff options
Diffstat (limited to 'lib/vendor-data/services.ts')
| -rw-r--r-- | lib/vendor-data/services.ts | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/lib/vendor-data/services.ts b/lib/vendor-data/services.ts index 0ec935b9..e8ecd01c 100644 --- a/lib/vendor-data/services.ts +++ b/lib/vendor-data/services.ts @@ -3,11 +3,10 @@ import db from "@/db/db" import { items } from "@/db/schema/items" import { projects } from "@/db/schema/projects" -import { Tag, tags } from "@/db/schema/vendorData" import { eq } from "drizzle-orm" -import { revalidateTag, unstable_noStore } from "next/cache"; -import { unstable_cache } from "@/lib/unstable-cache"; import { contractItems, contracts } from "@/db/schema/contract"; +import { getServerSession } from "next-auth"; +import { authOptions } from "@/app/api/auth/[...nextauth]/route"; export interface ProjectWithContracts { projectId: number @@ -20,16 +19,22 @@ export interface ProjectWithContracts { contractNo: string contractName: string packages: { - itemId: number + itemId: number // contract_items.id itemName: string }[] }[] } export async function getVendorProjectsAndContracts( - vendorId: number + vendorId?: number ): Promise<ProjectWithContracts[]> { - const rows = await db + // 세션에서 도메인 정보 가져오기 + const session = await getServerSession(authOptions) + + // EVCP 도메인일 때만 전체 조회 + const isEvcpDomain = session?.user?.domain === "evcp" + + const query = db .select({ projectId: projects.id, projectCode: projects.code, @@ -47,7 +52,12 @@ export async function getVendorProjectsAndContracts( .innerJoin(projects, eq(contracts.projectId, projects.id)) .innerJoin(contractItems, eq(contractItems.contractId, contracts.id)) .innerJoin(items, eq(contractItems.itemId, items.id)) - .where(eq(contracts.vendorId, vendorId)) + + if (!isEvcpDomain && vendorId) { + query.where(eq(contracts.vendorId, vendorId)) + } + + const rows = await query const projectMap = new Map<number, ProjectWithContracts>() @@ -71,6 +81,7 @@ export async function getVendorProjectsAndContracts( (c) => c.contractId === row.contractId ) if (!contractEntry) { + // 새 계약 항목 contractEntry = { contractId: row.contractId, @@ -97,4 +108,5 @@ export async function getVendorProjectsAndContracts( } return Array.from(projectMap.values()) -}
\ No newline at end of file +} + |
