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 ( return (
evenement.Type === "Convocation CRPC" || evenement.Type === "Convocation CRPC" ||
evenement.Type === "Audience 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" e.Type === "Passage police municipale"
); );
} }
export function isAuditionProcureurOuCRPC(e: EvenementFamille): boolean { export function isProcureur(e: EvenementFamille): boolean {
return e.Type === "Audition procureur" || e.Type === "Audience CRPC"; return e.Type === "Audition procureur" || isCRPC(e) || isCompositionPenale(e);
} }
export function isInformationPreoccupante(e: EvenementFamille): boolean { export function isInformationPreoccupante(e: EvenementFamille): boolean {

View File

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

View File

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