From f1a72cc57c53dda95dbe25e918845fde91c10d72 Mon Sep 17 00:00:00 2001 From: "cyril.tsui" Date: Thu, 30 May 2024 11:41:03 +0800 Subject: [PATCH] update report --- src/app/api/reports/index.ts | 8 +++---- .../GenerateProjectPotentialDelayReport.tsx | 24 +++++++++---------- src/i18n/en/report.json | 4 ++-- src/i18n/zh/report.json | 4 ++-- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/app/api/reports/index.ts b/src/app/api/reports/index.ts index 64729fd..bf4bea8 100644 --- a/src/app/api/reports/index.ts +++ b/src/app/api/reports/index.ts @@ -38,15 +38,15 @@ export interface ProjectCashFlowReportRequest { export interface ProjectPotentialDelayReportFilter { team: string[]; client: AutocompleteOptions[]; - numberOfDays: number; - projectCompletion: number; + daysUntilCurrentStageEnd: number; + resourceUtilizationPercentage: number; } export interface ProjectPotentialDelayReportRequest { teamId: number | "All"; clientId: number | "All"; - numberOfDays: number; - projectCompletion: number; + daysUntilCurrentStageEnd: number; + resourceUtilizationPercentage: number; type: string; } diff --git a/src/components/GenerateProjectPotentialDelayReport/GenerateProjectPotentialDelayReport.tsx b/src/components/GenerateProjectPotentialDelayReport/GenerateProjectPotentialDelayReport.tsx index c8b004e..e94b1ba 100644 --- a/src/components/GenerateProjectPotentialDelayReport/GenerateProjectPotentialDelayReport.tsx +++ b/src/components/GenerateProjectPotentialDelayReport/GenerateProjectPotentialDelayReport.tsx @@ -36,16 +36,16 @@ const GenerateProjectPotentialDelayReport: React.FC = ({ teams, clients, })) const [errors, setErrors] = React.useState({ - numberOfDays: false, - projectCompletion: false, + daysUntilCurrentStageEnd: false, + resourceUtilizationPercentage: false, }) const searchCriteria: Criterion[] = useMemo( () => [ { label: t("Team"), paramName: "team", type: "select", options: teamCombo }, { label: t("Client"), paramName: "client", type: "autocomplete", options: [...subsidiaryCombo, ...clientCombo] }, - { label: t("Number Of Days"), paramName: "numberOfDays", type: "text", textType: "number", error: errors.numberOfDays, helperText: t("Can not be null and decimal, and should be >= 0") }, - { label: t("Project Completion (<= %)"), paramName: "projectCompletion", type: "text", textType: "number", error: errors.projectCompletion, helperText: t("Can not be null and decimal, and should be in range of 0 - 100") }, + { label: t("Days until current stage end"), paramName: "daysUntilCurrentStageEnd", type: "text", textType: "number", error: errors.daysUntilCurrentStageEnd, helperText: t("Can not be null and decimal, and should be >= 0") }, + { label: t("Resource Utilization Percentage (<= %)"), paramName: "resourceUtilizationPercentage", type: "text", textType: "number", error: errors.resourceUtilizationPercentage, helperText: t("Can not be null and decimal, and should be in range of 0 - 100") }, ], [t, errors], ); @@ -57,18 +57,18 @@ const GenerateProjectPotentialDelayReport: React.FC = ({ teams, clients, onSearch={async (query) => { let hasError = false - if (query.numberOfDays.length === 0 || !Number.isInteger(parseFloat(query.numberOfDays)) || parseInt(query.numberOfDays) < 0) { - setErrors((prev) => ({...prev, numberOfDays: true})) + if (query.daysUntilCurrentStageEnd.length === 0 || !Number.isInteger(parseFloat(query.daysUntilCurrentStageEnd)) || parseInt(query.daysUntilCurrentStageEnd) < 0) { + setErrors((prev) => ({...prev, daysUntilCurrentStageEnd: true})) hasError = true } else { - setErrors((prev) => ({...prev, numberOfDays: false})) + setErrors((prev) => ({...prev, daysUntilCurrentStageEnd: false})) } - if (query.projectCompletion.length === 0 || !Number.isInteger(parseFloat(query.projectCompletion)) || parseInt(query.projectCompletion) < 0 || parseInt(query.projectCompletion) > 100) { - setErrors((prev) => ({...prev, projectCompletion: true})) + if (query.resourceUtilizationPercentage.length === 0 || !Number.isInteger(parseFloat(query.resourceUtilizationPercentage)) || parseInt(query.resourceUtilizationPercentage) < 0 || parseInt(query.resourceUtilizationPercentage) > 100) { + setErrors((prev) => ({...prev, resourceUtilizationPercentage: true})) hasError = true } else { - setErrors((prev) => ({...prev, projectCompletion: false})) + setErrors((prev) => ({...prev, resourceUtilizationPercentage: false})) } if (hasError) return false @@ -80,8 +80,8 @@ const GenerateProjectPotentialDelayReport: React.FC = ({ teams, clients, const response = await fetchProjectPotentialDelayReport({ teamId: teamIndex >= 0 ? teams[teamIndex].id : "All", clientId: clientIndex >= 0 ? clients[clientIndex].id : subsidiaryIndex >= 0 ? subsidiaries[subsidiaryIndex].id : "All", - numberOfDays: parseInt(query.numberOfDays), - projectCompletion: parseInt(query.projectCompletion), + daysUntilCurrentStageEnd: parseInt(query.daysUntilCurrentStageEnd), + resourceUtilizationPercentage: parseInt(query.resourceUtilizationPercentage), type: clientIndex >= 0 ? "client" : subsidiaryIndex >= 0 ? "subsidiary" : "All", }) if (response) { diff --git a/src/i18n/en/report.json b/src/i18n/en/report.json index 6a2e756..66cc702 100644 --- a/src/i18n/en/report.json +++ b/src/i18n/en/report.json @@ -1,6 +1,6 @@ { - "Number Of Days": "Number Of Days", - "Project Completion (<= %)": "Project Completion (<= %)", + "Days until current stage end": "Days until current stage end", + "Resource Utilization Percentage (<= %)": "Resource Utilization Percentage (<= %)", "Project": "Project", "Date Type": "Date Type", diff --git a/src/i18n/zh/report.json b/src/i18n/zh/report.json index f15cc8a..f8f32e5 100644 --- a/src/i18n/zh/report.json +++ b/src/i18n/zh/report.json @@ -2,8 +2,8 @@ "Staff Monthly Work Hours Analysis Report": "Staff Monthly Work Hours Analysis Report", "Project Resource Overconsumption Report": "Project Resource Overconsumption Report", - "Number Of Days": "天數", - "Project Completion (<= %)": "項目完成度 (<= %)", + "Days until current stage end": "當前階段結束剩餘天數", + "Resource Utilization Percentage (<= %)": "資源利用率百分比 (<= %)", "Project": "項目", "Date Type": "日期類型",