Skip to content

Commit 5c7789e

Browse files
committed
fix(fundings): Correct cards for Region view
1 parent 83e0f0d commit 5c7789e

1 file changed

Lines changed: 30 additions & 21 deletions

File tree

  • client/src/boards/financements-par-aap/components/cards

client/src/boards/financements-par-aap/components/cards/index.tsx

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,10 @@ export default function Cards() {
3636
field: "project_id.keyword",
3737
},
3838
},
39-
should_ignore: {
39+
should_ignore_budget: {
4040
terms: {
41-
field: "participant_ignore_total_budget",
41+
field: structure ? "participant_ignore_total_budget" : "region_ignore_total_budget",
42+
missing: 0,
4243
},
4344
aggregations: {
4445
sum_budget: {
@@ -48,9 +49,17 @@ export default function Cards() {
4849
},
4950
},
5051
},
51-
sum_funding: {
52-
sum: {
53-
field: "participation_funding",
52+
should_ignore_funding: {
53+
terms: {
54+
field: structure ? "participant_ignore_funding" : "region_ignore_funding",
55+
missing: 0,
56+
},
57+
aggregations: {
58+
sum_funding: {
59+
sum: {
60+
field: "participation_funding",
61+
},
62+
},
5463
},
5564
},
5665
},
@@ -77,27 +86,27 @@ export default function Cards() {
7786
funders.forEach((funder) => {
7887
const dataByFunder = (data?.aggregations?.by_project_type?.buckets ?? []).find((bucket) => bucket.key === funder);
7988
dataFunders[funder] = {
80-
projects: years.map((year) => ({
89+
budget: years.map((year) => ({
8190
x: year,
82-
y: dataByFunder?.by_project_year?.buckets?.find((bucket) => bucket.key === year)?.by_unique_project?.value ?? 0,
83-
yDisplay: dataByFunder?.by_project_year?.buckets.find((bucket) => bucket.key === year)?.by_unique_project?.value ?? 0,
91+
y: dataByFunder?.by_project_year?.buckets?.find((bucket) => bucket.key === year)?.should_ignore_budget?.buckets?.find((bucket) => bucket.key.toString() === '0')?.sum_budget?.value ?? 0,
92+
yDisplay: dataByFunder?.by_project_year?.buckets?.find((bucket) => bucket.key === year)?.should_ignore_budget?.buckets?.find((bucket) => bucket.key.toString() === '0')?.sum_budget?.value ?? 0,
8493
})),
85-
budget: years.map((year) => ({
94+
funding: years.map((year) => ({
8695
x: year,
87-
y: dataByFunder?.by_project_year?.buckets?.find((bucket) => bucket.key === year)?.should_ignore?.buckets?.find((bucket) => bucket.key === 0)?.sum_budget?.value ?? 0,
88-
yDisplay: dataByFunder?.by_project_year?.buckets?.find((bucket) => bucket.key === year)?.should_ignore?.buckets?.find((bucket) => bucket.key === 0)?.sum_budget?.value ?? 0,
96+
y: dataByFunder?.by_project_year?.buckets?.find((bucket) => bucket.key === year)?.should_ignore_funding?.buckets?.find((bucket) => bucket.key.toString() === '0')?.sum_funding?.value ?? 0,
97+
yDisplay: dataByFunder?.by_project_year?.buckets?.find((bucket) => bucket.key === year)?.should_ignore_funding?.buckets?.find((bucket) => bucket.key.toString() === '0')?.sum_funding?.value ?? 0,
8998
})),
90-
participation: years.map((year) => ({
99+
projects: years.map((year) => ({
91100
x: year,
92-
y: dataByFunder?.by_project_year?.buckets?.find((bucket) => bucket.key === year)?.sum_funding?.value ?? 0,
93-
yDisplay: dataByFunder?.by_project_year?.buckets?.find((bucket) => bucket.key === year)?.sum_funding?.value ?? 0,
101+
y: dataByFunder?.by_project_year?.buckets?.find((bucket) => bucket.key === year)?.by_unique_project?.value ?? 0,
102+
yDisplay: dataByFunder?.by_project_year?.buckets.find((bucket) => bucket.key === year)?.by_unique_project?.value ?? 0,
94103
})),
95104
};
96105
});
97106

98-
const maxProjects: number = Math.max.apply(null, Object.values(dataFunders).map((dataFunder: any) => dataFunder.projects.map((project) => project.y)).flat());
99107
const maxBudget: number = Math.max.apply(null, Object.values(dataFunders).map((dataFunder: any) => dataFunder.budget.map((budget) => budget.y)).flat());
100-
const maxParticipation: number = Math.max.apply(null, Object.values(dataFunders).map((dataFunder: any) => dataFunder.participation.map((participation) => participation.y)).flat());
108+
const maxFunding: number = Math.max.apply(null, Object.values(dataFunders).map((dataFunder: any) => dataFunder.funding.map((funding) => funding.y)).flat());
109+
const maxProjects: number = Math.max.apply(null, Object.values(dataFunders).map((dataFunder: any) => dataFunder.projects.map((project) => project.y)).flat());
101110

102111
return (
103112
<>
@@ -176,7 +185,7 @@ export default function Cards() {
176185
))}
177186
</Row>
178187
<Row gutters>
179-
<Col xs="12" md="2" key={`card-participation-intro`}>
188+
<Col xs="12" md="2" key={`card-funding-intro`}>
180189
<div style={{ height: "100%", display: "flex", alignItems: "center" }}>
181190
<Title as="h2" className="fr-mb-0" style={{ fontSize: "0.8rem", letterSpacing: "0.3px", lineHeight: 1.3, textTransform: "uppercase" }}>
182191
Financements perçus pour les projets auxquels {structure ? "l'établissement" : "la région"} participe
@@ -185,17 +194,17 @@ export default function Cards() {
185194
</div>
186195
</Col>
187196
{Object.keys(dataFunders).map((funder) => (
188-
<Col xs="12" md="2" key={`card-participation-${funder}`}>
197+
<Col xs="12" md="2" key={`card-funding-${funder}`}>
189198
{isLoading ? <DefaultSkeleton height="250px" /> :
190199
<ChartCard
191200
color={getCssColor({ name: funder, prefix: "funder" })}
192-
data={dataFunders[funder].participation}
201+
data={dataFunders[funder].funding}
193202
detail={getYearRangeLabel({ yearMax, yearMin })}
194203
title={`Financements perçus des projets ${funder}`}
195204
titleAs="h3"
196205
tooltipFormatter={function (this: any) { return `${formatCompactNumber(this.y)} € par ${funder} en ${this.key}` }}
197-
value={`${formatCompactNumber(dataFunders[funder].participation.filter((participation) => yearMin && yearMax && participation.x >= yearMin && participation.x <= yearMax).reduce((acc, cur) => acc + cur.yDisplay, 0))} €`}
198-
yAxisMax={maxParticipation}
206+
value={`${formatCompactNumber(dataFunders[funder].funding.filter((funding) => yearMin && yearMax && funding.x >= yearMin && funding.x <= yearMax).reduce((acc, cur) => acc + cur.yDisplay, 0))} €`}
207+
yAxisMax={maxFunding}
199208
/>
200209
}
201210
</Col>

0 commit comments

Comments
 (0)