Contrat d'accueil
Lors d’une inscription d’un enfant, un contrat d’acceuil est signé entre la structure et les personnes ayant l’autorité parentale de l’enfant. SAINet offre la possibilité de générer ce document de manière automatique en fournissant les données concernant l’adresse de l’expéditeur, l’adresse du destinataire, l’enfant, la fréquentation de l’enfant, les différents intervenants, les allergies, les décharges et les engagements que les représentants légaux doivent respecter et seront facturés. Le contrat d’accueil est accessible depuis la page de planning (SECTION
) de l’enfant depuis la tâche CRM06
en cliquant sur le menu contextuel de la page Rapport sur l'enfant
. Il est nécessaire au préalable de faire l’installation.
Installation
La tâche UNI94
permet de déclarer des templates et donc d’y insérer le template de contrat d’accueil. Afin de pouvoir gérer de façon propre l’entête le pied de page du contrat, il est nécessaire d’introduire à chaque société son template de base.
- La table utilisée est celle des enfants, soit
CRMPRJ Enfants
. - Le template du contrat, exemple celui disponible directement dans le module des crèches au chemin ci-dessous :
sainet/modules/creches/core/server/templates/cre_contrat/contrat_accueil.mht
- Dans les autres options, le champs Options doit être rempli par
multi
afin de générer un contrat par enfant.
En cas de désintérêt pour la solution standard, il est possible d’avoir un nouveau fichier .mht
avec de nouvelles macros complètement revu afin d’avoir un tout nouveau format de contrat d’acceuil. À savoir que le contrat standard permet la modification des données, leur position et leur rendu, il est donc conseillé d’analyser le delta de réalisation avant de repartir de zéro
Vue d'ensemble
D’un point de vue visuel, le contrat est découpé en plusieurs parties et se présente sous cette forme :
D’un point de vue de programmation, ce découpage a été également respecté afin de pouvoir externaliser dans différents fichiers les macros correspondantes. Ci-dessous est présenté le rendu du fichier contrat_accueil.mht
ouvert avec Word.
La mise en page et le texte brut est modifiable, voir modification obligatoire.
Ci-dessous sont présentés les différentes macro du template avec leurs appels respectifs leur description.
ID template (cre_contrat) | Appel macro | Description |
---|---|---|
init_content |
Point d’entrée du modèle du contrat d’accueil. Cette macro définit principalement des variables et des macros | |
macro_adresses_display |
#adresses_display() | Définition des différentes variables pour l’adresse du destinataire et de l’expéditeur. |
macro_structures_display |
#structure_display() | Définition du texte à afficher selon les structures utilisé dans l’objet de la lettre. |
macro_child_data |
#child_data() | Préparation données et affichage de la partie concernant l’enfant. |
macro_frequentation_data |
#frequentation_data() | Préparation données et affichage de la partie concernant la fréquentation de l’enfant. |
macro_intervenants_data |
#intervenants_data() | Préparation données et affichage de la partie concernant les intervenants ayant l’autorité parentale. |
macro_others_intervenants_data |
#others_intervenants_data() | Préparation données et affichage de la partie concernant n’ayant pas l’autorité parentale. |
macro_allergies_data |
#allergies_data() | Préparation données et affichage de la partie concernant les allergies de l’enfant. |
macro_decharges_data |
#decharges_data() | Préparation données et affichage de la partie concernant différentes décharges. |
macro_remarques_display |
#remarques_display() | Affichage d’un espace remplissabe par l’utilisateur pour ajouter des remarques. |
macro_engagements_data |
#engagements_data() | Préparation données et affichage de la partie concernant les engagements que les représentants légaux doivent respecter. |
macro_signatures_display |
#signatures_display() | Affichage d’un espace signature pour les intervenants et le responsable du dossier. |
Macro pré-définie
Le fichier contrat_accueil.mht
contient une unique macro #parse nommée #parse("UNI18/cre_contrat/init_content.vtl")
permettant d’initialiser toutes sortes de variables et de définir l’ensemble des macros externalisées dans différents fichiers. Il est possible de personnaliser uniquement certaines parties d’un template et de garder l’utilisation du standard pour d’autres. Cela est dépendant de la constitution de chaque template parsée.
De manière générale, le template macro_xxx_data est cindé en 3 macros :
- xx_data() : préparation des données
- xx_data_custom() : personnalisation des données
- xx_display() : affichage des données dans un tableau
Ces 3 macros sont complètement écrasables en les redéfinissant dans UNI93
.
De manière générale, les structures d’accueil désireront les mêmes tableaux, mais avec quelques différences :
- modification de l’entête, du pied de page et de l’objet du contrat d’acceuil, voir modification entête, pied de page et objet.
- ajout/suppression de nouvelle ligne/colonne ou d’en modifier la position des champs, voir modification du contenu des tableaux.
- changement de libellé d’une ligne/colonne d’un tableau, voir modification des libellés.
- modification du rendu des tableaux, voir modification du rendu des tableaux.
Modification de l'entête, pied de page et de l'objet
Lorsque le template standard du contrat d’accueil a été testé, la modification obligatoire pour le contrat d’une nouvelle structure d’acceuil se résume à personnaliser l’entête, le pied de page. La structure d’acceuil pourrait également demandé de changer l’objet du contrat d’acceuil.
Une copie du contrat d’accueil standard doit être effectué au préalable afin de pouvoir le modifier librement ce nouveau fichier, sans modifier le contenu du contrat standard.
Il ne faut absolument pas modifier le fichier du contrat standard, mais bien la copie du fichier du contrat standard utilisé pour la nouvelle structure.
Une fois qu’une copie a été effectuée, celle-ci peut être librement modifiée sous Word, notamment pour personnaliser l’entête et le pied de page à la nouvelle structure d’accueil. Ci-dessous un exemple d’entête modifiée directement sur le logiciel de traitement de texte.
Le nom du nouveau fichier n’a aucune importance, du moment que la mise à jour du fichier du template dans UNI94
du contrat correspond à la copie modifiée du contrat standard.
Le texte brut propre à la structure peut être directement injecté dans le fichier word au format .mht
Le nom du responsable de dossier est défini par l’employé associé à l’utilisateur courant qui génère le contrat. Les entrées marquées A définir
seront alors remplies automatiquement
Le contrat d’acceuil propose un objet de la lettre incluant le nom, le prénom et la catégorie et du nom du groupe de la structure acceuillant l’enfant. Si la structure d’accueil ne désire pas cela, la macro #structure_display()
peut être simplement supprimée du document .mht
et remplacée par autres choses, par exemple le groupe de l’enfant :
$section_page.DEPARTEMENT.toString()
Si la structure d’accueil souhaiterait avoir également le nom de la structure mais d’une autre manière, il faudra obligatoirement overrider la macro standard #structure_display()
dans UNI93
. Ci-dessous un exemple :
- de la structure CTT qui représentera toutes les cantines
- du secteur UP qui veut être appelé secteur UAPE Primaire
- et pour finir les autres seront forcément de l’UAPE Enfantine
Modification du contenu des tableaux
Les structures d’acceuil demanderont certainement à avoir les mêmes parties sur leur contrat d’accueil, mais avec des petits détails différents, comme leur contenu ou leur ordre.
Voici un exemple d’une crèche demandant à supprimer la ligne correspondante à la langue maternelle numéro 2 du tableau de l’enfant et d’ajouter une ligne concernant le motif d’inscription des parents pour l’enfant à la première position du tableau des enfants.
Trois étapes sont à prévoir :
- A : trouver la hashmap concernée et l’identifiant de la macro permettant la personalisation du contenu
- B : trouver le tableau concerné et l’identifiant de la macro permettant la personalisation de la position du contenu
- C : écraser la macro de personnalisation des données dans la tâche de saisie des macros Velocity
UNI93
A. Trouver la hashmap concernée et l’identifiant de la macro permettant la personalisation du contenu
Dans le tableau présenté plus bas, le code de la macro de personnalisation et la hashmap conrespondante à la macro standard de la partie des enfants sont #child_data_custom()
et contentChildTable
.
Appel macro personalisation | Contenu du tableau (Hashmap) |
---|---|
#child_data_custom() | contentChildTable |
#frequentation_data_custom() | contentFrequentationTable |
#intervenants_data_custom() | contentIntervenantTable |
#others_intervenants_data_custom() | contentOthersIntervenantTable |
#allergies_data_custom() | contentAllergiesTable |
#decharges_data_custom() | contentDechargesTable |
#engagements_data_custom() | contentEngagementsTable |
B. Trouver le tableau concerné et l’identifiant de la macro permettant la personalisation de la position du contenu
Le tableau ci-dessous présente le tableau permettant de modifier l’ordre d’apparition des champs pré-définis.
Appel macro personalisation | Position du contenu (tableau) | Position pré-définis |
---|---|---|
#child_data_custom() | positionChildTable | NOM, PRENOM, DATENAISSANCE, GARCONFILLE, LANGUEMAT, LANGUEMAT2, AUTORITE_PARENTALE, ADRESSE_ENFANT, FRATRIE |
#frequentation_data_custom() | positionFrequentationTable | FM_PAGE_START_DATE |
#intervenants_data_custom() | positionIntervenantTable | NOM, PRENOM, ROLE, DEBITOR, MARITALSTATUS, ADRESSE1, NATIONALITY, PERMIT, CUSTOM05, CUSTOM08, CUSTOM06, TELENTREPRISE, MOBILE, EMAIL, SENDEMAIL |
#others_intervenants_data_custom() | positionOthersIntervenantTable | NOM, PRENOM, MOBILE, ROLE |
#decharges_data_custom() | positionDechargesTable | ARRIVERSEUL, PARTIRSEUL |
L’appel de la macro de personnalisation du contenu ou de la position du contenu est le même !
La définition standard du tableau est vide afin de notifier qu’il n’y a pas besoin d’une réorganisation de l’ordre d’apparition des champs pré-définis.
Pour changer l’ordre d’apparition, les identifiants des champs désirés doivent être inscrits dans l’ordre souhaité.
#set ($positionChildTable = ["FIELDID1" , "FIELDID2"])
Afin d’enlever une ligne d’un tableau standard sans en modifiant la position, il suffit de supprimer la clé correspondant à l’identifiant du champs dans la hashmap. Par exemple, dans le cas de la langue maternelle numéro 2, l’identifiant du champs est LANGUEMAT2
.
#set ($tmp = $contentChildTable.remove("LANGUEMAT2"))
Si un identifiant n’est pas notifié dans le tableau de position, il ne sera plus présent dans le rendu, ni dans le contenu de la hashmap.
Pour ajouter une ligne au tableau, il faut ajouter à la hashmap sa clé et sa valeur. La clé est toujours l’identificant du champs, alors que son contenu varie. Ci-dessous un tableau qui représente les principales accès aux données. Par exemple, si l’objectif serait de récupérer la catégorie de la dernière page de section active, le code pour en récupérer son contenu serait $pagesection.CATEGORY
.
Accès | Description |
---|---|
$system_child | Accès au dossier de l’enfant |
$system_child.DESCRIPTION_GENERALE | Accès à la page de description générale de l’enfant |
$system_child.SECTION | Accès aux pages section |
$section_page | Accès à la dernière page active parmis les pages section |
$system_child.INTERVENANT_RESPONSABLE | Accès partiel des données des intervenants |
$intervenants_pages | Accès aux pages des intervenants et leurs données |
$system_child.ALIMENTATION | Accès aux pages des allergies |
$system_child.DECHARGES | Accès à la page des décharges |
Ci-dessous, l’implémentation de la macro overridée dans UNI93
.
Spécificité pour le contenu des intervenants/autres intervenants et des allergies
Etant donné que les intervenants peuvent être plusieurs, les données sont stockées dans un tableau.
ID macro standard | Appel macro personalisation | Hashmap | Array |
---|---|---|---|
#intervenants_data() | #intervenants_data_custom() | contentIntervenantTable | intervenants |
#others_intervenants_data() | #others_intervenants_data_custom() | contentOthersIntervenantTable | others_intervenants |
#allergies_data() | #allergies_data_custom() | contentAllergiesTable | allergies |
La modification est donc légèrement plus complexe, car il faut itéré sur tous les intervenants qui a ou n’a pas l’autorité parentale. Ci-dessous un exemple d’ajout d’une ligne correpsondant à une précision à propos de la date de divorce (3) ou de séparation (5).
La spécificité des allergies se trouve dans le fait que dans la page des allergies, chaque champ à un identifiant différent. Il est alors plus adéquat d’en changer directement les données, soit en overridant la macro #allergies_data()
.
Modification des libellés
Les libellés utilisés par défaut sont ceux des champs. La modification des libellés est rendu possible grâce à un override via les ressources System texts CRM.
sainet/modules/creches/core/resources/System texts/Tasks and DataFieldsTasksAndFields_CRM_FR.properties
Le premier mot clé est la tâche, puis le second est la page. Quant au dernier mot clé, il est CONTRAT_
suivi de l’identifiant du champs.
ID macro standard | Changement de libellé |
---|---|
#child_data() | CRM06.DESCRIPTION_GENERALE.CONTRAT_ |
#frequentation_data() | CRM06.SECTION.CONTRAT_ |
#intervenants_data() | CRM06.INTERVENANT_RESPONSABLE.CONTRAT_ |
#others_intervenants_data() | CRM06.INTERVENANT_RESPONSABLE.CONTRAT_ |
#allergies_data() | CRM06.ALIMENTATION.CONTRAT_ |
#decharges_data() | CRM06.DECHARGES.CONTRAT_ |
Par exemple, pour modifier le libellé du téléphone mobile :
CRM06.INTERVENANT_RESPONSABLE.CONTRAT_MOBILE=Tél. mobile
Si l’identifiant du champs n’existe pas, le principe reste exactement le même. Par exemple, le code implémenté pour obtenir la fratrie aura arbitrairement l’identitifant FRATRIE
.
CRM06.DESCRIPTION_GENERALE.CONTRAT_FRATRIE=Fratrie
Modification du rendu des tableaux
Si l’affichage du tableau ne convient pas, mais que les données sont exactement pareils, il est possible d’overrider la macro permettant l’affichage du tableau tout en gardant la hashmap concernée dans UNI93
.
ID macro standard | Appel macro affichage |
---|---|
#child_data() | #child_display() |
#frequentation_data() | #frequentation_display() |
#intervenants_data() | #intervenants_display() |
#others_intervenants_data() | #others_intervenants_display() |
#allergies_data() | #allergies_display() |
#decharges_data() | #decharges_display() |
#engagements_data() | #engagements_display() |
Mentions légales dans le contrat
Les mentions légales gérées dans la macro #engagements_data()
peuvent être écrasées. Voici un exemple de macro UNI93
qui permet de mettre à jour
#macro (engagements_data)
## Définition de la table qui va contenir tous les points
#set($contentEngagementsTable = {})
## Définition de la phrase d'accroche qui précède les points du réglement
#set($subtitle = "Le(s) représentant(s) légal(aux) de l'enfant s'engage(nt) à :")
## Défintion des points du réglement
#set($enga1 = "remettre le contrat original dûement signé avant la date de commencement prévue [...]")
#set($enga2 = "fournir des informations complètes et exactes, notamment en ce qui concerne [...]")
#set($enga3 = "informer le secrétariat de la fondation de tout changement qui survient pendant [...]")
#set($enga4 = "respecter les horaires contractuels, soit l'heure d'arrivée et de départ.")
#set($enga5 = "payer la pension d'accueil de l'enfant à son échéance. Le non-paiement de la pension peut [...]")
#set($tmp = $contentEngagementsTable.put(1,$enga1))
#set($tmp = $contentEngagementsTable.put(2,$enga2))
#set($tmp = $contentEngagementsTable.put(3,$enga3))
#set($tmp = $contentEngagementsTable.put(4,$enga4))
#set($tmp = $contentEngagementsTable.put(5,$enga5))
## Affichage du tableau avec les différents points sus-mentionnés
#engagements_display()
#end