From 999fd8f4b573842a48f05fa3ad3aae5556b7c7cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Arod?= Date: Wed, 25 Sep 2024 21:20:20 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20ajoute=20Requisition=20Judiciaire=20et?= =?UTF-8?q?=20deplace=20Stage=20Par=20dans=20p=C3=A9nal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/data/TypeEvenementsPenal.ts | 7 ++- src/data/TypeEvenementsSocial.ts | 1 - src/statistiques/v2/penales/StatsPenales.ts | 8 ++- .../v2/penales/computeStatsPenales.ts | 58 +++++++++++-------- src/statistiques/v2/sociales/StatsSociales.ts | 3 - .../v2/sociales/computeStatsSociales.ts | 4 -- 6 files changed, 46 insertions(+), 35 deletions(-) diff --git a/src/data/TypeEvenementsPenal.ts b/src/data/TypeEvenementsPenal.ts index f94af96..b1347e9 100644 --- a/src/data/TypeEvenementsPenal.ts +++ b/src/data/TypeEvenementsPenal.ts @@ -4,6 +4,7 @@ export const typesEvenementsPenal = [ "Gendarmerie/Forces de l'ordre", + "Réquisition judiciaire", "Audition procureur", "Composition pénale refusée", @@ -15,10 +16,10 @@ export const typesEvenementsPenal = [ "Tribunal correctionnel", "Administrateur AD'HOC", "Appel du 1er jugement", + "Stage parentalité", - // placeholder - "Appel du 2eme jugement", - + "Réquisition judiciaire", + "Appel du 2eme jugement", // placeholder "Tribunal de police judiciaire", diff --git a/src/data/TypeEvenementsSocial.ts b/src/data/TypeEvenementsSocial.ts index cbb22cd..8db5729 100644 --- a/src/data/TypeEvenementsSocial.ts +++ b/src/data/TypeEvenementsSocial.ts @@ -7,7 +7,6 @@ export const typesEvenementsSocial = [ "Classement suite IP", "Classement suite AEMO MIJE ou...", "Juge pour enfants", - "Stage parentalité", "Audition des enfants", "Assistance éducative", "Signalement", diff --git a/src/statistiques/v2/penales/StatsPenales.ts b/src/statistiques/v2/penales/StatsPenales.ts index c6d6cf4..8d7f9e4 100644 --- a/src/statistiques/v2/penales/StatsPenales.ts +++ b/src/statistiques/v2/penales/StatsPenales.ts @@ -63,7 +63,6 @@ export const statsPenalesDesc = { tribunalCorrectionnel1: { label: "Tribunal Correctionnel 1er passage", stats: { - nbFamillesConvoquees: { label: "Nb familles convoquées mais pas encore passées", }, @@ -89,6 +88,13 @@ export const statsPenalesDesc = { }, }, }, + + nbFamilleAvecStageParentalité: { + label: "Nb Familles avec un Stage de parentalité", + }, + nbFamilleAvecRequisitionJudiciaire: { + label: "Nb Familles avec Réquisition Judiciaire", + }, nbFamillesTribunalDePolice: { label: "Nb familles avec Tribunal de police", }, diff --git a/src/statistiques/v2/penales/computeStatsPenales.ts b/src/statistiques/v2/penales/computeStatsPenales.ts index da628ef..71f3674 100644 --- a/src/statistiques/v2/penales/computeStatsPenales.ts +++ b/src/statistiques/v2/penales/computeStatsPenales.ts @@ -14,11 +14,10 @@ import { filterFamillesWithOneOfEvenements } from "../filterFamillesWithOneOfEve import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType"; import { StatsPenales } from "./StatsPenales"; - type FamilleAvecInfoTribunaux = Famille & { - evtTribunal1?: EvenementFamille - evtTribunal2?: EvenementFamille -} + evtTribunal1?: EvenementFamille; + evtTribunal2?: EvenementFamille; +}; export function computeStatsPenales(familles: Famille[]): StatsPenales { const famillesResistantesOuEx = familles.filter( @@ -33,16 +32,15 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales { isGendarmerie ); - const famillesAvecInfoTribunaux: FamilleAvecInfoTribunaux[] = famillesResistantesOuEx.map( - f => { + const famillesAvecInfoTribunaux: FamilleAvecInfoTribunaux[] = + famillesResistantesOuEx.map((f) => { const evtTribunaux = f.Evenements.filter(isTribunalCorrectionnel); return { ...f, evtTribunal1: evtTribunaux.length > 0 ? evtTribunaux[0] : undefined, - evtTribunal2: evtTribunaux.length > 1 ? evtTribunaux[1] : undefined + evtTribunal2: evtTribunaux.length > 1 ? evtTribunaux[1] : undefined, }; - } - ); + }); const statsPenales: StatsPenales = { nbFamillesMisesEnDemeure: famillesMisesEnDemeure.length, nbFamillesAvecGendarmerie: famillesAvecGendarmerie.length, @@ -66,8 +64,21 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales { "Acceptation avertissement pénal probatoire" ).length, }, - tribunalCorrectionnel1: computeTribunalCorrectionnel1(famillesAvecInfoTribunaux), - tribunalCorrectionnel2: computeTribunalCorrectionnel2(famillesAvecInfoTribunaux), + tribunalCorrectionnel1: computeTribunalCorrectionnel1( + famillesAvecInfoTribunaux + ), + tribunalCorrectionnel2: computeTribunalCorrectionnel2( + famillesAvecInfoTribunaux + ), + + nbFamilleAvecRequisitionJudiciaire: filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "Réquisition judiciaire" + ).length, + nbFamilleAvecStageParentalité: filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "Stage parentalité" + ).length, nbFamillesTribunalDePolice: filterFamillesWithOneOfEvenementsOfType( famillesResistantesOuEx, @@ -127,17 +138,17 @@ function computeCompositionPenales( }; } - - function computeTribunalCorrectionnel1( famillesResistantesOuEx: FamilleAvecInfoTribunaux[] ): StatsPenales["tribunalCorrectionnel1"] { const now = new Date(); - const famillesPassees = famillesResistantesOuEx.filter(f => f.evtTribunal1 - && isEvenementBefore(f.evtTribunal1, now)); + const famillesPassees = famillesResistantesOuEx.filter( + (f) => f.evtTribunal1 && isEvenementBefore(f.evtTribunal1, now) + ); - const famillesProgrammees = famillesResistantesOuEx.filter(f => f.evtTribunal1 - && !isEvenementBefore(f.evtTribunal1, now)); + const famillesProgrammees = famillesResistantesOuEx.filter( + (f) => f.evtTribunal1 && !isEvenementBefore(f.evtTribunal1, now) + ); return { nbFamillesPassees: famillesPassees.length, @@ -154,11 +165,13 @@ function computeTribunalCorrectionnel2( famillesResistantesOuEx: FamilleAvecInfoTribunaux[] ): StatsPenales["tribunalCorrectionnel2"] { const now = new Date(); - const famillesPassees = famillesResistantesOuEx.filter(f => f.evtTribunal2 - && isEvenementBefore(f.evtTribunal2, now)); + const famillesPassees = famillesResistantesOuEx.filter( + (f) => f.evtTribunal2 && isEvenementBefore(f.evtTribunal2, now) + ); - const famillesProgrammees = famillesResistantesOuEx.filter(f => f.evtTribunal2 - && !isEvenementBefore(f.evtTribunal2, now)); + const famillesProgrammees = famillesResistantesOuEx.filter( + (f) => f.evtTribunal2 && !isEvenementBefore(f.evtTribunal2, now) + ); return { nbFamillesPassees: famillesPassees.length, @@ -227,7 +240,6 @@ function computeIntervalProcureurTribunalCorrectionnel( return average(intervals); } - function isTribunalCorrectionnel(e: EvenementFamille): boolean { - return e.Type === "Tribunal correctionnel" + return e.Type === "Tribunal correctionnel"; } diff --git a/src/statistiques/v2/sociales/StatsSociales.ts b/src/statistiques/v2/sociales/StatsSociales.ts index d75ef08..6d6247f 100644 --- a/src/statistiques/v2/sociales/StatsSociales.ts +++ b/src/statistiques/v2/sociales/StatsSociales.ts @@ -17,9 +17,6 @@ export const statsSocialesDesc = { nbFamilleAvecAssistanceEducative: { label: "Nb Familles avec une Assistance educative", }, - nbFamilleAvecStageParentalité: { - label: "Nb Familles avec un Stage de parentalité", - }, nbFamilleAvecAuditionDesEnfants: { label: "Nb Familles avec audition des enfants", }, diff --git a/src/statistiques/v2/sociales/computeStatsSociales.ts b/src/statistiques/v2/sociales/computeStatsSociales.ts index c441afb..4233ee0 100644 --- a/src/statistiques/v2/sociales/computeStatsSociales.ts +++ b/src/statistiques/v2/sociales/computeStatsSociales.ts @@ -28,10 +28,6 @@ export function computeStatsSociales(familles: Famille[]): StatsSociales { famillesResistantesOuEx, "Classement suite IP" ).length, - nbFamilleAvecStageParentalité: filterFamillesWithOneOfEvenementsOfType( - famillesResistantesOuEx, - "Stage parentalité" - ).length, nbFamilleAvecAssistanceEducative: filterFamillesWithOneOfEvenementsOfType( famillesResistantesOuEx, "Assistance éducative"