From 2a26eb9dd2c020de8778279aca5939a53fb501ff Mon Sep 17 00:00:00 2001 From: "sebastien.arod@gmail.com" Date: Tue, 11 Jun 2024 14:56:12 +0200 Subject: [PATCH] feat: ajoute des statistiques --- src/notion/statPublishOptions.ts | 23 ++++++++++++++ src/statistiques/ELStats.ts | 7 +++++ src/statistiques/computeELStatsAtDate.ts | 39 ++++++++++++++++++++++++ 3 files changed, 69 insertions(+) diff --git a/src/notion/statPublishOptions.ts b/src/notion/statPublishOptions.ts index 975d449..f269768 100644 --- a/src/notion/statPublishOptions.ts +++ b/src/notion/statPublishOptions.ts @@ -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; diff --git a/src/statistiques/ELStats.ts b/src/statistiques/ELStats.ts index 4b87a45..7425032 100644 --- a/src/statistiques/ELStats.ts +++ b/src/statistiques/ELStats.ts @@ -44,6 +44,13 @@ export type ELStatsAtDate = { // Civile nbFamillesProcedureCivile: V; pourcentageFamillesProcedureCivile: V; + + nbFamilleProcedureCivileClasseeSansSuite: V; + pourcentageProcedureCivileClasseeSansSuite: V; + pourcentageFamillesProcedureCivileClasseeSansSuite: V; + nbFamilleProcedureCivileJugeEnfant: V; + pourcentageProcedureCivileJugeEnfant: V; + pourcentageFamilleJugeEnfant: V; }; export type ELStatsPeriod = { diff --git a/src/statistiques/computeELStatsAtDate.ts b/src/statistiques/computeELStatsAtDate.ts index 10750bc..138cfe9 100644 --- a/src/statistiques/computeELStatsAtDate.ts +++ b/src/statistiques/computeELStatsAtDate.ts @@ -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 = { 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; }