2024-06-05 10:27:27 +02:00
|
|
|
import { Period } from "../period/Period";
|
|
|
|
|
import { isPeriodContaining } from "../period/isPeriodContaining";
|
|
|
|
|
import { TypeEvenement } from "./TypeEvenement";
|
|
|
|
|
|
2024-09-06 13:33:16 +02:00
|
|
|
export type EvenementFamille = Readonly<{
|
2024-06-05 10:27:27 +02:00
|
|
|
notionId: string;
|
|
|
|
|
notionIdFamille: string;
|
|
|
|
|
Évènement: string;
|
|
|
|
|
Date: Date | null;
|
|
|
|
|
Type: TypeEvenement;
|
|
|
|
|
"Enfants concernés": string;
|
2024-09-06 13:33:16 +02:00
|
|
|
}>;
|
2024-06-05 10:27:27 +02:00
|
|
|
|
|
|
|
|
export function isProcedurePenale(evenement: EvenementFamille): boolean {
|
|
|
|
|
return categorieEvenement[evenement.Type] === "Procédure Pénale";
|
|
|
|
|
}
|
|
|
|
|
|
2024-06-05 20:54:27 +02:00
|
|
|
export function isCompositionPenale(evenement: EvenementFamille): boolean {
|
|
|
|
|
return (
|
|
|
|
|
evenement.Type === "Composition pénale acceptée" ||
|
|
|
|
|
evenement.Type === "Composition pénale refusée"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2024-06-05 22:06:57 +02:00
|
|
|
export function isCRPC(evenement: EvenementFamille): boolean {
|
|
|
|
|
return (
|
|
|
|
|
evenement.Type === "Convocation CRPC" ||
|
|
|
|
|
evenement.Type === "Audience CRPC" ||
|
|
|
|
|
evenement.Type === "Refus CRPC"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2024-06-05 10:27:27 +02:00
|
|
|
export function isProcedureCivile(evenement: EvenementFamille): boolean {
|
|
|
|
|
return categorieEvenement[evenement.Type] === "Procédure Civile";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const categorieEvenement: {
|
|
|
|
|
[evt in TypeEvenement]: CategorieEvenement;
|
|
|
|
|
} = {
|
2024-06-06 15:17:08 +02:00
|
|
|
// Procédure civile/social
|
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",
|
|
|
|
|
|
2024-06-06 15:17:08 +02:00
|
|
|
// Procédure pénale
|
2024-06-05 10:27:27 +02:00
|
|
|
["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-07-31 14:41:22 +02:00
|
|
|
["Gendarmerie/Forces de l'ordre"]: "Procédure Pénale",
|
2024-06-05 21:35:55 +02:00
|
|
|
["Passage police municipale"]: "Procédure Pénale",
|
2024-06-05 10:27:27 +02:00
|
|
|
["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",
|
2024-06-06 15:17:08 +02:00
|
|
|
["Acceptation CRPC"]: "Procédure Pénale",
|
2024-06-05 10:27:27 +02:00
|
|
|
["Rappel à la loi"]: "Procédure Pénale",
|
2024-06-05 21:35:55 +02:00
|
|
|
["Validation désobéissance"]: "Procédure Pénale",
|
2024-06-06 15:17:08 +02:00
|
|
|
// Autre
|
2024-06-05 21:35:55 +02:00
|
|
|
["Plaidoirie"]: "Autre",
|
|
|
|
|
["Refus de contrôle"]: "Autre",
|
2024-06-05 10:27:27 +02:00
|
|
|
["Administrateur AD'HOC"]: "Autre",
|
2024-06-05 21:35:55 +02:00
|
|
|
["Signalement"]: "Autre",
|
2024-07-31 14:57:18 +02:00
|
|
|
["Contrôle URSSAF"]: "Autre",
|
|
|
|
|
["Contrôle fiscal"]: "Autre",
|
2024-06-05 10:27:27 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export type CategorieEvenement =
|
|
|
|
|
| "Procédure Pénale"
|
|
|
|
|
| "Procédure Civile"
|
|
|
|
|
| "Autre";
|
|
|
|
|
|
|
|
|
|
export function isEvenementInPeriod(
|
|
|
|
|
evt: EvenementFamille,
|
|
|
|
|
period: Period
|
2024-06-06 21:48:10 +02:00
|
|
|
): boolean {
|
|
|
|
|
return evt.Date !== null && isPeriodContaining(period, evt.Date);
|
2024-06-05 10:27:27 +02:00
|
|
|
}
|
|
|
|
|
|
2024-06-05 21:35:55 +02:00
|
|
|
export function isEvenementBefore(evt: EvenementFamille, date: Date): boolean {
|
2024-06-06 21:48:10 +02:00
|
|
|
if (evt.Date === null) {
|
2024-09-05 09:23:27 +02:00
|
|
|
// Assume lack of date are oldest events
|
2024-06-06 21:48:10 +02:00
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return evt.Date < date;
|
2024-06-05 10:27:27 +02:00
|
|
|
}
|
2024-06-05 21:35:55 +02:00
|
|
|
|
|
|
|
|
export function isValidEvenementFamille(str: string | null): boolean {
|
|
|
|
|
return (
|
|
|
|
|
str === null ||
|
|
|
|
|
Object.prototype.hasOwnProperty.call(categorieEvenement, str)
|
|
|
|
|
);
|
|
|
|
|
}
|
2024-09-05 09:23:27 +02:00
|
|
|
export function isGendarmerie(e: EvenementFamille): boolean {
|
|
|
|
|
return (
|
|
|
|
|
e.Type === "Audition gendarmerie / police" ||
|
|
|
|
|
e.Type === "Gendarmerie/Forces de l'ordre" ||
|
|
|
|
|
e.Type === "Récidive gendarmerie" ||
|
|
|
|
|
e.Type === "Passage police municipale"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
export function isEvtProcureur(e: EvenementFamille): boolean {
|
|
|
|
|
return (
|
|
|
|
|
e.Type === "Audition procureur" ||
|
|
|
|
|
e.Type === "Audience CRPC" ||
|
|
|
|
|
e.Type === "Convocation CRPC"
|
|
|
|
|
);
|
|
|
|
|
}
|