From 689dc41eada43ca45779c788face5c4a501bf467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Arod?= Date: Fri, 6 Sep 2024 13:42:59 +0200 Subject: [PATCH] feat: ajoute stats *nbFamillesAvecProcedurePenale, *nbFamillesTribunalDePolice * nbFamillesAdministrateurAdhoc --- src/data/EvenementFamille.ts | 3 +- src/statistiques/v2/penales/StatsPenales.ts | 13 ++++++++- .../v2/penales/computeStatsPenales.ts | 29 ++++++++++++++++--- 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/data/EvenementFamille.ts b/src/data/EvenementFamille.ts index 23c20c7..107c90e 100644 --- a/src/data/EvenementFamille.ts +++ b/src/data/EvenementFamille.ts @@ -12,7 +12,8 @@ export type EvenementFamille = Readonly<{ }>; export function isProcedurePenale(evenement: EvenementFamille): boolean { - return categorieEvenement[evenement.Type] === "Procédure Pénale"; + return categorieEvenement[evenement.Type] === "Procédure Pénale" && evenement.Type !== "Validation désobéissance" + && evenement.Type !== "Mise en demeure de scolarisation"; } export function isCompositionPenale(evenement: EvenementFamille): boolean { diff --git a/src/statistiques/v2/penales/StatsPenales.ts b/src/statistiques/v2/penales/StatsPenales.ts index 8facd95..1517819 100644 --- a/src/statistiques/v2/penales/StatsPenales.ts +++ b/src/statistiques/v2/penales/StatsPenales.ts @@ -6,6 +6,11 @@ export const statsPenalesDesc = { nbFamillesMisesEnDemeure: { label: "Nb familles mises en demeure", }, + + nbFamillesAvecProcedurePenale: { + label: + "Nb familles avec une procédure pénale (Gendarmerie, Procureur, Tribunal...)", + }, nbFamillesAvecGendarmerie: { label: "Nb familles avec un évènement Gendarmerie ou autre Force de l'ordre", @@ -52,6 +57,7 @@ export const statsPenalesDesc = { nbFamillesRappelALaLoi: { label: "Nb familles avec Rappel à la loi", }, + /* nbFamillesAvertissementPénalProbatoire: { label: "Nb familles avec Avertissement Pénal Probatoire", @@ -76,7 +82,12 @@ export const statsPenalesDesc = { }, }, }, - + nbFamillesTribunalDePolice: { + label: "Nb familles avec Tribunal de police", + }, + nbFamillesAdministrateurAdhoc: { + label: "Nb familles avec Administrateur AD'HOC", + }, intervalGendarmerieProcureur: { label: "Délai moyen entre Gendarmerie et Procureur", unit: " jours", diff --git a/src/statistiques/v2/penales/computeStatsPenales.ts b/src/statistiques/v2/penales/computeStatsPenales.ts index 964251f..eb5dc60 100644 --- a/src/statistiques/v2/penales/computeStatsPenales.ts +++ b/src/statistiques/v2/penales/computeStatsPenales.ts @@ -5,6 +5,7 @@ import { isEvenementBefore, isEvtProcureur, isGendarmerie, + isProcedurePenale, } from "../../../data/EvenementFamille"; import { Famille } from "../../../data/Famille"; import { average } from "../../../utils/math/average"; @@ -24,17 +25,35 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales { const statsPenales: StatsPenales = { nbFamillesMisesEnDemeure: famillesMisesEnDemeure.length, nbFamillesAvecGendarmerie: famillesAvecGendarmerie.length, + nbFamillesAvecProcedurePenale: filterFamillesWithOneOfEvenements( + familles, + isProcedurePenale + ).length, procureur: { nbFamillesAuditionProcureur: filterFamillesWithOneOfEvenements( familles, isEvtProcureur ).length, compositionPenales: computeCompositionPenales(familles), - crpc: computeCrpc(familles), - nbFamillesClassementSansSuite: filterFamillesWithOneOfEvenementsOfType(familles, "Classement pénal sans suite").length, - nbFamillesRappelALaLoi: filterFamillesWithOneOfEvenementsOfType(familles, "Rappel à la loi").length + crpc: computeCrpc(familles), + nbFamillesClassementSansSuite: filterFamillesWithOneOfEvenementsOfType( + familles, + "Classement pénal sans suite" + ).length, + nbFamillesRappelALaLoi: filterFamillesWithOneOfEvenementsOfType( + familles, + "Rappel à la loi" + ).length, }, tribunalCorrectionnel: computeTribunalCorrectionnel(familles), + nbFamillesAdministrateurAdhoc: filterFamillesWithOneOfEvenementsOfType( + familles, + "Administrateur AD'HOC" + ).length, + nbFamillesTribunalDePolice: filterFamillesWithOneOfEvenementsOfType( + familles, + "Tribunal de police judiciaire" + ).length, intervalGendarmerieProcureur: computeIntervalGendarmerieProcureur(familles), intervalProcureurTribunalCorrectionnel: computeIntervalProcureurTribunalCorrectionnel(familles), @@ -108,7 +127,9 @@ function computeTribunalCorrectionnel( nbFamillesProgrammees: famillesProgrammees.length, nbFamillesRecidive: famillesRecidiveTribunal.length, nbFamilleAppelDuJugement: filterFamillesWithOneOfEvenementsOfType( - familles, "Appel du jugement").length + familles, + "Appel du jugement" + ).length, }; }