From a5d5af8e49109e4c28a4cadf8365e1bb7398b52d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Arod?= Date: Tue, 17 Dec 2024 21:33:19 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20ajoute=20les=20pages=20familles=20li?= =?UTF-8?q?=C3=A9es=20sur=20les=20stats=20p=C3=A9nales?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2/penales/computeStatsPenales.ts | 131 +++++++++++------- .../v2/penales/nbFamillesAvecPagesLiees.ts | 9 ++ 2 files changed, 87 insertions(+), 53 deletions(-) create mode 100644 src/statistiques/v2/penales/nbFamillesAvecPagesLiees.ts diff --git a/src/statistiques/v2/penales/computeStatsPenales.ts b/src/statistiques/v2/penales/computeStatsPenales.ts index cd24a6c..df8c8dd 100644 --- a/src/statistiques/v2/penales/computeStatsPenales.ts +++ b/src/statistiques/v2/penales/computeStatsPenales.ts @@ -14,6 +14,8 @@ import { average } from "../../../utils/math/average"; import { filterFamillesWithOneOfEvenements } from "../filterFamillesWithOneOfEvenements"; import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType"; import { StatsPenales } from "./StatsPenales"; +import { nbFamillesAvecPagesLiees } from "./nbFamillesAvecPagesLiees"; +import { StatsData } from "../desc/StatsDesc"; type FamilleAvecInfoTribunaux = Famille & { evtTribunal1?: EvenementFamille; @@ -59,31 +61,41 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales { }); const statsPenales: StatsPenales = { - nbFamillesMisesEnDemeure: famillesMisesEnDemeure.length, - nbFamillesAvecProcedurePenale: filterFamillesWithOneOfEvenements( - famillesResistantesOuEx, - isEvtProcedurePenale - ).length, - nbFamillesAvecGendarmerie: famillesGendarmerie.length, - nbFamillesAvecGendarmerieSansSuiteACeJour: - famillesAvecGendarmerieSansSuiteACeJour.length, - nbFamillesAvecEvtProcedurePenaleHorsGendarmerie: - famillesAvecEvtProcedurePenaleHorsGendarmerie.length, - procureur: { - nbFamillesAuditionProcureur: filterFamillesWithOneOfEvenementsOfType( + nbFamillesMisesEnDemeure: nbFamillesAvecPagesLiees(famillesMisesEnDemeure), + nbFamillesAvecProcedurePenale: nbFamillesAvecPagesLiees( + filterFamillesWithOneOfEvenements( famillesResistantesOuEx, - "Audition procureur" - ).length, + isEvtProcedurePenale + ) + ), + nbFamillesAvecGendarmerie: nbFamillesAvecPagesLiees(famillesGendarmerie), + nbFamillesAvecGendarmerieSansSuiteACeJour: nbFamillesAvecPagesLiees( + famillesAvecGendarmerieSansSuiteACeJour + ), + nbFamillesAvecEvtProcedurePenaleHorsGendarmerie: nbFamillesAvecPagesLiees( + famillesAvecEvtProcedurePenaleHorsGendarmerie + ), + procureur: { + nbFamillesAuditionProcureur: nbFamillesAvecPagesLiees( + filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "Audition procureur" + ) + ), compositionPenales: computeCompositionPenales(familles), crpc: computeCrpc(familles), - nbFamillesClassementSansSuite: filterFamillesWithOneOfEvenementsOfType( - famillesResistantesOuEx, - "Classement pénal sans suite" - ).length, - nbFamilleAcceptationAPP: filterFamillesWithOneOfEvenementsOfType( - famillesResistantesOuEx, - "Acceptation avertissement pénal probatoire" - ).length, + nbFamillesClassementSansSuite: nbFamillesAvecPagesLiees( + filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "Classement pénal sans suite" + ) + ), + nbFamilleAcceptationAPP: nbFamillesAvecPagesLiees( + filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "Acceptation avertissement pénal probatoire" + ) + ), }, tribunalCorrectionnel1: computeTribunalCorrectionnel1( famillesAvecInfoTribunaux @@ -92,19 +104,25 @@ export function computeStatsPenales(familles: Famille[]): StatsPenales { famillesAvecInfoTribunaux ), - nbFamilleAvecRequisitionJudiciaire: filterFamillesWithOneOfEvenementsOfType( - famillesResistantesOuEx, - "Réquisition judiciaire" - ).length, - nbFamilleAvecStageParentalité: filterFamillesWithOneOfEvenementsOfType( - famillesResistantesOuEx, - "Stage parentalité" - ).length, + nbFamilleAvecRequisitionJudiciaire: nbFamillesAvecPagesLiees( + filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "Réquisition judiciaire" + ) + ), + nbFamilleAvecStageParentalité: nbFamillesAvecPagesLiees( + filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "Stage parentalité" + ) + ), - nbFamillesTribunalDePolice: filterFamillesWithOneOfEvenementsOfType( - famillesResistantesOuEx, - "Tribunal de police judiciaire" - ).length, + nbFamillesTribunalDePolice: nbFamillesAvecPagesLiees( + filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "Tribunal de police judiciaire" + ) + ), intervalGendarmerieProcureur: computeIntervalGendarmerieProcureur(familles), intervalProcureurTribunalCorrectionnel: @@ -130,9 +148,9 @@ function computeCrpc( ); return { - nbFamilles: famillesConcernees.length, - acceptees: acceptees.length, - refusees: refusees.length, + nbFamilles: nbFamilles(famillesConcernees), + acceptees: nbFamilles(acceptees), + refusees: nbFamilles(refusees), }; } @@ -153,9 +171,9 @@ function computeCompositionPenales( ); return { - nbFamilles: famillesConcernees.length, - acceptees: acceptees.length, - refusees: refusees.length, + nbFamilles: nbFamilles(famillesConcernees), + acceptees: nbFamilles(acceptees), + refusees: nbFamilles(refusees), }; } @@ -172,13 +190,15 @@ function computeTribunalCorrectionnel1( ); return { - nbFamillesPassees: famillesPassees.length, - nbFamillesConvoquees: famillesProgrammees.length, + nbFamillesPassees: nbFamillesAvecPagesLiees(famillesPassees), + nbFamillesConvoquees: nbFamillesAvecPagesLiees(famillesProgrammees), - nbFamilleAppelDuJugement: filterFamillesWithOneOfEvenementsOfType( - famillesResistantesOuEx, - "Appel du 1er jugement" - ).length, + nbFamilleAppelDuJugement: nbFamillesAvecPagesLiees( + filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "Appel du 1er jugement" + ) + ), }; } @@ -195,13 +215,14 @@ function computeTribunalCorrectionnel2( ); return { - nbFamillesPassees: famillesPassees.length, - nbFamillesConvoquees: famillesProgrammees.length, - - nbFamilleAppelDuJugement: filterFamillesWithOneOfEvenementsOfType( - famillesResistantesOuEx, - "Appel du 2eme jugement" - ).length, + nbFamillesPassees: nbFamilles(famillesPassees), + nbFamillesConvoquees: nbFamilles(famillesProgrammees), + nbFamilleAppelDuJugement: nbFamilles( + filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "Appel du 2eme jugement" + ) + ), }; } @@ -264,3 +285,7 @@ function computeIntervalProcureurTribunalCorrectionnel( function isTribunalCorrectionnel(e: EvenementFamille): boolean { return e.Type === "Tribunal correctionnel"; } + +export function nbFamilles(familles: Famille[]): StatsData { + return familles.length; +} diff --git a/src/statistiques/v2/penales/nbFamillesAvecPagesLiees.ts b/src/statistiques/v2/penales/nbFamillesAvecPagesLiees.ts new file mode 100644 index 0000000..784cb0d --- /dev/null +++ b/src/statistiques/v2/penales/nbFamillesAvecPagesLiees.ts @@ -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), + }; +}