summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-05-15 01:34:49 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-05-15 01:34:49 +0000
commited864fa46c7ce0aac2de4c5ba5d311ebfd7e6a88 (patch)
treeb04695b9c8a4d2b03ed1f44f318fa38d8c490364 /app
parent9beaabc8d1e0ac3a5c54c8202d3c690577bdbd39 (diff)
(대표님) 벤더 문서 관련 개발사항
Diffstat (limited to 'app')
-rw-r--r--app/[lng]/partners/(partners)/vendor-data/form/[packageId]/[formId]/[projectId]/[contractId]/page.tsx (renamed from app/[lng]/partners/(partners)/vendor-data/form/[packageId]/[formId]/page.tsx)32
1 files changed, 26 insertions, 6 deletions
diff --git a/app/[lng]/partners/(partners)/vendor-data/form/[packageId]/[formId]/page.tsx b/app/[lng]/partners/(partners)/vendor-data/form/[packageId]/[formId]/[projectId]/[contractId]/page.tsx
index dc8df262..71a02ab3 100644
--- a/app/[lng]/partners/(partners)/vendor-data/form/[packageId]/[formId]/page.tsx
+++ b/app/[lng]/partners/(partners)/vendor-data/form/[packageId]/[formId]/[projectId]/[contractId]/page.tsx
@@ -1,11 +1,15 @@
import DynamicTable from "@/components/form-data/form-data-table";
-import { getFormData, getFormId } from "@/lib/forms/services";
+import { findContractItemId, getFormData, getFormId } from "@/lib/forms/services";
interface IndexPageProps {
params: {
lng: string;
packageId: string;
formId: string;
+ projectId: string;
+ contractId: string;
+
+
};
searchParams?: {
mode?: string;
@@ -20,19 +24,35 @@ export default async function FormPage({ params, searchParams }: IndexPageProps)
const resolvedSearchParams = await searchParams;
// 3) 구조 분해 할당
- const { lng, packageId, formId: formCode } = resolvedParams;
+ const { lng, packageId, formId: formCode, projectId,contractId } = resolvedParams;
// URL 쿼리 파라미터에서 mode 가져오기 (await 해서 사용)
const mode = resolvedSearchParams?.mode === "ENG" ? "ENG" : "IM"; // 기본값은 IM
// 4) 변환
- const packageIdAsNumber = Number(packageId);
+ let packageIdAsNumber = Number(packageId);
+ const contractIdAsNumber = Number(contractId);
+
+ // packageId가 0이면 contractId와 formCode로 실제 contractItemId 찾기
+ if (packageIdAsNumber === 0 && contractIdAsNumber > 0) {
+ console.log(`packageId가 0이므로 contractId ${contractIdAsNumber}와 formCode ${formCode}로 contractItemId 조회`);
+
+ const foundContractItemId = await findContractItemId(contractIdAsNumber, formCode);
+
+ if (foundContractItemId) {
+ console.log(`contractItemId ${foundContractItemId}를 찾았습니다. 이 값을 사용합니다.`);
+ packageIdAsNumber = foundContractItemId;
+ } else {
+ console.warn(`contractItemId를 찾을 수 없습니다. packageId는 계속 0으로 유지됩니다.`);
+ }
+ }
// 5) DB 조회
- const { columns, data, projectId } = await getFormData(formCode, packageIdAsNumber);
+ const { columns, data } = await getFormData(formCode, packageIdAsNumber);
+
// 6) formId 및 report temp file 조회
- const { formId } = await getFormId(packageId, formCode);
+ const { formId } = await getFormId(String(packageIdAsNumber), formCode);
// 7) 예외 처리
if (!columns) {
@@ -50,7 +70,7 @@ export default async function FormPage({ params, searchParams }: IndexPageProps)
formId={formId}
columnsJSON={columns}
dataJSON={data}
- projectId={projectId}
+ projectId={Number(projectId)}
mode={mode} // 모드 전달
/>
</div>