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.
Note:

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 :

Contrat

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.

Format

Note:

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, 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.

1. Entête et pied de page

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.

Attention:

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.

Fake

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.

Note:

Le texte brut propre à la structure peut être directement injecté dans le fichier word au format .mht

Attention:

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

2. Objet du contrat d’accueil

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 .mhtet 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

Exemple


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
Note:

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"])

C. Ecraser la macro de personnalisation dans la tâche de saisie des macros Velocity UNI93

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"))
Note:

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.

Example

Attention:

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
Intervenants et autres intervenants

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).

Example

Allergies

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