feat: ajoute des statistiques

wip-related-pages
sebastien.arod@gmail.com 2024-06-11 14:56:12 +02:00
parent 0d8aa0209a
commit 2a26eb9dd2
3 changed files with 69 additions and 0 deletions

View File

@ -130,6 +130,29 @@ const statPropsPublishOptions: {
nbFamilleAvecProcedureCivileSurPeriode: {
notionPropName: "Nb familles avec procédure civile sur période",
},
nbFamilleProcedureCivileClasseeSansSuite: {
notionPropName: "Nb familles avec procédure civile classée sans suite",
},
pourcentageProcedureCivileClasseeSansSuite: {
notionPropName: "% familles avec procédure civile classée sans suite",
unit: "%",
},
pourcentageFamillesProcedureCivileClasseeSansSuite: {
notionPropName: "% procédure civile classées sans suite",
unit: "%",
},
nbFamilleProcedureCivileJugeEnfant: {
notionPropName: "Nb familles convoquées devant le juge des enfants",
},
pourcentageProcedureCivileJugeEnfant: {
notionPropName: "% procédure civile avec convocation juge des enfants",
unit: "%",
},
pourcentageFamilleJugeEnfant: {
notionPropName: "% familles convoquées devant le juge des enfants",
unit: "%",
},
};
export type StatPublishOptions = {
notionPropName: string;

View File

@ -44,6 +44,13 @@ export type ELStatsAtDate<V> = {
// Civile
nbFamillesProcedureCivile: V;
pourcentageFamillesProcedureCivile: V;
nbFamilleProcedureCivileClasseeSansSuite: V;
pourcentageProcedureCivileClasseeSansSuite: V;
pourcentageFamillesProcedureCivileClasseeSansSuite: V;
nbFamilleProcedureCivileJugeEnfant: V;
pourcentageProcedureCivileJugeEnfant: V;
pourcentageFamilleJugeEnfant: V;
};
export type ELStatsPeriod = {

View File

@ -94,6 +94,25 @@ export function computeELStatsAtDate(
)
);
const famillesAvecClasseesSocialSansSuite = familleResistantesOrEx.filter(
(famille) =>
famille.Evenements.find(
(evt) =>
isProcedureCivile(evt) &&
isEvenementBefore(evt, asOfDate) &&
evt.Type === "Classement social sans suite"
)
);
const famillesAvecJugeDesEnfants = familleResistantesOrEx.filter((famille) =>
famille.Evenements.find(
(evt) =>
isProcedureCivile(evt) &&
isEvenementBefore(evt, asOfDate) &&
evt.Type === "Juge pour enfants"
)
);
const actuelles: ELStatsAtDate<number> = {
nbFamilleResistantes: familleResistantes.length,
nbFamilleResistantesOrEx: familleResistantesOrEx.length,
@ -177,6 +196,26 @@ export function computeELStatsAtDate(
famillesAvecProcedureCivile.length,
familleResistantesOrEx.length
),
nbFamilleProcedureCivileClasseeSansSuite:
famillesAvecClasseesSocialSansSuite.length,
pourcentageProcedureCivileClasseeSansSuite: percent(
famillesAvecClasseesSocialSansSuite.length,
famillesAvecProcedureCivile.length
),
pourcentageFamillesProcedureCivileClasseeSansSuite: percent(
famillesAvecClasseesSocialSansSuite.length,
familleResistantesOrEx.length
),
nbFamilleProcedureCivileJugeEnfant: famillesAvecJugeDesEnfants.length,
pourcentageProcedureCivileJugeEnfant: percent(
famillesAvecJugeDesEnfants.length,
famillesAvecProcedureCivile.length
),
pourcentageFamilleJugeEnfant: percent(
famillesAvecJugeDesEnfants.length,
familleResistantesOrEx.length
),
};
return actuelles;
}