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 { 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 { export function isCompositionPenale(evenement: EvenementFamille): boolean {

View file

@ -6,6 +6,11 @@ export const statsPenalesDesc = {
nbFamillesMisesEnDemeure: { nbFamillesMisesEnDemeure: {
label: "Nb familles mises en demeure", label: "Nb familles mises en demeure",
}, },
nbFamillesAvecProcedurePenale: {
label:
"Nb familles avec une procédure pénale (Gendarmerie, Procureur, Tribunal...)",
},
nbFamillesAvecGendarmerie: { nbFamillesAvecGendarmerie: {
label: label:
"Nb familles avec un évènement Gendarmerie ou autre Force de l'ordre", "Nb familles avec un évènement Gendarmerie ou autre Force de l'ordre",
@ -52,6 +57,7 @@ export const statsPenalesDesc = {
nbFamillesRappelALaLoi: { nbFamillesRappelALaLoi: {
label: "Nb familles avec Rappel à la loi", label: "Nb familles avec Rappel à la loi",
}, },
/* /*
nbFamillesAvertissementPénalProbatoire: { nbFamillesAvertissementPénalProbatoire: {
label: "Nb familles avec Avertissement Pénal Probatoire", 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: { intervalGendarmerieProcureur: {
label: "Délai moyen entre Gendarmerie et Procureur", label: "Délai moyen entre Gendarmerie et Procureur",
unit: " jours", unit: " jours",

View file

@ -5,6 +5,7 @@ import {
isEvenementBefore, isEvenementBefore,
isEvtProcureur, isEvtProcureur,
isGendarmerie, isGendarmerie,
isProcedurePenale,
} from "../../../data/EvenementFamille"; } from "../../../data/EvenementFamille";
import { Famille } from "../../../data/Famille"; import { Famille } from "../../../data/Famille";
import { average } from "../../../utils/math/average"; import { average } from "../../../utils/math/average";
@ -24,17 +25,35 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales {
const statsPenales: StatsPenales = { const statsPenales: StatsPenales = {
nbFamillesMisesEnDemeure: famillesMisesEnDemeure.length, nbFamillesMisesEnDemeure: famillesMisesEnDemeure.length,
nbFamillesAvecGendarmerie: famillesAvecGendarmerie.length, nbFamillesAvecGendarmerie: famillesAvecGendarmerie.length,
nbFamillesAvecProcedurePenale: filterFamillesWithOneOfEvenements(
familles,
isProcedurePenale
).length,
procureur: { procureur: {
nbFamillesAuditionProcureur: filterFamillesWithOneOfEvenements( nbFamillesAuditionProcureur: filterFamillesWithOneOfEvenements(
familles, familles,
isEvtProcureur isEvtProcureur
).length, ).length,
compositionPenales: computeCompositionPenales(familles), compositionPenales: computeCompositionPenales(familles),
crpc: computeCrpc(familles), crpc: computeCrpc(familles),
nbFamillesClassementSansSuite: filterFamillesWithOneOfEvenementsOfType(familles, "Classement pénal sans suite").length, nbFamillesClassementSansSuite: filterFamillesWithOneOfEvenementsOfType(
nbFamillesRappelALaLoi: filterFamillesWithOneOfEvenementsOfType(familles, "Rappel à la loi").length familles,
"Classement pénal sans suite"
).length,
nbFamillesRappelALaLoi: filterFamillesWithOneOfEvenementsOfType(
familles,
"Rappel à la loi"
).length,
}, },
tribunalCorrectionnel: computeTribunalCorrectionnel(familles), tribunalCorrectionnel: computeTribunalCorrectionnel(familles),
nbFamillesAdministrateurAdhoc: filterFamillesWithOneOfEvenementsOfType(
familles,
"Administrateur AD'HOC"
).length,
nbFamillesTribunalDePolice: filterFamillesWithOneOfEvenementsOfType(
familles,
"Tribunal de police judiciaire"
).length,
intervalGendarmerieProcureur: computeIntervalGendarmerieProcureur(familles), intervalGendarmerieProcureur: computeIntervalGendarmerieProcureur(familles),
intervalProcureurTribunalCorrectionnel: intervalProcureurTribunalCorrectionnel:
computeIntervalProcureurTribunalCorrectionnel(familles), computeIntervalProcureurTribunalCorrectionnel(familles),
@ -108,7 +127,9 @@ function computeTribunalCorrectionnel(
nbFamillesProgrammees: famillesProgrammees.length, nbFamillesProgrammees: famillesProgrammees.length,
nbFamillesRecidive: famillesRecidiveTribunal.length, nbFamillesRecidive: famillesRecidiveTribunal.length,
nbFamilleAppelDuJugement: filterFamillesWithOneOfEvenementsOfType( nbFamilleAppelDuJugement: filterFamillesWithOneOfEvenementsOfType(
familles, "Appel du jugement").length familles,
"Appel du jugement"
).length,
}; };
} }