diff --git a/src/app/api/resourcesummary/index.ts b/src/app/api/resourcesummary/index.ts index e2e062e..666849d 100644 --- a/src/app/api/resourcesummary/index.ts +++ b/src/app/api/resourcesummary/index.ts @@ -10,6 +10,7 @@ export interface ResourceSummaryResult { customerCode: string; customerName: string; customerCodeAndName: string; + subsidiaryCodeAndName: string; } export const preloadProjects = () => { diff --git a/src/components/ProjectCashFlow/ProjectCashFlow.tsx b/src/components/ProjectCashFlow/ProjectCashFlow.tsx index 2d0bae8..4c5c935 100644 --- a/src/components/ProjectCashFlow/ProjectCashFlow.tsx +++ b/src/components/ProjectCashFlow/ProjectCashFlow.tsx @@ -97,8 +97,8 @@ const ProjectCashFlow: React.FC = () => { cumulativeIncome.push(cashFlowMonthlyChartData[0].incomeList[i].cumulativeIncome) } for (var i = 0; i < cashFlowMonthlyChartData[0].expenditureList.length; i++) { - if (rightMax < cashFlowMonthlyChartData[0].incomeList[i].income || rightMax < cashFlowMonthlyChartData[0].expenditureList[i].expenditure){ - rightMax = Math.max(cashFlowMonthlyChartData[0].incomeList[i].income,cashFlowMonthlyChartData[0].expenditureList[i].expenditure) + if (rightMax < cashFlowMonthlyChartData[0].incomeList[i].cumulativeIncome || rightMax < cashFlowMonthlyChartData[0].expenditureList[i].cumulativeExpenditure){ + rightMax = Math.max(cashFlowMonthlyChartData[0].incomeList[i].cumulativeIncome,cashFlowMonthlyChartData[0].expenditureList[i].cumulativeExpenditure) } monthlyExpenditure.push(cashFlowMonthlyChartData[0].expenditureList[i].expenditure) cumulativeExpenditure.push(cashFlowMonthlyChartData[0].expenditureList[i].cumulativeExpenditure) @@ -141,11 +141,12 @@ const ProjectCashFlow: React.FC = () => { } monthlyAnticipateIncome.push(cashFlowAnticipateData[0].anticipateIncomeList[i].anticipateIncome) } + setMonthlyAnticipateIncomeList(monthlyAnticipateIncome) } else { setMonthlyAnticipateIncomeList([0,0,0,0,0,0,0,0,0,0,0,0]) setMonthlyAnticipateExpenditureList([0,0,0,0,0,0,0,0,0,0,0,0]) } - setMonthlyAnticipateIncomeList(monthlyAnticipateIncome) + console.log(cashFlowAnticipateData) if(cashFlowAnticipateData.length !== 0){ if (cashFlowAnticipateData[0].anticipateExpenditureList.length !== 0) { @@ -175,7 +176,7 @@ const ProjectCashFlow: React.FC = () => { } setMonthlyAnticipateExpenditureList(result) for (var i = 0; i < monthlyAnticipateIncome.length; i++) { - if (anticipateLeftMax < monthlyAnticipateIncome[i] || result[i]){ + if (anticipateLeftMax < monthlyAnticipateIncome[i] || anticipateLeftMax < result[i]){ anticipateLeftMax = Math.max(monthlyAnticipateIncome[i],result[i]) } setMonthlyAnticipateLeftMax(anticipateLeftMax) @@ -432,6 +433,13 @@ const ProjectCashFlow: React.FC = () => { }; const anticipateOptions: ApexOptions = { + tooltip: { + y: { + formatter: function(val) { + return val.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); + } + } + }, chart: { height: 350, type: "line", diff --git a/src/components/ProjectResourceSummary/ProjectResourceSummary.tsx b/src/components/ProjectResourceSummary/ProjectResourceSummary.tsx index 0e5ea60..7805def 100644 --- a/src/components/ProjectResourceSummary/ProjectResourceSummary.tsx +++ b/src/components/ProjectResourceSummary/ProjectResourceSummary.tsx @@ -135,6 +135,10 @@ const ProjectResourceSummary: React.FC = () => { subStageList.push(subStageResult[i].plannedResources) subStageList.push(subStageResult[i].actualResourcesSpent) } + if (i === subStageResult.length-1) { + subStageSecondLayerList.push(subStageList) + subStageFullList.push(subStageSecondLayerList) + } } console.log(subStageFullList) @@ -157,6 +161,9 @@ const ProjectResourceSummary: React.FC = () => { mainStageList.push(mainStageResult[i].plannedResources) mainStageList.push(mainStageResult[i].actualResourcesSpent) } + if (i === mainStageResult.length - 1) { + mainStageFullList.push(createData(mainStageList,subStageFullList[arrayNumber])) + } } setRows(mainStageFullList) } @@ -238,20 +245,20 @@ const ProjectResourceSummary: React.FC = () => { )} - {row.stage} - {row.taskCount} - {row.g1Planned.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} - {row.g1Actual.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} - {row.g2Planned.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} - {row.g2Actual.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} - {row.g3Planned.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} - {row.g3Actual.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} - {row.g4Planned.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} - {row.g4Actual.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} - {row.g5Planned.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} - {row.g5Actual.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} - {row.totalPlanned.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} - {row.totalActual.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {row.stage} + {row.taskCount} + {row.g1Planned.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {row.g1Actual.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {row.g2Planned.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {row.g2Actual.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {row.g3Planned.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {row.g3Actual.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {row.g4Planned.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {row.g4Actual.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {row.g5Planned.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {row.g5Actual.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {row.totalPlanned.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {row.totalActual.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} {row.task.map((taskRow:any) => ( @@ -274,7 +281,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[0]} + {taskRow[0]}
@@ -287,7 +294,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[1]} + {taskRow[1]}
@@ -300,7 +307,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[4].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {taskRow[4].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
@@ -313,7 +320,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[5].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {taskRow[5].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
@@ -326,7 +333,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[6].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {taskRow[6].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
@@ -339,7 +346,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[7].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {taskRow[7].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
@@ -352,7 +359,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[8].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {taskRow[8].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
@@ -365,7 +372,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[9].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {taskRow[9].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
@@ -378,7 +385,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[10].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {taskRow[10].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
@@ -391,7 +398,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[11].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {taskRow[11].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
@@ -404,7 +411,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[12].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {taskRow[12].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
@@ -417,7 +424,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[13].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {taskRow[13].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
@@ -430,7 +437,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[2].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {taskRow[2].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
@@ -443,7 +450,7 @@ const ProjectResourceSummary: React.FC = () => { - {taskRow[3].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} + {taskRow[3].toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
@@ -666,11 +673,11 @@ const columns2 = [ {/*
- +
*/} {/*
*/} - +
@@ -697,20 +704,20 @@ const columns2 = [ - Stage - Task Count - Planned - Actual - Planned - Actual - Planned - Actual - Planned - Actual - Planned - Actual - Planned - Actual + Stage + Task Count + Planned + Actual + Planned + Actual + Planned + Actual + Planned + Actual + Planned + Actual + Planned + Actual diff --git a/src/components/ProjectResourceSummarySearch/ProjectResourceSummarySearch.tsx b/src/components/ProjectResourceSummarySearch/ProjectResourceSummarySearch.tsx index cd356d3..eeae876 100644 --- a/src/components/ProjectResourceSummarySearch/ProjectResourceSummarySearch.tsx +++ b/src/components/ProjectResourceSummarySearch/ProjectResourceSummarySearch.tsx @@ -58,6 +58,7 @@ const ProjectResourceSummarySearch: React.FC = ({ projects }) => { { name: "projectCode", label: t("Project Code") }, { name: "projectName", label: t("Project Name") }, { name: "customerCodeAndName", label: t("Client Code And Name") }, + { name: "subsidiaryCodeAndName", label: t("Subsidiary Code And Name")} ], [onTaskClick, t], // [t],