diff --git a/src/data/EvenementFamille.ts b/src/data/EvenementFamille.ts index 341e0a8..145e599 100644 --- a/src/data/EvenementFamille.ts +++ b/src/data/EvenementFamille.ts @@ -15,6 +15,13 @@ export function isProcedurePenale(evenement: EvenementFamille): boolean { return categorieEvenement[evenement.Type] === "Procédure Pénale"; } +export function isCompositionPenale(evenement: EvenementFamille): boolean { + return ( + evenement.Type === "Composition pénale acceptée" || + evenement.Type === "Composition pénale refusée" + ); +} + export function isProcedureCivile(evenement: EvenementFamille): boolean { return categorieEvenement[evenement.Type] === "Procédure Civile"; } diff --git a/src/notion/statPublishOptions.ts b/src/notion/statPublishOptions.ts index e243c72..79da3d1 100644 --- a/src/notion/statPublishOptions.ts +++ b/src/notion/statPublishOptions.ts @@ -50,7 +50,13 @@ const statPropsPublishOptions: { nbFamilleAvecProcedurePenaleSurPeriode: { notionPropName: "Nb familles avec procédure pénale sur période", }, - + nbFamillesCompositionPenale: { + notionPropName: "Nb familles avec composition pénale", + }, + pourcentageProcedurePenaleAvecCompositionPenale: { + notionPropName: "% procédure pénale avec composition pénale", + unit: "%", + }, nbFamillesProcedureCivile: { notionPropName: "Nb familles avec procédure civile", }, diff --git a/src/statistiques/ELStats.ts b/src/statistiques/ELStats.ts index 1b6e32e..f31fa10 100644 --- a/src/statistiques/ELStats.ts +++ b/src/statistiques/ELStats.ts @@ -15,6 +15,8 @@ export type ELStatsAtDate = { pourcentageEntreeApresMiseEnDemeure: V; nbFamillesProcedurePenale: V; pourcentageFamillesProcedurePenale: V; + nbFamillesCompositionPenale: V; + pourcentageProcedurePenaleAvecCompositionPenale: V; nbFamillesProcedureCivile: V; pourcentageFamillesProcedureCivile: V; }; diff --git a/src/statistiques/computeELStatsAtDate.ts b/src/statistiques/computeELStatsAtDate.ts index cb18c21..73d6b90 100644 --- a/src/statistiques/computeELStatsAtDate.ts +++ b/src/statistiques/computeELStatsAtDate.ts @@ -1,4 +1,8 @@ -import { isEvenementBefore, isProcedurePenale } from "../data/EvenementFamille"; +import { + isCompositionPenale, + isEvenementBefore, + isProcedurePenale, +} from "../data/EvenementFamille"; import { Famille, dureeResistanceInDays, @@ -41,6 +45,13 @@ export function computeELStatsAtDate( (evt) => isProcedurePenale(evt) && isEvenementBefore(evt, asOfDate) ) ); + const famillesAvecCompositionPenale = familleResistantesOrEx.filter( + (famille) => + famille.Evenements.find( + (evt) => isCompositionPenale(evt) && isEvenementBefore(evt, asOfDate) + ) + ); + const pourcentageFamillesProcedurePenale = percent( famillesAvecProcedurePenale.length, familleResistantesOrEx.length @@ -65,8 +76,15 @@ export function computeELStatsAtDate( nbFamillesMisesEnDemeure: nbFamillesMiseEnDemeure, pourcentageFamillesMisesEnDemeure: pourcentageFamillesMisesEnDemeure, pourcentageEntreeApresMiseEnDemeure: pourcentageEntreeApresMiseEnDemeure, + nbFamillesProcedurePenale: famillesAvecProcedurePenale.length, pourcentageFamillesProcedurePenale: pourcentageFamillesProcedurePenale, + nbFamillesCompositionPenale: famillesAvecCompositionPenale.length, + pourcentageProcedurePenaleAvecCompositionPenale: percent( + famillesAvecCompositionPenale.length, + famillesAvecProcedurePenale.length + ), + nbFamillesProcedureCivile: famillesAvecProcedureCivile.length, pourcentageFamillesProcedureCivile: pourcentageFamillesProcedureCivile, };