statistiques/src/data/EvenementFamille.ts

95 lines
3 KiB
TypeScript
Raw Normal View History

import { Period } from "../period/Period";
import { isPeriodContaining } from "../period/isPeriodContaining";
import { TypeEvenement } from "./TypeEvenement";
export type EvenementFamille = {
notionId: string;
notionIdFamille: string;
Évènement: string;
Date: Date | null;
Type: TypeEvenement;
"Enfants concernés": string;
};
export function isProcedurePenale(evenement: EvenementFamille): boolean {
return categorieEvenement[evenement.Type] === "Procédure Pénale";
}
export function isCompositionPenale(evenement: EvenementFamille): boolean {
return (
evenement.Type === "Composition pénale acceptée" ||
evenement.Type === "Composition pénale refusée"
);
}
export function isCRPC(evenement: EvenementFamille): boolean {
return (
evenement.Type === "Convocation CRPC" ||
evenement.Type === "Audience CRPC" ||
evenement.Type === "Refus CRPC"
);
}
export function isProcedureCivile(evenement: EvenementFamille): boolean {
return categorieEvenement[evenement.Type] === "Procédure Civile";
}
const categorieEvenement: {
[evt in TypeEvenement]: CategorieEvenement;
} = {
2024-06-05 21:35:55 +02:00
["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",
["Mise en demeure de scolarisation"]: "Procédure Pénale",
["Audition gendarmerie / police"]: "Procédure Pénale",
2024-06-05 21:35:55 +02:00
["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 pénal sans suite"]: "Procédure Pénale",
["Tribunal correctionnel"]: "Procédure Pénale",
["Convocation CRPC"]: "Procédure Pénale",
["Audience CRPC"]: "Procédure Pénale",
["Refus CRPC"]: "Procédure Pénale",
["Rappel à la loi"]: "Procédure Pénale",
2024-06-05 21:35:55 +02:00
["Validation désobéissance"]: "Procédure Pénale",
["Plaidoirie"]: "Autre",
["Refus de contrôle"]: "Autre",
["Administrateur AD'HOC"]: "Autre",
2024-06-05 21:35:55 +02:00
["Signalement"]: "Autre",
};
export type CategorieEvenement =
| "Procédure Pénale"
| "Procédure Civile"
| "Autre";
export function isEvenementInPeriod(
evt: EvenementFamille,
period: Period
): unknown {
return evt.Date && isPeriodContaining(period, evt.Date);
}
2024-06-05 21:35:55 +02:00
export function isEvenementBefore(evt: EvenementFamille, date: Date): boolean {
return evt.Date !== null && evt.Date < date;
}
2024-06-05 21:35:55 +02:00
export function isValidEvenementFamille(str: string | null): boolean {
return (
str === null ||
Object.prototype.hasOwnProperty.call(categorieEvenement, str)
);
}