From f8109fe524c4ea1a5de7c17b23a973c572815d14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Arod?= Date: Wed, 18 Dec 2024 08:49:42 +0100 Subject: [PATCH] feat: ajoute StatsAutres --- src/index.ts | 11 ++++++++ src/statistiques/v2/autres/StatsAutres.ts | 18 +++++++++++++ .../v2/autres/computeStatsAutres.ts | 26 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 src/statistiques/v2/autres/StatsAutres.ts create mode 100644 src/statistiques/v2/autres/computeStatsAutres.ts diff --git a/src/index.ts b/src/index.ts index 35ba6ea..0193816 100644 --- a/src/index.ts +++ b/src/index.ts @@ -18,6 +18,8 @@ import { mermaidDiagramStatsGeneralesMensuelles } from "./statistiques/v2/genera import { publishStatsGenerales } from "./notion/publish/v2/publishStatsGenerales"; import { typeEvenementsProcedurePenale } from "./data/TypeEvenementsPenal"; import { nettoyerDonneesFamilles } from "./data/nettoyage/familles/preparerDonneesFamilles"; +import { statsAutresDesc } from "./statistiques/v2/autres/StatsAutres"; +import { computeStatsAutres } from "./statistiques/v2/autres/computeStatsAutres"; type ProcessOptions = { dryRun: boolean; @@ -109,6 +111,7 @@ function buildProcessOptions(): ProcessOptions { const statsPenales = computeStatsPenales(familles); const statsSociales = computeStatsSociales(familles); + const statsAutres = computeStatsAutres(familles); const statsGeneralesMensuelles = computeStatsGeneralesMensuelles(familles); const mermaidDiagramStatsGeneralesMensuellesCode = mermaidDiagramStatsGeneralesMensuelles(statsGeneralesMensuelles); @@ -133,6 +136,7 @@ function buildProcessOptions(): ProcessOptions { generales: statsGenerales, penales: statsPenales, sociales: statsSociales, + statsAutres: statsAutres, StatsGeneralesMensuelles: statsGeneralesMensuelles, }, null, @@ -173,5 +177,12 @@ function buildProcessOptions(): ProcessOptions { statsSocialesDesc, statsSociales ); + await publishStatsToPage( + notionClient, + "15f168be-9f19-806a-a22e-ed68137f905e", + header, + statsAutresDesc, + statsAutres + ); } })(); diff --git a/src/statistiques/v2/autres/StatsAutres.ts b/src/statistiques/v2/autres/StatsAutres.ts new file mode 100644 index 0000000..f0e2429 --- /dev/null +++ b/src/statistiques/v2/autres/StatsAutres.ts @@ -0,0 +1,18 @@ +import { StatsType } from "../desc/StatsDesc"; + +export const statsAutresDesc = { + label: "Stats Sociales", + stats: { + nbFamillesSuppressionCAF: { + label: "Nb Familles avec une suppression CAF" + }, + nbFamillesControleFiscal: { +label: "Nb Familles ayant eu un contrôle fiscal" + }, + nbFamillesControleURSAFF: { +label: "Nb Familles ayant eu un contrôle URSAFF" + }, + }, +} as const; + +export type StatsAutres = StatsType; diff --git a/src/statistiques/v2/autres/computeStatsAutres.ts b/src/statistiques/v2/autres/computeStatsAutres.ts new file mode 100644 index 0000000..dc81f2f --- /dev/null +++ b/src/statistiques/v2/autres/computeStatsAutres.ts @@ -0,0 +1,26 @@ +import { Famille, isExResistant, isResistant } from "../../../data/Famille"; +import { filterFamillesWithOneOfEvenementsOfType } from "../filterFamillesWithOneOfEvenementsOfType"; +import { StatsAutres } from "./StatsAutres"; + +export function computeStatsAutres(familles: Famille[]): StatsAutres { + const famillesResistantesOuEx = familles.filter( + (f) => isResistant(f) || isExResistant(f) + ); + const statsAutres: StatsAutres = { + nbFamillesControleFiscal: filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "Contrôle fiscal" + ).length, + + nbFamillesControleURSAFF: filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "Contrôle URSSAF" + ).length, + + nbFamillesSuppressionCAF: filterFamillesWithOneOfEvenementsOfType( + famillesResistantesOuEx, + "CAF suppression" + ).length, + }; + return statsAutres; +}