forked from Chill-project/manuals
243 lines
10 KiB
Markdown
243 lines
10 KiB
Markdown
|
|
# Génération de documents
|
|
|
|
## Syntaxe de génération d'un document
|
|
|
|
## Principes liés au variables
|
|
|
|
### Nommage de variables
|
|
|
|
Les variables contiennent des informations importées d'objets présents dans le logiciel. Par objet, nous entendons, par exemple, un utilisateur (User), un usager (Person), etc…
|
|
|
|
Ces objets comportent plusieurs champs. On accède à ces champs en concaténant les noms de la variable qui contient un objet, et le nom des champs de ces objets.
|
|
|
|
Par exemple: le créateur d'un document est disponible sous la variable `creator`. Cette variable est un objet de type `User`. Cet objet contient ces trois champs ([la liste complète est disponible ci-dessous](#sec:gendoc-var-user)):
|
|
|
|
* `username`;
|
|
* `service`;
|
|
* `email`;
|
|
|
|
Alors, pour indiquer le nom du créateur, son email et son service, on préfixe la variable par `creator`, et on ajoute les noms des champs de l'objet `User`, en commençant par une majuscule pour ces champs. Exemple:
|
|
|
|
```
|
|
Pour joindre ${creatorUsername} (service: ${creatorService}),
|
|
vous pouvez envoyer un courriel à l'adresse ${creatorEmail}.
|
|
```
|
|
|
|
Pour nommer les variables et les concaténer, nous utilisons la syntaxe camelcase [^camelcase], avec la première lettre en bas de casse (en minuscule).
|
|
|
|
[^camelcase]: <https://fr.wikipedia.org/wiki/Camel_case>
|
|
|
|
#### Application aux variable date
|
|
|
|
Les dates sont disponibles dans deux formats:
|
|
|
|
* le format "court", ou dd/mm/yyyy (par exemple, 15/06/1980, 18/08/2021, …). Ce format est accessible par le champ `short`;
|
|
* le format "long": 15 juin 1980, 18 août 2021, … Ce format est accessible par le champ `long`;
|
|
|
|
lorsqu'une date est disponible, il est donc possible d'avoir accès à son format en précisant sa chaine de caractère. Exemple avec la date de naissance de la personne:
|
|
|
|
```
|
|
personBirthdateShort=15/06/1980
|
|
personBirthdateLong=15 juin 1980
|
|
```
|
|
|
|
### Cas où une variable peut être de deux natures différentes
|
|
|
|
Certaines variables peuvent être de deux natures différentes, par exemple, soit une personne, soit un tiers. Dans ce cas, les variables qui sont de noms différents sont à l'état "vide". Par exemple, le champ "date de naissance" n'est pas disponible pour un tiers, dans ce cas, il est vide.
|
|
|
|
Exemple, une liste des interlocuteurs principaux. Le premier est une personne:
|
|
|
|
```
|
|
text=Maxime Berger
|
|
firstName=Maxime
|
|
lastName=Berger
|
|
birthDate=19/01/1996
|
|
type=
|
|
job=
|
|
```
|
|
|
|
Le second est un tiers:
|
|
|
|
```
|
|
text=Jean Couteau
|
|
firstName=Jean
|
|
lastName=Couteau
|
|
birthDate=
|
|
type=Médecin
|
|
job=Assistant social
|
|
```
|
|
|
|
## Variables disponibles par document
|
|
|
|
Lorsqu'une variable n'est pas de type "texte", ses champs sont complétés par ceux décrits [dans la section suivante](#sec:gendoc-champs-objets).
|
|
|
|
### Pour chaque document
|
|
|
|
* `creator`: (User) le créateur;
|
|
* `createdAt` (Date): la date de création;
|
|
* `locate`: le lieu sélectionné par le créateur, au moment de la génération;
|
|
|
|
### Document générés pour un parcours
|
|
|
|
Le document hérite de toutes les variables disponibles pour chaque document, à laquelle vient s'ajouter la variable suivante et tout ses champs:
|
|
|
|
* `courseId` (texte): l'identifiant du parcours
|
|
* `courseStartDate` (texte): la date de confirmation du parcours (vide si le parcours est à l'état brouillon);
|
|
* `courseEndDate` (texte): la date de fin du parcours (vide si le parcours n'est pas clotûré);
|
|
* `courseEnd` (texte): la mention "clotûré" si le parcours est clotûré;
|
|
* `courseStatus` (texte): contient la mention "En file active", "Archivé", ou est vide si le parcours n'a aucun de deux statuts;
|
|
* `courseRef`: (User): le référent du parcours;
|
|
* `courseLocation` (Adresse): l'adresse de localisation du parcours
|
|
* `coursePersonLocation` (Person): l'utilisateur qui localise le parcours (s'il y en a un, peut être vide);
|
|
* `courseTitulaire1` (Person): le premier titulaire du parcours, déterminé comme étant le plus âgé parmi les personnes qui sont titulaires d'un ménage;
|
|
* `courseTitulaire2` (Person): le second titulaire du parcours, déterminé comme étant le deuxième plus âgé parmi les personnes qui sont titulaires d'un ménage;
|
|
* `courseEmergency` (texte): la chaine "Urgent" si le parcours est urgent, chaine vide sinon;
|
|
* `courseConfidential` (texte): "Confidentiel" si le parcours est confidentiel, chaine vide sinon;
|
|
* `courseOrigin` (texte): l'appellation de l'origine du parcours;
|
|
* `courseClosingMotive` (texte): l'appellation du motif de clotûre du parcours;
|
|
|
|
Les titulaires 1 et 2 sont déterminés par leur âge de cette manière:
|
|
|
|
1. Parmi toutes les personnes associées au parcours au moment de la génération du document, le logiciel sélectionne tout ceux qui sont actuellement titulaire d'un ménage;
|
|
2. Les deux plus âgés sont choisis dans cette liste. Le plus âgé sera le `titulaire1`, et le suivant sera le `titulaire2`
|
|
|
|
Par ailleurs, les listes suivantes sont disponibles:
|
|
|
|
* `coursePersons` (liste de Person): une liste des personnes du parcours
|
|
|
|
Par ailleurs, pour chaque personne membre de la liste, deux champs sont ajoutés et indiquent le lien de parenté avec le titulaire 1 et le titulaire 2 (à condition que ce lien soit effectivement renseigné).
|
|
|
|
* `courseRequestor` (liste de Person ou ThirdParty): le demandeur. Peut être vide.
|
|
* `courseResources` (liste de Person ou ThirdParty): une liste des interlocuteurs privilégiés
|
|
* `courseSocialIssues` (liste de SocialIssues): la liste des problématiques d'accompagnement
|
|
|
|
Exemple d'utilisation:
|
|
|
|
```
|
|
Le parcours a débuté le ${courseStartDateLong} et s'est clotûré le ${courseEndDateLong}.
|
|
|
|
Le référent est ${courseRefUsername}.
|
|
|
|
Participants au parcours:
|
|
|
|
+--------------------------+---------------------------+-------------------------------+
|
|
| Nom | Prénom | Date de naissance |
|
|
+==========================+===========================+===============================+
|
|
| ${coursePersonsLastName} | ${coursePersonsFirstname} | ${coursePersonsBirthdateLong} |
|
|
+--------------------------+---------------------------+-------------------------------+
|
|
|
|
```
|
|
|
|
### Document générés pour une action d'accompagnement
|
|
|
|
Le document hérite de toutes les variables et listes disponibles pour les document "générés par un parcours". De plus, les variables suivantes s'ajoutent:
|
|
|
|
* `workId` (texte): l'identifiant de l'action;
|
|
* `workNote` (texte): la note;
|
|
* `workCreateDate` (Date): la date de création de l'action;
|
|
* `workStartDate` (Date): la date de début de l'action (vide si inexistant)
|
|
* `workEndDate` (Date): la date de début de l'action (vide si inexistant)
|
|
* `workHandlingThirdParty` (ThirdParty): le tiers traitant
|
|
|
|
Les listes suivantes sont disponibles:
|
|
|
|
* `workGoals`: une liste d'objectifs, où chaque item contient deux variables:
|
|
* `goal: le libellé de l'objectif (vide pour les résultats sans objectif);
|
|
* `result: une concaténation de toutes les appellations des résultats, séparés par une virgule;
|
|
* `workThirdParties` (liste de ThirdParty): une liste de tiers associés à l'action;
|
|
* `workPersons`: une liste de personnes associées à l'action
|
|
|
|
### Document générés pour une évaluation
|
|
|
|
Le document hérite des variables et listes disponibles pour les documents "Action d'accompagnement", auxquelles viennent s'ajouter la variable `evaluation`:
|
|
|
|
* `evaluationId` (texte): l'identifiant de l'évaluation;
|
|
* `evaluationType` (texte): le libellé de l'évaluation;
|
|
* `evaluationStartDate` (Date): la date de début de l'évaluation;
|
|
* `evaluationEndDate` (Date) la date de fin de l'évaluation;
|
|
* `evaluationMaxDate` (Date): la date d'échéance de l'évaluation;
|
|
* `evaluationComment` (texte): le commentaire de l'évaluation;
|
|
* `evaluationCreatedBy` (User): le créateur de l'évaluation;
|
|
* `evaluationCreatedAt` (Date): la date de création de l'évaluation;
|
|
|
|
## Champs par objet { #sec:gendoc-champs-objets }
|
|
|
|
Les champs ci-dessous étendent les variables disponibles dans les documents.
|
|
|
|
Par exemple, le document généré à partir d'un parcours présente la variable `startDate` qui contient la date de début du parcours. Ce champ peut être exploité de la manière suivante:
|
|
|
|
```
|
|
${courseStartDateLong} // 15 janvier 2021
|
|
|
|
ou dans la forme courte:
|
|
|
|
${courseStartDateShort} // 15/01/2021
|
|
```
|
|
|
|
### Date
|
|
|
|
* `short` (texte): la date au format dd/mm/yyyy, vide si la date est absente;
|
|
* `long` (texte): la date au format jour mois années: 15 août 1980, vide si al date est absente;
|
|
|
|
### Person
|
|
|
|
* `firstName` (texte)
|
|
* `lastName` (texte)
|
|
* `text` (texte): représentation du nom, prénom, et noms alternatifs (voir `PersonRender::renderString)`)
|
|
* `birthdate` (Date)
|
|
* `deathdate` (Date)
|
|
* `gender` (texte): peut être masculin, féminin, ou <à compléter>
|
|
* `maritalStatus` (texte): représentation textuelle de l'état civil;
|
|
* `email` (texte): adresse email
|
|
* `firstPhoneNumber` (texte): soit le numéro de mobile s'il existe, soit le numéro fixe s'il existe, sinon vide;
|
|
* `fixPhoneNumber` (texte): le numéro de téléphone fixe;
|
|
* `mobilePhoneNumber` (texte): le numéro de téléphone portable;
|
|
* `nationality` (texte): nationalité
|
|
* `placeOfBirth (texte): le lieu de naissance
|
|
* `memo` (texte): le mémo
|
|
* `numberOfChildren` (texte): le nombre d'enfants
|
|
* `currentAddress` (Adresse): l'adresse actuelle
|
|
* `mother` (Person): les champs de la mère de la personne, si elle est renseignée dans le module "filiation";
|
|
* `father` (Person): les champs du père de la personne, s'il est renseigné dans le module "filiation";
|
|
|
|
Exemple d'utilisation:
|
|
|
|
```
|
|
|
|
Nom de la personne: ${personLastname} // Dupuis
|
|
Prénom de la personne: ${personFirstname} // Gérard
|
|
Date de naissance: ${personBirthdateLong} // le 7 juillet 1974
|
|
Nom du père: ${personFatherLastName} ${personFatherFirstname} // Dupuis Marcel
|
|
Téléphone du père: ${personFatherFirstphonenumber} // 01 23 45 67 89
|
|
|
|
```
|
|
|
|
### ThirdParty
|
|
|
|
TODO
|
|
|
|
### Adresse
|
|
|
|
* `text` (texte): une chaine de caractère représentant l'adresse complète;
|
|
* `street` (texte): le nom de la rue (exemple: "RUE DES ÉGLANTIERS");
|
|
* `streetNumber` (texte): le numéro de police;
|
|
* `postcodeName` (texte): le nom de la localité ou ville;
|
|
* `postcodeCode` (texte): le code postal;
|
|
* `countryName` (texte): le nom du pays;
|
|
* `countryCode` (texte): le code du pays;
|
|
* `floor` (texte): l'étage;
|
|
* `corridor` (texte): le couloir;
|
|
* `flat` (texte): l'appartement;
|
|
* `buildingName` (texte): le nom du bâtiment / résidence;
|
|
* `distribution` (texte): service particulier de distribution;
|
|
* `extra` (texte): champs extras
|
|
|
|
### User { #sec:gendoc-var-user }
|
|
|
|
* `username` (texte)
|
|
* `email` (texte)
|
|
* `service` (texte): service principal
|
|
|
|
|