feat: ajoute Requisition Judiciaire et deplace Stage Par dans pénal

wip-related-pages
Sébastien Arod 2024-09-25 21:20:20 +02:00
parent b0272d3733
commit 999fd8f4b5
6 changed files with 46 additions and 35 deletions

View File

@ -4,6 +4,7 @@ export const typesEvenementsPenal = [
"Gendarmerie/Forces de l'ordre", "Gendarmerie/Forces de l'ordre",
"Réquisition judiciaire",
"Audition procureur", "Audition procureur",
"Composition pénale refusée", "Composition pénale refusée",
@ -15,10 +16,10 @@ export const typesEvenementsPenal = [
"Tribunal correctionnel", "Tribunal correctionnel",
"Administrateur AD'HOC", "Administrateur AD'HOC",
"Appel du 1er jugement", "Appel du 1er jugement",
"Stage parentalité",
// placeholder "Réquisition judiciaire",
"Appel du 2eme jugement", "Appel du 2eme jugement", // placeholder
"Tribunal de police judiciaire", "Tribunal de police judiciaire",

View File

@ -7,7 +7,6 @@ export const typesEvenementsSocial = [
"Classement suite IP", "Classement suite IP",
"Classement suite AEMO MIJE ou...", "Classement suite AEMO MIJE ou...",
"Juge pour enfants", "Juge pour enfants",
"Stage parentalité",
"Audition des enfants", "Audition des enfants",
"Assistance éducative", "Assistance éducative",
"Signalement", "Signalement",

View File

@ -63,7 +63,6 @@ export const statsPenalesDesc = {
tribunalCorrectionnel1: { tribunalCorrectionnel1: {
label: "Tribunal Correctionnel 1er passage", label: "Tribunal Correctionnel 1er passage",
stats: { stats: {
nbFamillesConvoquees: { nbFamillesConvoquees: {
label: "Nb familles convoquées mais pas encore passées", 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: { nbFamillesTribunalDePolice: {
label: "Nb familles avec Tribunal de police", label: "Nb familles avec Tribunal de police",
}, },

View File

@ -14,11 +14,10 @@ import { filterFamillesWithOneOfEvenements } from "../filterFamillesWithOneOfEve
import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType"; import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType";
import { StatsPenales } from "./StatsPenales"; import { StatsPenales } from "./StatsPenales";
type FamilleAvecInfoTribunaux = Famille & { type FamilleAvecInfoTribunaux = Famille & {
evtTribunal1?: EvenementFamille evtTribunal1?: EvenementFamille;
evtTribunal2?: EvenementFamille evtTribunal2?: EvenementFamille;
} };
export function computeStatsPenales(familles: Famille[]): StatsPenales { export function computeStatsPenales(familles: Famille[]): StatsPenales {
const famillesResistantesOuEx = familles.filter( const famillesResistantesOuEx = familles.filter(
@ -33,16 +32,15 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales {
isGendarmerie isGendarmerie
); );
const famillesAvecInfoTribunaux: FamilleAvecInfoTribunaux[] = famillesResistantesOuEx.map( const famillesAvecInfoTribunaux: FamilleAvecInfoTribunaux[] =
f => { famillesResistantesOuEx.map((f) => {
const evtTribunaux = f.Evenements.filter(isTribunalCorrectionnel); const evtTribunaux = f.Evenements.filter(isTribunalCorrectionnel);
return { return {
...f, ...f,
evtTribunal1: evtTribunaux.length > 0 ? evtTribunaux[0] : undefined, evtTribunal1: evtTribunaux.length > 0 ? evtTribunaux[0] : undefined,
evtTribunal2: evtTribunaux.length > 1 ? evtTribunaux[1] : undefined evtTribunal2: evtTribunaux.length > 1 ? evtTribunaux[1] : undefined,
}; };
} });
);
const statsPenales: StatsPenales = { const statsPenales: StatsPenales = {
nbFamillesMisesEnDemeure: famillesMisesEnDemeure.length, nbFamillesMisesEnDemeure: famillesMisesEnDemeure.length,
nbFamillesAvecGendarmerie: famillesAvecGendarmerie.length, nbFamillesAvecGendarmerie: famillesAvecGendarmerie.length,
@ -66,8 +64,21 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales {
"Acceptation avertissement pénal probatoire" "Acceptation avertissement pénal probatoire"
).length, ).length,
}, },
tribunalCorrectionnel1: computeTribunalCorrectionnel1(famillesAvecInfoTribunaux), tribunalCorrectionnel1: computeTribunalCorrectionnel1(
tribunalCorrectionnel2: computeTribunalCorrectionnel2(famillesAvecInfoTribunaux), famillesAvecInfoTribunaux
),
tribunalCorrectionnel2: computeTribunalCorrectionnel2(
famillesAvecInfoTribunaux
),
nbFamilleAvecRequisitionJudiciaire: filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx,
"Réquisition judiciaire"
).length,
nbFamilleAvecStageParentalité: filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx,
"Stage parentalité"
).length,
nbFamillesTribunalDePolice: filterFamillesWithOneOfEvenementsOfType( nbFamillesTribunalDePolice: filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx, famillesResistantesOuEx,
@ -127,17 +138,17 @@ function computeCompositionPenales(
}; };
} }
function computeTribunalCorrectionnel1( function computeTribunalCorrectionnel1(
famillesResistantesOuEx: FamilleAvecInfoTribunaux[] famillesResistantesOuEx: FamilleAvecInfoTribunaux[]
): StatsPenales["tribunalCorrectionnel1"] { ): StatsPenales["tribunalCorrectionnel1"] {
const now = new Date(); const now = new Date();
const famillesPassees = famillesResistantesOuEx.filter(f => f.evtTribunal1 const famillesPassees = famillesResistantesOuEx.filter(
&& isEvenementBefore(f.evtTribunal1, now)); (f) => f.evtTribunal1 && isEvenementBefore(f.evtTribunal1, now)
);
const famillesProgrammees = famillesResistantesOuEx.filter(f => f.evtTribunal1 const famillesProgrammees = famillesResistantesOuEx.filter(
&& !isEvenementBefore(f.evtTribunal1, now)); (f) => f.evtTribunal1 && !isEvenementBefore(f.evtTribunal1, now)
);
return { return {
nbFamillesPassees: famillesPassees.length, nbFamillesPassees: famillesPassees.length,
@ -154,11 +165,13 @@ function computeTribunalCorrectionnel2(
famillesResistantesOuEx: FamilleAvecInfoTribunaux[] famillesResistantesOuEx: FamilleAvecInfoTribunaux[]
): StatsPenales["tribunalCorrectionnel2"] { ): StatsPenales["tribunalCorrectionnel2"] {
const now = new Date(); const now = new Date();
const famillesPassees = famillesResistantesOuEx.filter(f => f.evtTribunal2 const famillesPassees = famillesResistantesOuEx.filter(
&& isEvenementBefore(f.evtTribunal2, now)); (f) => f.evtTribunal2 && isEvenementBefore(f.evtTribunal2, now)
);
const famillesProgrammees = famillesResistantesOuEx.filter(f => f.evtTribunal2 const famillesProgrammees = famillesResistantesOuEx.filter(
&& !isEvenementBefore(f.evtTribunal2, now)); (f) => f.evtTribunal2 && !isEvenementBefore(f.evtTribunal2, now)
);
return { return {
nbFamillesPassees: famillesPassees.length, nbFamillesPassees: famillesPassees.length,
@ -227,7 +240,6 @@ function computeIntervalProcureurTribunalCorrectionnel(
return average(intervals); return average(intervals);
} }
function isTribunalCorrectionnel(e: EvenementFamille): boolean { function isTribunalCorrectionnel(e: EvenementFamille): boolean {
return e.Type === "Tribunal correctionnel" return e.Type === "Tribunal correctionnel";
} }

View File

@ -17,9 +17,6 @@ export const statsSocialesDesc = {
nbFamilleAvecAssistanceEducative: { nbFamilleAvecAssistanceEducative: {
label: "Nb Familles avec une Assistance educative", label: "Nb Familles avec une Assistance educative",
}, },
nbFamilleAvecStageParentalité: {
label: "Nb Familles avec un Stage de parentalité",
},
nbFamilleAvecAuditionDesEnfants: { nbFamilleAvecAuditionDesEnfants: {
label: "Nb Familles avec audition des enfants", label: "Nb Familles avec audition des enfants",
}, },

View File

@ -28,10 +28,6 @@ export function computeStatsSociales(familles: Famille[]): StatsSociales {
famillesResistantesOuEx, famillesResistantesOuEx,
"Classement suite IP" "Classement suite IP"
).length, ).length,
nbFamilleAvecStageParentalité: filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx,
"Stage parentalité"
).length,
nbFamilleAvecAssistanceEducative: filterFamillesWithOneOfEvenementsOfType( nbFamilleAvecAssistanceEducative: filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx, famillesResistantesOuEx,
"Assistance éducative" "Assistance éducative"