From cca2e56c6be00ad68ba64eba117eb3cfaf1a4751 Mon Sep 17 00:00:00 2001 From: "cyril.tsui" Date: Wed, 29 May 2024 18:22:11 +0800 Subject: [PATCH] update --- src/app/api/reports/index.ts | 2 +- .../GenerateProjectPotentialDelayReport.tsx | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/app/api/reports/index.ts b/src/app/api/reports/index.ts index bf39c0f..64729fd 100644 --- a/src/app/api/reports/index.ts +++ b/src/app/api/reports/index.ts @@ -36,7 +36,7 @@ export interface ProjectCashFlowReportRequest { // - Project Potential Delay Report export interface ProjectPotentialDelayReportFilter { - team: AutocompleteOptions[]; + team: string[]; client: AutocompleteOptions[]; numberOfDays: number; projectCompletion: number; diff --git a/src/components/GenerateProjectPotentialDelayReport/GenerateProjectPotentialDelayReport.tsx b/src/components/GenerateProjectPotentialDelayReport/GenerateProjectPotentialDelayReport.tsx index fd7dfba..c8b004e 100644 --- a/src/components/GenerateProjectPotentialDelayReport/GenerateProjectPotentialDelayReport.tsx +++ b/src/components/GenerateProjectPotentialDelayReport/GenerateProjectPotentialDelayReport.tsx @@ -21,10 +21,8 @@ type SearchParamNames = keyof SearchQuery; const GenerateProjectPotentialDelayReport: React.FC = ({ teams, clients, subsidiaries }) => { const { t } = useTranslation("report"); - const teamCombo = teams.map(team => ({ - value: team.id, - label: `${team.code} - ${team.name}`, - })) + const teamCombo = teams.map(team => `${team.code} - ${team.name}`) + const clientCombo = clients.map(client => ({ value: `client: ${client.id}` , label: `${client.code} - ${client.name}`, @@ -44,7 +42,7 @@ const GenerateProjectPotentialDelayReport: React.FC = ({ teams, clients, const searchCriteria: Criterion[] = useMemo( () => [ - { label: t("Team"), paramName: "team", type: "autocomplete", options: teamCombo }, + { 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") }, @@ -75,11 +73,12 @@ const GenerateProjectPotentialDelayReport: React.FC = ({ teams, clients, if (hasError) return false + const teamIndex = teamCombo.findIndex(team => team === query.team) const clientIndex = clientCombo.findIndex(client => client.value === query.client) const subsidiaryIndex = subsidiaryCombo.findIndex(subsidiary => subsidiary.value === query.client) const response = await fetchProjectPotentialDelayReport({ - teamId: typeof query.team === "number" ? query.team : "All", + 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),