fix: stats delai pénal considère tous les evt lié au proc

wip-related-pages
Sébastien Arod 2024-09-16 20:50:30 +02:00
parent 50c50c6b3a
commit 424e072e34
3 changed files with 11 additions and 8 deletions

View File

@ -33,7 +33,8 @@ export function isCRPC(evenement: EvenementFamille): boolean {
return (
evenement.Type === "Convocation CRPC" ||
evenement.Type === "Audience CRPC" ||
evenement.Type === "Refus CRPC"
evenement.Type === "Refus CRPC" ||
evenement.Type === "Acceptation CRPC"
);
}
@ -64,8 +65,8 @@ export function isGendarmerie(e: EvenementFamille): boolean {
e.Type === "Passage police municipale"
);
}
export function isAuditionProcureurOuCRPC(e: EvenementFamille): boolean {
return e.Type === "Audition procureur" || e.Type === "Audience CRPC";
export function isProcureur(e: EvenementFamille): boolean {
return e.Type === "Audition procureur" || isCRPC(e) || isCompositionPenale(e);
}
export function isInformationPreoccupante(e: EvenementFamille): boolean {

View File

@ -88,10 +88,12 @@ export const statsPenalesDesc = {
intervalGendarmerieProcureur: {
label: "Délai moyen entre Gendarmerie et Procureur",
unit: " jours",
valueMaxFractioDigits: 0,
},
intervalProcureurTribunalCorrectionnel: {
label: "Délai moyen entre Procureur et Tribunal Correctionnel",
unit: " jours",
valueMaxFractioDigits: 0,
},
},
} as const;

View File

@ -3,7 +3,7 @@ import {
isCompositionPenale,
isCRPC,
isEvenementBefore,
isAuditionProcureurOuCRPC,
isProcureur,
isGendarmerie,
isProcedurePenale,
} from "../../../data/EvenementFamille";
@ -35,7 +35,7 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales {
procureur: {
nbFamillesAuditionProcureur: filterFamillesWithOneOfEvenements(
famillesResistantesOuEx,
isAuditionProcureurOuCRPC
isProcureur
).length,
compositionPenales: computeCompositionPenales(familles),
crpc: computeCrpc(familles),
@ -144,7 +144,7 @@ function computeTribunalCorrectionnel(
function computeIntervalGendarmerieProcureur(familles: Famille[]): number {
const intervals = familles.flatMap((f) => {
const evtGendarmerie = f.Evenements.find((e) => isGendarmerie(e));
const evtProcureur = f.Evenements.find((e) => isAuditionProcureurOuCRPC(e));
const evtProcureur = f.Evenements.find((e) => isProcureur(e));
// consider only intervals for families with both events date
if (!evtGendarmerie?.Date || !evtProcureur?.Date) {
@ -157,7 +157,7 @@ function computeIntervalGendarmerieProcureur(familles: Famille[]): number {
);
if (intervalInDays < 0) {
console.warn(
`IntervalGendarmerieProcureur < 0 for ${f.Titre} (${f.notionId})`
`IntervalGendarmerieProcureur < 0 pour ${f.Titre} (${f.notionId}): Cet interval sera ignoré.`
);
return [];
} else {
@ -171,7 +171,7 @@ function computeIntervalProcureurTribunalCorrectionnel(
familles: Famille[]
): number {
const intervals = familles.flatMap((f) => {
const evtProcureur = f.Evenements.find((e) => isAuditionProcureurOuCRPC(e));
const evtProcureur = f.Evenements.find((e) => isProcureur(e));
const evtTribunal = f.Evenements.find(
(e) => e.Type === "Tribunal correctionnel"
);