From c8e3ba9130e2cb2233fd9ce4f6990bf527b75943 Mon Sep 17 00:00:00 2001 From: "MSI\\derek" Date: Mon, 27 Jan 2025 17:30:42 +0800 Subject: [PATCH] update finan --- .../FinancialSummary.tsx | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/src/components/ProjectFinancialSummaryV2/FinancialSummary.tsx b/src/components/ProjectFinancialSummaryV2/FinancialSummary.tsx index ca78dad..5462ad7 100644 --- a/src/components/ProjectFinancialSummaryV2/FinancialSummary.tsx +++ b/src/components/ProjectFinancialSummaryV2/FinancialSummary.tsx @@ -23,11 +23,6 @@ type DateParams = { [key: number]: InputDate; } -type ComboParams = { - [key: number]: string; -} - - const FinancialSummaryPage: React.FC = ({ _teamId, financialSummByProject @@ -41,7 +36,7 @@ const FinancialSummaryPage: React.FC = ({ // currYear = 2024 const startDate = "10-01" const endDate = "09-30" - const lengthOfCombo = 10 + const lengthOfYear = 5 const currFinancialYear = useMemo(() => currDate > `${currYear}-${startDate}` ? currYear + 1 : currYear, [currYear]) const [mainData, setMainData] = useState(financialSummByProject) const [byTeam, setByTeam] = useState(() => sumUpByTeam(mainData)) // do fetch to set @@ -85,16 +80,16 @@ const FinancialSummaryPage: React.FC = ({ const map: DateParams = { 0: {startDate: "", endDate: ""}, 1: thisYear, - [lengthOfCombo - 1]: {startDate: "", endDate: `${currFinancialYear-(lengthOfCombo - 2)}-${endDate}`} + [lengthOfYear - 1]: {startDate: "", endDate: `${currFinancialYear-(lengthOfYear - 2)}-${endDate}`} } - for (let i = 2; i < lengthOfCombo - 1; i++) { + for (let i = 2; i < lengthOfYear - 1; i++) { map[i] = { startDate: `${currFinancialYear-i}-${startDate}`, endDate: `${currFinancialYear-(i - 1)}-${endDate}` } } return map - }, [currDate, currYear, currFinancialYear, startDate, endDate, lengthOfCombo]) + }, [currDate, currYear, currFinancialYear, startDate, endDate, lengthOfYear]) // const comboList: string[] = useMemo(() => { // const list = ["All"] @@ -113,15 +108,15 @@ const FinancialSummaryPage: React.FC = ({ const comboList: string[] = useMemo(() => { const list = ["All"]; - for (let i = 1; i < lengthOfCombo - 1; i++) { + for (let i = 1; i < lengthOfYear - 1; i++) { const yearRange = `${currFinancialYear - i} - ${currFinancialYear - i + 1}`; const label = i === 1 ? `${yearRange} ${t("(current year)")}` : yearRange; list.push(label); } - const oldestYear = currFinancialYear - (lengthOfCombo - 2); + const oldestYear = currFinancialYear - (lengthOfYear - 2); list.push(`< ${oldestYear}`); return list; - }, [currFinancialYear, lengthOfCombo, t]); + }, [currFinancialYear, lengthOfYear, t]); const fetchFinancialSummaryByProject = useCallback(async (endDate: string, startDate: string) => { setIsLoading(true) @@ -158,7 +153,7 @@ const FinancialSummaryPage: React.FC = ({ setByClient(sumUpByClient(mainData)) } }, [teamId]) - + return ( <> @@ -189,7 +184,7 @@ const FinancialSummaryPage: React.FC = ({
{_teamId == 0 && allTeam && -
handleCardClick(0)}> +
handleCardClick(0)}> = ({ // TotalUnInvoicedAmount={allTeam.uninvoicedAmount} TotalReceivedAmount={allTeam.paidAmount} CashFlowStatus={allTeam.invoicedAmount >= (allTeam.projectExpense + allTeam.manhourExpense) ? "Positive" : "Negative"} - CostPerformanceIndex={isFinite(allTeam.invoicedAmount/(allTeam.projectExpense + allTeam.manhourExpense)) ? 0 : allTeam.invoicedAmount/(allTeam.projectExpense + allTeam.manhourExpense) || 0} + CostPerformanceIndex={!isFinite(allTeam.invoicedAmount/(allTeam.projectExpense + allTeam.manhourExpense)) ? 0 : allTeam.invoicedAmount/(allTeam.projectExpense + allTeam.manhourExpense) || 0} ProjectedCashFlowStatus={allTeam.totalFee >= (allTeam.projectExpense + allTeam.manhourExpense) ? "Positive" : "Negative"} - ProjectedCPI={isFinite(allTeam.totalFee/(allTeam.projectExpense + allTeam.manhourExpense)) ? 0 : allTeam.totalFee/(allTeam.projectExpense + allTeam.manhourExpense) || 0} + ProjectedCPI={!isFinite(allTeam.totalFee/(allTeam.projectExpense + allTeam.manhourExpense)) ? 0 : allTeam.totalFee/(allTeam.projectExpense + allTeam.manhourExpense) || 0} ClickedIndex={isCardClickedIndex} Index={0}/>
} {byTeam.length > 0 && byTeam.map((record) => ( -
handleCardClick(record.id)}> +
handleCardClick(record.id)}> = ({ // TotalUnInvoicedAmount={Math.abs(record.uninvoicedAmount)} TotalReceivedAmount={record.paidAmount} CashFlowStatus={record.invoicedAmount >= (record.projectExpense + record.manhourExpense) ? "Positive" : "Negative"} - CostPerformanceIndex={record.invoicedAmount/(record.projectExpense + record.manhourExpense) || 0} + CostPerformanceIndex={!isFinite(record.invoicedAmount/(record.projectExpense + record.manhourExpense)) ? 0 : record.invoicedAmount/(record.projectExpense + record.manhourExpense) || 0} ProjectedCashFlowStatus={record.totalFee >= (record.projectExpense + record.manhourExpense) ? "Positive" : "Negative"} - ProjectedCPI={record.totalFee/(record.projectExpense + record.manhourExpense) || 0} + ProjectedCPI={!isFinite(record.totalFee/(record.projectExpense + record.manhourExpense)) ? 0 : record.totalFee/(record.projectExpense + record.manhourExpense) || 0} ClickedIndex={isCardClickedIndex} Index={record.id}/>