feat: ajoute stats

*nbFamillesAvecProcedurePenale,
*nbFamillesTribunalDePolice
* nbFamillesAdministrateurAdhoc
This commit is contained in:
Sébastien Arod 2024-09-06 13:42:59 +02:00
parent 24d20a4fe0
commit 689dc41ead
3 changed files with 39 additions and 6 deletions

View file

@ -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 {

View file

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

View file

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