feat: ajoute les pages familles liées sur les stats pénales

main
Sébastien Arod 2024-12-17 21:33:19 +01:00
parent cfb4bcc772
commit a5d5af8e49
2 changed files with 87 additions and 53 deletions

View File

@ -14,6 +14,8 @@ import { average } from "../../../utils/math/average";
import { filterFamillesWithOneOfEvenements } from "../filterFamillesWithOneOfEvenements"; import { filterFamillesWithOneOfEvenements } from "../filterFamillesWithOneOfEvenements";
import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType"; import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType";
import { StatsPenales } from "./StatsPenales"; import { StatsPenales } from "./StatsPenales";
import { nbFamillesAvecPagesLiees } from "./nbFamillesAvecPagesLiees";
import { StatsData } from "../desc/StatsDesc";
type FamilleAvecInfoTribunaux = Famille & { type FamilleAvecInfoTribunaux = Famille & {
evtTribunal1?: EvenementFamille; evtTribunal1?: EvenementFamille;
@ -59,31 +61,41 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales {
}); });
const statsPenales: StatsPenales = { const statsPenales: StatsPenales = {
nbFamillesMisesEnDemeure: famillesMisesEnDemeure.length, nbFamillesMisesEnDemeure: nbFamillesAvecPagesLiees(famillesMisesEnDemeure),
nbFamillesAvecProcedurePenale: filterFamillesWithOneOfEvenements( nbFamillesAvecProcedurePenale: nbFamillesAvecPagesLiees(
filterFamillesWithOneOfEvenements(
famillesResistantesOuEx, famillesResistantesOuEx,
isEvtProcedurePenale isEvtProcedurePenale
).length, )
nbFamillesAvecGendarmerie: famillesGendarmerie.length, ),
nbFamillesAvecGendarmerieSansSuiteACeJour: nbFamillesAvecGendarmerie: nbFamillesAvecPagesLiees(famillesGendarmerie),
famillesAvecGendarmerieSansSuiteACeJour.length, nbFamillesAvecGendarmerieSansSuiteACeJour: nbFamillesAvecPagesLiees(
nbFamillesAvecEvtProcedurePenaleHorsGendarmerie: famillesAvecGendarmerieSansSuiteACeJour
famillesAvecEvtProcedurePenaleHorsGendarmerie.length, ),
nbFamillesAvecEvtProcedurePenaleHorsGendarmerie: nbFamillesAvecPagesLiees(
famillesAvecEvtProcedurePenaleHorsGendarmerie
),
procureur: { procureur: {
nbFamillesAuditionProcureur: filterFamillesWithOneOfEvenementsOfType( nbFamillesAuditionProcureur: nbFamillesAvecPagesLiees(
filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx, famillesResistantesOuEx,
"Audition procureur" "Audition procureur"
).length, )
),
compositionPenales: computeCompositionPenales(familles), compositionPenales: computeCompositionPenales(familles),
crpc: computeCrpc(familles), crpc: computeCrpc(familles),
nbFamillesClassementSansSuite: filterFamillesWithOneOfEvenementsOfType( nbFamillesClassementSansSuite: nbFamillesAvecPagesLiees(
filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx, famillesResistantesOuEx,
"Classement pénal sans suite" "Classement pénal sans suite"
).length, )
nbFamilleAcceptationAPP: filterFamillesWithOneOfEvenementsOfType( ),
nbFamilleAcceptationAPP: nbFamillesAvecPagesLiees(
filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx, famillesResistantesOuEx,
"Acceptation avertissement pénal probatoire" "Acceptation avertissement pénal probatoire"
).length, )
),
}, },
tribunalCorrectionnel1: computeTribunalCorrectionnel1( tribunalCorrectionnel1: computeTribunalCorrectionnel1(
famillesAvecInfoTribunaux famillesAvecInfoTribunaux
@ -92,19 +104,25 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales {
famillesAvecInfoTribunaux famillesAvecInfoTribunaux
), ),
nbFamilleAvecRequisitionJudiciaire: filterFamillesWithOneOfEvenementsOfType( nbFamilleAvecRequisitionJudiciaire: nbFamillesAvecPagesLiees(
filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx, famillesResistantesOuEx,
"Réquisition judiciaire" "Réquisition judiciaire"
).length, )
nbFamilleAvecStageParentalité: filterFamillesWithOneOfEvenementsOfType( ),
nbFamilleAvecStageParentalité: nbFamillesAvecPagesLiees(
filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx, famillesResistantesOuEx,
"Stage parentalité" "Stage parentalité"
).length, )
),
nbFamillesTribunalDePolice: filterFamillesWithOneOfEvenementsOfType( nbFamillesTribunalDePolice: nbFamillesAvecPagesLiees(
filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx, famillesResistantesOuEx,
"Tribunal de police judiciaire" "Tribunal de police judiciaire"
).length, )
),
intervalGendarmerieProcureur: computeIntervalGendarmerieProcureur(familles), intervalGendarmerieProcureur: computeIntervalGendarmerieProcureur(familles),
intervalProcureurTribunalCorrectionnel: intervalProcureurTribunalCorrectionnel:
@ -130,9 +148,9 @@ function computeCrpc(
); );
return { return {
nbFamilles: famillesConcernees.length, nbFamilles: nbFamilles(famillesConcernees),
acceptees: acceptees.length, acceptees: nbFamilles(acceptees),
refusees: refusees.length, refusees: nbFamilles(refusees),
}; };
} }
@ -153,9 +171,9 @@ function computeCompositionPenales(
); );
return { return {
nbFamilles: famillesConcernees.length, nbFamilles: nbFamilles(famillesConcernees),
acceptees: acceptees.length, acceptees: nbFamilles(acceptees),
refusees: refusees.length, refusees: nbFamilles(refusees),
}; };
} }
@ -172,13 +190,15 @@ function computeTribunalCorrectionnel1(
); );
return { return {
nbFamillesPassees: famillesPassees.length, nbFamillesPassees: nbFamillesAvecPagesLiees(famillesPassees),
nbFamillesConvoquees: famillesProgrammees.length, nbFamillesConvoquees: nbFamillesAvecPagesLiees(famillesProgrammees),
nbFamilleAppelDuJugement: filterFamillesWithOneOfEvenementsOfType( nbFamilleAppelDuJugement: nbFamillesAvecPagesLiees(
filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx, famillesResistantesOuEx,
"Appel du 1er jugement" "Appel du 1er jugement"
).length, )
),
}; };
} }
@ -195,13 +215,14 @@ function computeTribunalCorrectionnel2(
); );
return { return {
nbFamillesPassees: famillesPassees.length, nbFamillesPassees: nbFamilles(famillesPassees),
nbFamillesConvoquees: famillesProgrammees.length, nbFamillesConvoquees: nbFamilles(famillesProgrammees),
nbFamilleAppelDuJugement: nbFamilles(
nbFamilleAppelDuJugement: filterFamillesWithOneOfEvenementsOfType( filterFamillesWithOneOfEvenementsOfType(
famillesResistantesOuEx, famillesResistantesOuEx,
"Appel du 2eme jugement" "Appel du 2eme jugement"
).length, )
),
}; };
} }
@ -264,3 +285,7 @@ function computeIntervalProcureurTribunalCorrectionnel(
function isTribunalCorrectionnel(e: EvenementFamille): boolean { function isTribunalCorrectionnel(e: EvenementFamille): boolean {
return e.Type === "Tribunal correctionnel"; return e.Type === "Tribunal correctionnel";
} }
export function nbFamilles(familles: Famille[]): StatsData {
return familles.length;
}

View File

@ -0,0 +1,9 @@
import { Famille } from "../../../data/Famille";
import { StatsData } from "../desc/StatsDesc";
export function nbFamillesAvecPagesLiees(familles: Famille[]): StatsData {
return {
value: familles.length,
relatedPageIds: familles.map((f) => f.notionId),
};
}