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"; 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 { export function isProcedureCivile(evenement: EvenementFamille): boolean {
return categorieEvenement[evenement.Type] === "Procédure Civile"; return categorieEvenement[evenement.Type] === "Procédure Civile";
} }

View File

@ -50,7 +50,13 @@ const statPropsPublishOptions: {
nbFamilleAvecProcedurePenaleSurPeriode: { nbFamilleAvecProcedurePenaleSurPeriode: {
notionPropName: "Nb familles avec procédure pénale sur période", 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: { nbFamillesProcedureCivile: {
notionPropName: "Nb familles avec procédure civile", notionPropName: "Nb familles avec procédure civile",
}, },

View File

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

View File

@ -1,4 +1,8 @@
import { isEvenementBefore, isProcedurePenale } from "../data/EvenementFamille"; import {
isCompositionPenale,
isEvenementBefore,
isProcedurePenale,
} from "../data/EvenementFamille";
import { import {
Famille, Famille,
dureeResistanceInDays, dureeResistanceInDays,
@ -41,6 +45,13 @@ export function computeELStatsAtDate(
(evt) => isProcedurePenale(evt) && isEvenementBefore(evt, asOfDate) (evt) => isProcedurePenale(evt) && isEvenementBefore(evt, asOfDate)
) )
); );
const famillesAvecCompositionPenale = familleResistantesOrEx.filter(
(famille) =>
famille.Evenements.find(
(evt) => isCompositionPenale(evt) && isEvenementBefore(evt, asOfDate)
)
);
const pourcentageFamillesProcedurePenale = percent( const pourcentageFamillesProcedurePenale = percent(
famillesAvecProcedurePenale.length, famillesAvecProcedurePenale.length,
familleResistantesOrEx.length familleResistantesOrEx.length
@ -65,8 +76,15 @@ export function computeELStatsAtDate(
nbFamillesMisesEnDemeure: nbFamillesMiseEnDemeure, nbFamillesMisesEnDemeure: nbFamillesMiseEnDemeure,
pourcentageFamillesMisesEnDemeure: pourcentageFamillesMisesEnDemeure, pourcentageFamillesMisesEnDemeure: pourcentageFamillesMisesEnDemeure,
pourcentageEntreeApresMiseEnDemeure: pourcentageEntreeApresMiseEnDemeure, pourcentageEntreeApresMiseEnDemeure: pourcentageEntreeApresMiseEnDemeure,
nbFamillesProcedurePenale: famillesAvecProcedurePenale.length, nbFamillesProcedurePenale: famillesAvecProcedurePenale.length,
pourcentageFamillesProcedurePenale: pourcentageFamillesProcedurePenale, pourcentageFamillesProcedurePenale: pourcentageFamillesProcedurePenale,
nbFamillesCompositionPenale: famillesAvecCompositionPenale.length,
pourcentageProcedurePenaleAvecCompositionPenale: percent(
famillesAvecCompositionPenale.length,
famillesAvecProcedurePenale.length
),
nbFamillesProcedureCivile: famillesAvecProcedureCivile.length, nbFamillesProcedureCivile: famillesAvecProcedureCivile.length,
pourcentageFamillesProcedureCivile: pourcentageFamillesProcedureCivile, pourcentageFamillesProcedureCivile: pourcentageFamillesProcedureCivile,
}; };