summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/[lng]/evcp/(evcp)/(procurement)/pq_new/[vendorId]/[submissionId]/page.tsx6
-rw-r--r--app/[lng]/partners/(partners)/pq_new/[id]/page.tsx35
-rw-r--r--app/[lng]/partners/(partners)/pq_new/page.tsx10
3 files changed, 46 insertions, 5 deletions
diff --git a/app/[lng]/evcp/(evcp)/(procurement)/pq_new/[vendorId]/[submissionId]/page.tsx b/app/[lng]/evcp/(evcp)/(procurement)/pq_new/[vendorId]/[submissionId]/page.tsx
index 974550c6..5baf6efb 100644
--- a/app/[lng]/evcp/(evcp)/(procurement)/pq_new/[vendorId]/[submissionId]/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(procurement)/pq_new/[vendorId]/[submissionId]/page.tsx
@@ -54,7 +54,11 @@ export default async function PQReviewPage(props: PQReviewPageProps) {
const pqSubmission = await getPQById(submissionId, vendorId)
// PQ 데이터 조회 (질문과 답변)
- const pqData = await getPQDataByVendorId(vendorId, pqSubmission.projectId || undefined)
+ const pqData = await getPQDataByVendorId(
+ vendorId,
+ pqSubmission.projectId || undefined,
+ pqSubmission.type as "GENERAL" | "PROJECT" | "NON_INSPECTION"
+ )
// 협력업체 정보 (pqSubmission에 이미 포함되어 있음)
const vendorInfo = {
diff --git a/app/[lng]/partners/(partners)/pq_new/[id]/page.tsx b/app/[lng]/partners/(partners)/pq_new/[id]/page.tsx
index cb905f39..448267d0 100644
--- a/app/[lng]/partners/(partners)/pq_new/[id]/page.tsx
+++ b/app/[lng]/partners/(partners)/pq_new/[id]/page.tsx
@@ -30,6 +30,32 @@ export default async function PQEditPage(props: PQEditPageProps) {
const params = await props.params;
const pqSubmissionId = parseInt(params.id, 10);
+ if (Number.isNaN(pqSubmissionId)) {
+ return (
+ <Shell className="gap-6">
+ <div className="flex items-center justify-between">
+ <div>
+ <h2 className="text-2xl font-bold tracking-tight">잘못된 PQ ID</h2>
+ <p className="text-muted-foreground">유효한 PQ ID가 아닙니다.</p>
+ </div>
+ </div>
+ <div className="flex flex-col items-center justify-center py-12 text-center">
+ <div className="rounded-lg border border-dashed p-10 shadow-sm">
+ <p className="mb-6 text-muted-foreground">
+ 요청하신 PQ ID를 확인하고 다시 시도해주세요.
+ </p>
+ <Button asChild>
+ <Link href="/partners/pq_new">
+ <ArrowLeft className="mr-2 h-4 w-4" />
+ 목록으로 돌아가기
+ </Link>
+ </Button>
+ </div>
+ </div>
+ </Shell>
+ );
+ }
+
// 인증 확인
const session = await getServerSession(authOptions);
@@ -101,12 +127,17 @@ export default async function PQEditPage(props: PQEditPageProps) {
}
// PQ 데이터 조회 (pqCriterias와 답변)
- const pqData = await getPQDataByVendorId(idAsNumber, pqSubmission.projectId || undefined);
+ const pqData = await getPQDataByVendorId(
+ idAsNumber,
+ pqSubmission.projectId || undefined,
+ pqSubmission.type as "GENERAL" | "PROJECT" | "NON_INSPECTION"
+ );
// 상태에 따른 읽기 전용 모드 결정
- const isReadOnly = [ "APPROVED"].includes(pqSubmission.status);
+ const isReadOnly = [ "QM_APPROVED"].includes(pqSubmission.status);
const statusText = pqSubmission.status === "SUBMITTED" ? "제출됨" :
pqSubmission.status === "APPROVED" ? "승인됨" :
+ pqSubmission.status === "QM_APPROVED" ? "최종 승인됨" :
pqSubmission.status === "REJECTED" ? "거부됨" : "작성 중";
const pageTitle = pqSubmission.type === "PROJECT"
diff --git a/app/[lng]/partners/(partners)/pq_new/page.tsx b/app/[lng]/partners/(partners)/pq_new/page.tsx
index e72144c0..89a646a8 100644
--- a/app/[lng]/partners/(partners)/pq_new/page.tsx
+++ b/app/[lng]/partners/(partners)/pq_new/page.tsx
@@ -51,6 +51,12 @@ function getStatusBadge(status: string) {
return <Badge variant="default">승인됨</Badge>;
case "REJECTED":
return <Badge variant="destructive">거부됨</Badge>;
+ case "QM_REVIEWING":
+ return <Badge variant="secondary">QM 검토 중</Badge>;
+ case "QM_APPROVED":
+ return <Badge variant="default">최종 승인됨</Badge>;
+ case "QM_REJECTED":
+ return <Badge variant="destructive">최종 거부됨</Badge>;
default:
return <Badge variant="outline">{status}</Badge>;
}
@@ -262,8 +268,8 @@ export default async function PQListPage({ params }: IndexPageProps) {
</TableRow>
) : (
pqList.map((pq) => {
- const canEdit = ["REQUESTED", "IN_PROGRESS", "REJECTED"].includes(pq.status);
- const canView = ["SUBMITTED", "APPROVED"].includes(pq.status);
+ const canEdit = ["REQUESTED", "IN_PROGRESS", "REJECTED", "SAFETY_APPROVED", "QM_REVIEWING"].includes(pq.status);
+ const canView = ["SUBMITTED", "APPROVED", "QM_APPROVED", "SAFETY_REJECTED", "QM_REJECTED"].includes(pq.status);
return (
<TableRow key={pq.id}>