Description
Les absences du planning initial
Chaque personne a une collection de jours d'absences issus du planning initial. Cette collection est une projection de la collection des plannings initiaux. Pour chaque planning qui contient au moins une absence, on a une ressource dans cette collection.
URI | <uri_personne>/absences_prev |
---|---|
Catégorie | http://schemas.holydis.com/tsq/2010#jour_absences_prev |
Disponible en écriture |
Oui |
Les absences du planning modifiable
Chaque personne a une collection de jours d'absences issus du planning modifiable. Cette collection est une projection de la collection des plannings modifiables. Pour chaque planning qui contient au moins une absence, on a une ressource dans cette collection.
URI | <uri_personne>/absences_mod |
---|---|
Catégorie | http://schemas.holydis.com/tsq/2010#jour_absences_mod |
Disponible en écriture | Oui |
Les absences du planning réalisé
Chaque personne a une collection de jours d'absences issus du planning réalisé. Cette collection est une projection de la collection des plannings réalisés. Pour chaque planning qui contient au moins une absence, on a une ressource dans cette collection.
URI | <uri_personne>/absences_real |
---|---|
Catégorie | http://schemas.holydis.com/tsq/2010#jour_absences_real |
Disponible en écriture | Oui |
Les absences du planning mixte
Chaque personne a une collection de jours d'absences issus de la dernière version de planning . Cette collection est une projection de la collection des plannings mixtes. Pour chaque planning qui contient au moins une absence, on a une ressource dans cette collection.
URI | <uri_personne>/absences_mixte |
---|---|
Catégorie | http://schemas.holydis.com/tsq/2010#jour_absences_mixte |
Disponible en écriture | Oui |
Paramètres spécifiques
Paramètre | Description |
---|---|
datetime-min | Filtre les absences présentes après l'horodatage spécifié ou au même moment. |
datetime-max | Filtre les absences présentes avant l'horodatage spécifié ou au même moment. |
La période passée en paramètre prend en compte l'heure de changement de jour. Si une heure de changement de jour différente de celle du calendrier de la personne est passée en paramètre, cela peut avoir un impact sur la période récupérée. Si une datetime-min est renseignée avec une heure inférieure à l'heure de changement de jour de la personne, alors c'est le jour précédent qui sera considéré pour récupérer les plannings. Si une datetime-max est renseignée avec une heure supérieure à l'heure de changement de jour de la personne, alors c'est le jour suivant qui sera considéré pour récupérer les absences.
Exemple 1 : Pour une personne dont l'identifiant en base est 16000 avec un calendrier ayant une heure de changement de jour à 04:00, la requête suivante récupère les absences de cette personne du 19/01/2022 au 27/01/2022 :
GET /[URI_de_base]/api/feed/personnes/16000/absences_mixte?datetime-min=2022-01-20T03:00:00&datetime-max=2022-01-26T06:00:00
Exemple 2 : Pour une personne dont l'identifiant en base est 16000 avec un calendrier ayant une heure de changement de jour à 04:00 :
GET /[URI_de_base]/api/feed/personnes/16000/absences_mixte?datetime-min=2022-01-20&datetime-max=2022-01-20
Cette requête récupère les absences mixtes de cette personne du 19/01/2022 uniquement. En effet pour Timesquare le 20/01/2022 à 00:00 correspond au 19/01/2022 car l'heure de changement de jour est à 04:00.
Eléments
Elément | Description | En écriture |
---|---|---|
absencesPlanning | Contient les absences du jour. Il n'est pas nécessaire d'ajouter une période dans l'entry sur une absence complète. | Obligatoire |
periode |
La période de temps couverte par des journées d'absences. Cette période indique l'horodatage de début et de fin. Elle indique également l'heure de changement de jour associée au calendrier auquel la personne est affectée pour la date de l'absence. Si la personne n'a pas d'affectation de calendrier pour cette date, c'est l'heure de changement de jour du calendrier par défaut de la structure à laquelle la personne est affectée. Toutes les périodes pour lesquelles il existe une absence sont dans le fuseau horaire du calendrier de la personne sur la période. L'heure de changement de jour ainsi que l'UTC qui apparaissent sur les formats de dates de la période associée à l'entry ne sont pas interprétés lors de l'écriture. En revanche, il est nécessaire de garder ce format pour la bonne interprétation du fichier en entrée. Exemple : <tsq:periode debut="2023-03-28T04:00:00+01:00" fin="2023-03-29T04:00:00+01:00"/> La date de fin de la période peut être identique à la date de début pour une journée d'absence complète. Exemple : <tsq:periode debut="2023-03-28T04:00:00+01:00" fin="2023-03-28T04:00:00+01:00"/> |
Obligatoire |
timeZoneId | L’identifiant de fuseau horaire. Exemple : Europe/Paris. Pour lire les données en fonction du fuseau horaire de Europe/Lisbonne, il faut ajouter en en-tête de la requête le paramètre User-TimeZoneId avec comme valeur l’identifiant du fuseau de Lisbonne, en l’occurrence Europe/Lisbonne. En l’absence du paramètre en en-tête, les données sont renvoyées brutes (dans le fuseau horaire de la ressource). | L'écriture se fait toujours dans le fuseau horaire de la ressource. |
versionPlanning | La version de plannings dans le cas des absences mixtes uniquement. | |
conserverAction | La valorisation de l'absence. CONSERVER_PLAGES_TT pour conserver les plages (on transforme l'absence complète en absence partielle) ou CONSERVER_DUREES_PREV pour conserver les durées du planning prévisionnel (l'absence est complète mais la durée correspond à celle du planning existant). Si la balise n'est pas présente, par défaut la valorisation de l'absence est la valorisation contrat. |
Si la personne est hors structure, le Web Service renvoie une erreur 500.
Note concernant la modification des absences
Il est possible de saisir des absences sur un planning validé si la version de planning suivante est en cours.
Il n'y a de ressource que pour les jours qui contiennent des absences. Donc, pour rajouter une ou plusieurs absences sur un jour où il n'y en a pas, il faut créer une ressource. Lors de la création l'élément periode doit être renseigné avec la période du jour concerné. Le plus simple moyen de l'avoir est de récupérer le planning pour ce jour. Si le planning ne contient pas l'élément composantsPlanning, aucune absence ne peut être ajoutée (voir la description de l'élément dans la collection des plannings). S'il y a déjà des absences ce jour-là le code de réponse 409 - Conflict va être renvoyé.
Il n'est pas possible de supprimer toutes les absences d'un jour en envoyant une requête PUT avec l'élément absencesPlanning vide. Il faut faire une requête DELETE sur la ressource.
Le type d'absence affecté doit être visible par rapport à l'affectation de structure de la personne : il doit avoir comme origine la structure de la personne ou une de ses structures parents.
Il est possible de saisir une valorisation spécifique pour les absences partielles ou les absences complètes avec la balise decompteSpec. Dans le cas d'une absence complète, par défaut, on conserve la valorisation contrat. Il est possible de conserver les durées prévues (l'absence est complète mais la durée correspond à celle du planning existant) ou de conserver les plages de travail (l'absence complète devient une absence partielle avec l'heure de début correspondant à l'heure de début de la première plage et l'heure de fin correspond à l'heure de fin de la dernière plage). Il n'est pas possible de conserver les plages de travail, ni les durées prévues dans le cas d'une absence partielle.
Exemples de requêtes
Lecture
Lire toutes les absences issues du planning initial de la personne dont l’identifiant en base est 16000
GET /[URI_de_base]/api/feed/personnes/16000/absences_prev
Lire toutes les absences issues du planning modifiable de la personne dont l’identifiant en base est 16000
GET /[URI_de_base]/api/feed/personnes/16000/absences_mod
Lire toutes les absences issues du planning réalisé de la personne dont l’identifiant en base est 16000
GET /[URI_de_base]/api/feed/personnes/16000/absences_real
Lire toutes les absences issues du planning mixte de la personne dont l’identifiant en base est 16000
GET /[URI_de_base]/api/feed/personnes/16000/absences_mixte
Lire toutes les absences issues du planning initial de la personne dont l’identifiant en base est 16000 sur une période donnée (du 01/06/2022 au 30/06/2022)
GET /[URI_de_base]/api/feed/personnes/16000/absences_prev?datetime-min=2022-06-01&datetime-max=2022-06-30
Lire toutes les absences issues du planning modifiable de la personne dont l’identifiant en base est 16000 sur une période donnée (du 01/06/2022 au 30/06/2022)
GET /[URI_de_base]/api/feed/personnes/16000/absences_mod?datetime-min=2022-06-01&datetime-max=2022-06-30
Lire toutes les absences issues du planning réalisé de la personne dont l’identifiant en base est 16000 sur une période donnée (du 01/06/2022 au 30/06/2022)
GET /[URI_de_base]/api/feed/personnes/16000/absences_real?datetime-min=2022-06-01&datetime-max=2022-06-30
Lire toutes les absences issues du planning mixte de la personne dont l’identifiant en base est 16000 sur une période donnée (du 01/06/2022 au 30/06/2022)
GET /[URI_de_base]/api/feed/personnes/16000/absences_mixte?datetime-min=2022-06-01&datetime-max=2022-06-30
Lire toutes les absences issues du planning initial de la personne dont l’identifiant en base est 16000 sur un jour donné (le 16/05/2022)
GET /[URI_de_base]/api/feed/personnes/16000/absences_prev/2022-05-16
Exemple de résultat XML de la requête
Exemple de résultat JSON de la requête
Lire toutes les absences issues du planning modifiable de la personne dont l’identifiant en base est 16000 sur un jour donné (le 16/05/2022)
GET /[URI_de_base]/api/feed/personnes/16000/absences_mod/2022-05-16
Exemple de résultat XML de la requête
Exemple de résultat JSON de la requête
Lire toutes les absences issues du planning réalisé de la personne dont l’identifiant en base est 16000 sur un jour donné (le 16/05/2022)
GET /[URI_de_base]/api/feed/personnes/16000/absences_real/2022-05-16
Exemple de résultat XML de la requête
Exemple de résultat JSON de la requête
Lire toutes les absences issues du planning mixte de la personne dont l’identifiant en base est 16000 sur un jour donné (le 16/05/2022)
GET /[URI_de_base]/api/feed/personnes/16000/absences_mixte/2022-05-16
Exemple de résultat XML de la requête
Exemple de résultat JSON de la requête
Ecriture
Ajouter une absence complète dans le planning initial pour la personne dont l’identifiant en base est 16000
POST /[URI_de_base]/api/feed/personnes/16000/absences_prev
Ajouter une absence complète valorisée à 5h dans le planning initial pour la personne dont l’identifiant en base est 16000
POST /[URI_de_base]/api/feed/personnes/16000/absences_prev
Exemple de fichier XML en entrée
Ajouter une absence partielle de 04:00 à 11:00 valorisée à 4h dans le planning initial pour la personne dont l’identifiant en base est 16000
POST /[URI_de_base]/api/feed/personnes/16000/absences_prev
Exemple de fichier XML en entrée
Ajouter une absence complète pour laquelle on conserve les durées prévisionnelles dans le planning initial pour la personne dont l’identifiant en base est 16000
POST /[URI_de_base]/api/feed/personnes/16000/absences_prev
Exemple de fichier XML en entrée
Ajouter une absence complète pour laquelle on conserve les plages de travail dans le planning initial pour la personne dont l’identifiant en base est 16000
POST /[URI_de_base]/api/feed/personnes/16000/absences_prev
Exemple de résultat XML de la requête
Ajouter une absence complète dans le planning modifiable pour la personne dont l’identifiant en base est 16000
POST /[URI_de_base]/api/feed/personnes/16000/absences_mod
Ajouter une absence complète dans le planning réalisé pour la personne dont l’identifiant en base est 16000
POST /[URI_de_base]/api/feed/personnes/16000/absences_real
Ajouter une absence complète dans le planning mixte pour la personne dont l’identifiant en base est 16000
POST /[URI_de_base]/api/feed/personnes/16000/absences_mixte
Modifier l’absence issue du planning initial d’un jour donné (le 17/08/2022) pour la personne dont l’identifiant en base est 16000
PUT /[URI_de_base]/api/feed/personnes/16000/absences_prev/2022-08-17
Modifier l’absence issue du planning modifiable d’un jour donné (le 16/08/2022) pour la personne dont l’identifiant en base est 16000
PUT /[URI_de_base]/api/feed/personnes/16000/absences_mod/2022-08-16
Modifier l’absence issue du planning réalisé d’un jour donné (le 14/08/2022) pour la personne dont l’identifiant en base est 16000
PUT /[URI_de_base]/api/feed/personnes/16000/absences_real/2022-08-14
Modifier l’absence issue du planning mixte d’un jour donné (le 14/08/2022) pour la personne dont l’identifiant en base est 16000
PUT /[URI_de_base]/api/feed/personnes/16000/absences_mixte/2022-08-14
Supprimer l’absence issue du planning initial d’un jour donné (le 17/08/2022) pour la personne dont l’identifiant en base est 16000
DELETE /[URI_de_base]/api/feed/personnes/16000/absences_prev/2022-08-17
Supprimer l’absence issue du planning modifiable d’un jour donné (le 16/08/2022) pour la personne dont l’identifiant en base est 16000
DELETE /[URI_de_base]/api/feed/personnes/16000/absences_mod/2022-08-16
Supprimer l’absence issue du planning réalisé d’un jour donné (le 14/08/2022) pour la personne dont l’identifiant en base est 16000
DELETE /[URI_de_base]/api/feed/personnes/16000/absences_real/2022-08-14
Supprimer l’absence issue du planning mixte d’un jour donné (le 14/08/2022) pour la personne dont l’identifiant en base est 16000
DELETE /[URI_de_base]/api/feed/personnes/16000/absences_mixte/2022-08-14
Messages d'erreur fonctionnels
- Erreur 400 Le décompte jour spécifique de l'absence complète n'est pas multiple de la granularité
- Erreur 400 Le décompte semaine spécifique de l'absence complète n'est pas multiple de la granularité
- Erreur 400 Les bornes de la plage d'au moins une absence partielle ne sont pas multiples de la granularité
- Erreur 400 Le décompte spécifique d'au moins une absence partielle n'est pas multiple de la granularité
- Erreur 400 La période n'est pas renseignée ou est invalide
- Erreur 400 La personne est hors structure pour [DATE]
- Erreur 400 La période devrait être [PERIODE]
- Erreur 400 Il n'y a aucune absence dans l'entry. Pour supprimer toutes les absences il faut supprimer [LA RESSOURCE].
- Erreur 400 Les absences partielles se chevauchent
- Erreur 400 Il ne peut pas y avoir plusieurs absences complètes le même jour
- Erreur 400 Il ne peut pas y avoir des absences partielles et une complète le même jour
- Erreur 409 Il y a déjà des absences pour cette période. Il faut modifier la ressource existante (PUT).
- Erreur 400 Le type d'absence ne peut pas être utilisé, il n'est pas visible dans la structure de la personne
- Erreur 400 La période d'une absence n'est pas renseignée ou est invalide
- Erreur 400 La période d'une absence dépasse la période de la journée
- Erreur 400 La période de l'absence complète ne coïncide pas avec la période de la journée
- Erreur 400 La personne ne peut pas avoir de planning pour cette période. Elle est hors contrat ou hors structure
- Erreur 400 Le planning de la version précédente n'est pas validé
- Erreur 400 Le planning [VERSION] de [NOM PRENOM] pour [DATE] est validé et sa version suivante l'est aussi. Il ne peut donc pas être modifié
Commentaires
0 commentaire
Vous devez vous connecter pour laisser un commentaire.