feat: ajoute stats composition pénale

* Nb familles avec composition pénale
* % procédure pénale avec composition pénale
wip-related-pages
sebastien.arod@gmail.com 2024-06-05 20:54:27 +02:00
parent f328137c30
commit af2e5d157c
4 changed files with 35 additions and 2 deletions

View File

@ -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";
}

View File

@ -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",
},

View File

@ -15,6 +15,8 @@ export type ELStatsAtDate<V> = {
pourcentageEntreeApresMiseEnDemeure: V;
nbFamillesProcedurePenale: V;
pourcentageFamillesProcedurePenale: V;
nbFamillesCompositionPenale: V;
pourcentageProcedurePenaleAvecCompositionPenale: V;
nbFamillesProcedureCivile: V;
pourcentageFamillesProcedureCivile: V;
};

View File

@ -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,
};