summaryrefslogtreecommitdiff
path: root/lib/pq/pq-review-table-new/vendors-table-columns.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pq/pq-review-table-new/vendors-table-columns.tsx')
-rw-r--r--lib/pq/pq-review-table-new/vendors-table-columns.tsx43
1 files changed, 19 insertions, 24 deletions
diff --git a/lib/pq/pq-review-table-new/vendors-table-columns.tsx b/lib/pq/pq-review-table-new/vendors-table-columns.tsx
index b4d7d038..3e10177d 100644
--- a/lib/pq/pq-review-table-new/vendors-table-columns.tsx
+++ b/lib/pq/pq-review-table-new/vendors-table-columns.tsx
@@ -75,6 +75,7 @@ export interface PQSubmission {
qmManagerEmail: string | null // QM 담당자 이메일
investigationAddress: string | null
investigationMethod: string | null
+ hasSupplementRequested: boolean
scheduledStartAt: Date | null
scheduledEndAt: Date | null
requestedAt: Date | null
@@ -100,24 +101,6 @@ interface GetColumnsProps {
router: NextRouter;
}
-// 상태에 따른 Badge 변형 결정 함수
-function getStatusBadge(status: string) {
- switch (status) {
- case "REQUESTED":
- return <Badge variant="outline">요청됨</Badge>
- case "IN_PROGRESS":
- return <Badge variant="secondary">진행 중</Badge>
- case "SUBMITTED":
- return <Badge>제출됨</Badge>
- case "APPROVED":
- return <Badge variant="success">승인됨</Badge>
- case "REJECTED":
- return <Badge variant="destructive">거부됨</Badge>
- default:
- return <Badge variant="outline">{status}</Badge>
- }
-}
-
/**
* tanstack table 컬럼 정의
*/
@@ -285,15 +268,15 @@ export function getColumns({ setRowAction, router }: GetColumnsProps): ExtendedC
const combinedStatus = getCombinedStatus(row.original);
return value.includes(combinedStatus.status);
},
- enableSorting: true,
+ enableSorting: false,
enableHiding: true,
excelHeader: "진행현황",
};
// PQ 상태와 실사 상태를 결합하는 헬퍼 함수
function getCombinedStatus(submission: PQSubmission) {
- // PQ가 승인되지 않은 경우, PQ 상태를 우선 표시
- if (submission.status !== "APPROVED") {
+ // PQ가 QM 승인되지 않은 경우, PQ 상태를 우선 표시
+ if (submission.status !== "QM_APPROVED") {
switch (submission.status) {
case "REQUESTED":
return { status: "PQ_REQUESTED", label: "PQ 요청됨", variant: "outline" as const };
@@ -301,22 +284,30 @@ export function getColumns({ setRowAction, router }: GetColumnsProps): ExtendedC
return { status: "PQ_IN_PROGRESS", label: "PQ 진행 중", variant: "secondary" as const };
case "SUBMITTED":
return { status: "PQ_SUBMITTED", label: "PQ 제출됨", variant: "default" as const };
+ case "APPROVED":
+ return { status: "PQ_APPROVED", label: "PQ 승인됨", variant: "success" as const };
case "REJECTED":
return { status: "PQ_REJECTED", label: "PQ 거부됨", variant: "destructive" as const };
+ case "QM_REVIEWING":
+ return { status: "PQ_QM_REVIEWING", label: "QM 검토 중", variant: "secondary" as const };
+ case "QM_REJECTED":
+ return { status: "PQ_QM_REJECTED", label: "QM 거부됨", variant: "destructive" as const };
default:
return { status: submission.status, label: submission.status, variant: "outline" as const };
}
}
- // PQ가 승인되었지만 실사가 없는 경우
+ // PQ가 QM 승인되었지만 실사가 없는 경우
if (!submission.investigation) {
- return { status: "PQ_APPROVED", label: "PQ 승인됨", variant: "success" as const };
+ return { status: "PQ_QM_APPROVED", label: "PQ 승인됨", variant: "success" as const };
}
// PQ가 승인되고 실사가 있는 경우
switch (submission.investigation.investigationStatus) {
case "PLANNED":
return { status: "INVESTIGATION_PLANNED", label: "실사 계획됨", variant: "outline" as const };
+ case "QM_REVIEW_CONFIRMED":
+ return { status: "INVESTIGATION_QM_REVIEW_CONFIRMED", label: "QM 검토 완료", variant: "outline" as const };
case "IN_PROGRESS":
return { status: "INVESTIGATION_IN_PROGRESS", label: "실사 진행 중", variant: "secondary" as const };
case "COMPLETED":
@@ -343,6 +334,10 @@ export function getColumns({ setRowAction, router }: GetColumnsProps): ExtendedC
case "SUPPLEMENT_REQUIRED":
return { status: "INVESTIGATION_SUPPLEMENT_REQUIRED", label: "실사 보완 요구됨", variant: "secondary" as const };
case "RESULT_SENT":
+ // 보완을 통해 최종 합격/불합격한 경우
+ if (submission.investigation.hasSupplementRequested) {
+ return { status: "INVESTIGATION_RESULT_SENT_SUPPLEMENT", label: "실사 결과 발송(보완)", variant: "success" as const };
+ }
return { status: "INVESTIGATION_RESULT_SENT", label: "실사 결과 발송", variant: "success" as const };
default:
return {
@@ -761,7 +756,7 @@ export function getColumns({ setRowAction, router }: GetColumnsProps): ExtendedC
}}
>
<Edit className="mr-2 h-4 w-4" />
- 실사 정보 수정
+ 구매 자체 평가
</DropdownMenuItem>
)}