diff --git a/src/data/EvenementFamille.ts b/src/data/EvenementFamille.ts index 145e599..175a4ab 100644 --- a/src/data/EvenementFamille.ts +++ b/src/data/EvenementFamille.ts @@ -29,35 +29,37 @@ export function isProcedureCivile(evenement: EvenementFamille): boolean { const categorieEvenement: { [evt in TypeEvenement]: CategorieEvenement; } = { + ["Signalement au procureur"]: "Procédure Civile", + ["Classement social sans suite"]: "Procédure Civile", + ["Enquête sociale"]: "Procédure Civile", + ["Information préoccupante"]: "Procédure Civile", + ["Juge pour enfants"]: "Procédure Civile", + ["Audition des enfants"]: "Procédure Civile", + ["Assistance éducative"]: "Procédure Civile", + ["Contrôle forcé"]: "Procédure Civile", + ["Récidive gendarmerie"]: "Procédure Pénale", ["Appel du jugement"]: "Procédure Pénale", ["Tribunal de police judiciaire"]: "Procédure Pénale", - ["Signalement au procureur"]: "Procédure Civile", // TBC ["Mise en demeure de scolarisation"]: "Procédure Pénale", - ["Signalement"]: "Procédure Civile", ["Audition gendarmerie / police"]: "Procédure Pénale", + ["Passage police municipale"]: "Procédure Pénale", ["Convocation procureur"]: "Procédure Pénale", ["Audition procureur"]: "Procédure Pénale", ["Composition pénale refusée"]: "Procédure Pénale", ["Composition pénale acceptée"]: "Procédure Pénale", - ["Classement social sans suite"]: "Procédure Civile", ["Classement pénal sans suite"]: "Procédure Pénale", - ["Enquête sociale"]: "Procédure Civile", - ["Information préoccupante"]: "Procédure Civile", - ["Juge pour enfants"]: "Procédure Civile", ["Tribunal correctionnel"]: "Procédure Pénale", ["Convocation CRPC"]: "Procédure Pénale", - ["Plaidoirie"]: "Procédure Pénale", ["Audience CRPC"]: "Procédure Pénale", ["Refus CRPC"]: "Procédure Pénale", - ["Audition des enfants"]: "Procédure Civile", - ["Assistance éducative"]: "Procédure Civile", - ["Contrôle forcé"]: "Autre", - ["Refus de contrôle"]: "Autre", ["Rappel à la loi"]: "Procédure Pénale", - ["Passage police municipale"]: "Procédure Pénale", + ["Validation désobéissance"]: "Procédure Pénale", + + ["Plaidoirie"]: "Autre", + ["Refus de contrôle"]: "Autre", ["Administrateur AD'HOC"]: "Autre", - ["Validation désobéissance"]: "Autre", + ["Signalement"]: "Autre", }; export type CategorieEvenement = @@ -72,6 +74,13 @@ export function isEvenementInPeriod( return evt.Date && isPeriodContaining(period, evt.Date); } -export function isEvenementBefore(evt: EvenementFamille, date: Date): unknown { +export function isEvenementBefore(evt: EvenementFamille, date: Date): boolean { return evt.Date !== null && evt.Date < date; } + +export function isValidEvenementFamille(str: string | null): boolean { + return ( + str === null || + Object.prototype.hasOwnProperty.call(categorieEvenement, str) + ); +} diff --git a/src/data/checkDataConsistency.ts b/src/data/checkDataConsistency.ts index dfc5d33..b0433da 100644 --- a/src/data/checkDataConsistency.ts +++ b/src/data/checkDataConsistency.ts @@ -1,3 +1,4 @@ +import { isValidEvenementFamille } from "./EvenementFamille"; import { Famille } from "./Famille"; export function checkDataConsistency(families: Famille[]): ConsistencyIssue[] { @@ -59,5 +60,13 @@ function checkFamilyDataConsistency(family: Famille) { }); } } + consistencyIssues.push( + ...family.Evenements.filter((e) => !isValidEvenementFamille(e.Type)).map( + (e) => ({ + familyId: family.Titre, + issueType: "Unknown event Type: " + e.Type, + }) + ) + ); return consistencyIssues; }