Objet de l'interface
L’interface permet d’importer des paramètres de calcul depuis un logiciel tiers vers Timesquare. Ceux-ci sont regroupés dans une fiche de paramètres de calcul par personne. Le principe est de mettre à disposition les informations attendues dans un fichier de type texte qui sera lu et interprété par l’interface de façon à mettre à jour la base de données de Timesquare.
Ces paramètres permettent de définir pour chaque personne les bornes de début et de fin de journée possibles, éventuellement les heures de coupures ainsi que les jours de repos attribués pour une semaine ou un cycle de plusieurs semaines.
La fiche de paramètres crée reste valable jusqu’à modification par l’import de nouveaux paramètres.
Les éléments essentiels sont :
- La date de début d’application
- La date de fin d’application
- Le type de grille (D, H ou T)
- Le nombre de jours du cycle, qui est un multiple de 7
- Le numéro de semaine du cycle
- Les heures de début et de fin de chaque journée
- Les heures de coupures (à prendre en compte selon les contrats)
- Les heures de pauses (non prises en compte par Timesquare)
- Les jours de repos de chaque semaine du cycle
Ces éléments sont importés dans Timesquare pour créer des fiches de paramètres de calculs qui peuvent être utilisées lors du calcul des plannings.
Remarque : Les temps complets et les temps partiels ne sont pas égaux, notamment concernant la coupure entre deux plages de travail. Il est possible d’avoir de la flexibilité pour les premiers alors que les seconds sont soumis à une règle stricte : la coupure définie doit être la coupure présentée sur le planning de la personne concernée. Pour les contrats temps complets, la coupure n'est pas récupérée et enregistrée dans les fiches de paramètres de calcul. Il est donc nécessaire de définir si un contrat est un temps complet ou un temps partiel pour permettre cette distinction. Les pauses quant à elles, ne sont soumises qu’aux règles générales de distribution des pauses et ne sont pas contractuelles. Elles ne sont donc pas récupérées.
En savoir plus sur le paramétrage de cet import.
Nom du fichier
Fichier unique
Le nom du fichier est libre (libellé + extension) mais une fois défini dans le paramétrage de l’import, il ne doit plus changer.
Exemples : Param_A.txt, Param_Timesquare.001, Param.csv..
Fichiers multiples
Les noms des fichiers d'import doivent suivre une syntaxe particulière incluant la date des données proposées. Le champ Libellé du fichier doit expliciter la nomenclature choisie. Ainsi, LibelléJJMMAAAA.EXT, LibelléJJMMAA.EXT, LibelléAAAAMMJJ.EXT ou LibelléAAMMJJ.EXT sont les dénominations retenues où :
- "Libellé" est une chaîne de caractères alphanumériques que je peux personnaliser
- "JJ" correspond au jour, "MM" correspond au mois, "AA" et "AAAA" correspond à l'année, qui peut être indifféremment renseignée sur 2 ou 4 caractères
- "EXT" une chaîne alphanumérique de trois caractères au maximum que je peux personnaliser
Exemple 1 : Le champ Libellé dans la configuration se nomme param_JJMMAA.txt et les trois fichiers d'import se nomment param_040122.txt, param_050122.txt et param_060122.txt.
Exemple 2 : Le champ Libellé dans la configuration se nomme paramAAAAMMJJ.001 et les trois fichiers d'import se nomment param20220104.001, param20220105.001 et param20220106.001.
Exemple 3 : Le champ Libellé dans la configuration se nomme AAMMJJ.txt et les trois fichiers d'import se nomment 040122.txt, 050122.txt et 060122.txt.
Format
Texte. Encodage UTF-8.
Séparateur entre deux informations
Le séparateur entre deux informations est la barre verticale ( | ).
Description des lignes du fichier
| Champ | Type | Longueur | Remarque | Obligatoire | |
|---|---|---|---|---|---|
| 01 | Personne concernée | Alphanumérique | 12 | Correspond au Matricule de Timesquare | |
| 02 | Date de début | Date | 8 | AAAAMMJJ | |
| 03 | Date de fin | Date | 8 | AAAAMMJJ | |
| 04 | Type de grille | Alphanumérique | 1 | Valeurs D, H ou T | |
| 05 | Nombre de jours du cycle | Numérique | 2 | Multiple de 7 (7, 14, 21 …) | |
| 06 | Ignorée par Timesquare | ||||
| 07 | Numéro de semaine du cycle | Numérique | 1 | La valeur dépend de #05 | |
| 08 | Lu HD1P1 | Heure | 4 | HHmm | |
| 09 | Lu HF1P1 | Heure | 4 | HHmm | |
| 10 | Lu HD2P1 | ||||
| 11 | Lu HF2P1 | ||||
| 12 | Lu HD1P2 | ||||
| 13 | Lu HF1P2 | ||||
| 14 | Lu HD2P2 | ||||
| 15 | Lu HF2P2 | ||||
| 16 | Ignorée par Timesquare | ||||
| 17 | Ignorée par Timesquare | ||||
| 18 | Lu Repos | Alphanumérique | 1 | 0 si Repos I Sinon | |
| 19 | Ma HD1P1 | ||||
| 20 | Ma HF1P1 | ||||
| 21 | Ma HD2P1 | ||||
| 22 | Ma HF2P1 | ||||
| 23 | Ma HD1P2 | ||||
| 24 | Ma HF1P2 | ||||
| 25 | Ma HD2P2 | ||||
| 26 | Ma HF2P2 | ||||
| 27 | Ignorée par Timesquare | ||||
| 28 | Ignorée par Timesquare | ||||
| 29 | Ma Repos | ||||
| 30 | Me HD1P1 | ||||
| 31 | Me HF1P1 | ||||
| 32 | Me HD2P1 | ||||
| 33 | Me HF2P1 | ||||
| 34 | Me HD1P2 | ||||
| 35 | Me HF1P2 | ||||
| 36 | Me HD2P2 | ||||
| 37 | Me HF2P2 | ||||
| 38 | Ignorée par Timesquare | ||||
| 39 | Ignorée par Timesquare | ||||
| 40 | Me Repos | ||||
| 41 | Je HD1P1 | ||||
| 42 | Je HF1P1 | ||||
| 43 | Je HD2P1 | ||||
| 44 | Je HF2P1 | ||||
| 45 | Je HD1P2 | ||||
| 46 | Je HF1P2 | ||||
| 47 | Je HD2P2 | ||||
| 48 | Je HF2P2 | ||||
| 49 | |||||
| 50 | |||||
| 51 | Je Repos | ||||
| 52 | Ve HD1P1 | ||||
| 53 | Ve HF1P1 | ||||
| 54 | Ve HD2P1 | ||||
| 55 | Ve HF2P1 | ||||
| 56 | Ve HD1P2 | ||||
| 57 | Ve HF1P2 | ||||
| 58 | Ve HD2P2 | ||||
| 59 | Ve HF2P2 | ||||
| 60 | Ignorée par Timesquare | ||||
| 61 | Ignorée par Timesquare | ||||
| 62 | Ve Repos | ||||
| 63 | Sa HD1P1 | ||||
| 64 | Sa HF1P1 | ||||
| 65 | Sa HD2P1 | ||||
| 66 | Sa HF2P1 | ||||
| 67 | Sa HD1P2 | ||||
| 68 | Sa HF1P2 | ||||
| 69 | Sa HD2P2 | ||||
| 70 | Sa HF2P2 | ||||
| 71 | Ignorée par Timesquare | ||||
| 72 | Ignorée par Timesquare | ||||
| 73 | Sa Repos | ||||
| 74 | Di HD1P1 | ||||
| 75 | Di HF1P1 | ||||
| 76 | Di HD2P1 | ||||
| 77 | Di HF2P1 | ||||
| 78 | Di HD1P2 | ||||
| 79 | Di HF1P2 | ||||
| 80 | Di HD2P2 | ||||
| 81 | Di HF2P2 | ||||
| 82 | Ignorée par Timesquare | ||||
| 83 | Ignorée par Timesquare | ||||
| 84 | Di Repos |
Détail du fichier
Colonnes #01 à #07
Ces colonnes permettent d’alimenter la description de la fiche de paramètres de calcul.
#01 (Matricule), #04 (Type de grille), #05 (Nombre de jours du cycle) et #7 (Numéro de semaine du cycle) permettent de renseigner l’intitulé de la fiche de paramètres.
Intitulé = "Préfixe" + "Nom et prénom" + ("Type de grille") + Numéro de semaine / périodicité (#05/7) + (Nombre d’imports pour la personne)
Le matricule (Colonne #1) permet de récupérer le nom et le prénom de la personne concernée.
Le "Préfixe" est renseigné dans la configuration de l’interface.
Le type de grille (Colonne #4) est récupéré directement dans le fichier. Il est mis entre parenthèse dans l’intitulé de la fiche.
Le nombre de jours du cycle ainsi que le numéro de semaine du cycle permet de déterminer la périodicité de la fiche :
- Si périodicité égale 1 (application de la même fiche toutes les semaines) : 1/1
- Si périodicité supérieure à 1 (application de n fiches toutes les n semaines): 1/2, 2/2 ou 1/3, 2/3, 3/3, etc.
Le nombre d’imports réalisés pour la personne permet de numéroter la fiche. Celui-ci apparait entre parenthèses.
Dans le cas d’un premier import, on visualise (1), dans le cas d’un second (2), etc.
Exemple :
5028853 |20210517|20991231|H|7||1|
Si le matricule 5028853 correspond à "Luna Almeria" alors l’intitulé de la fiche de paramètres de calcul sera
Pour un 1er import (sans périodicité) : Intitulé : "Grille horaire de Luna Almeria (D) 1/1 (1)"
Pour un 2nd import (sans périodicité) : Intitulé : "Grille horaire de Luna Almeria (D) 1/1 (2)"
#02 (Date de début) et #03 (Date de fin) permettent de renseigner la période d’application de la fiche de paramètres
Ces deux dates servent à alimenter la période d’application de la fiche de paramètres de calcul.
Exemple :
5028853 |20210517|20991231|H|7||1|
Période d'application : 17/05/2021 - 31/12/2099
#05 (Nombre de jours du cycle) et #07 (Numéro de semaine du cycle) permettent de renseigner la périodicité de la fiche de paramètres
Note : la périodicité des fiches de paramètres de calcul créées est toujours "hebdomadaire". Le nombre de jours du cycle est toujours un multiple de 7, la périodicité est donc le résultat de la division de la colonne #05 par 7.
Exemple :
5028853 |20210517|20991231|H|7||1|
Périodicité : 1 Hebdomadaire
Cas particulier de périodicité différente de 1 et adaptation de la période d’application : Si le résultat de la division de la colonne #05 par 7 est supérieur à 1 alors il est nécessaire de créer autant de fiches de paramètres de calcul que le résultat de cette division.
Exemple :
5046125 |20210116|20210516|H|21|1|1|
5046125 |20210116|20210516|H|21|1|2|
5046125 |20210116|20210516|H|21|1|3|
Dans ce cas, il est nécessaire de créer 3 fiches de paramètres de calcul (21/7 = 3) ayant chacune une périodicité égale à 3.
Colonnes suivantes
#08 à #15, #19 à #26 … et #74 à #81
Ces colonnes permettent après analyse et en fonction du contrat de déterminer quelles sont les heures de :
- Début de journée
- Fin de journée
- Début de coupure
- Fin de coupure
#18, #29, #40, #51, #62, #73 et #84
Ces colonnes indiquent quels jours sont des jours de repos.
- Si la valeur est 0 alors le jour concerné est un repos.
- Si la valeur est I alors le jour concerné est un jour travaillé
Récapitulatif des paramètres utilisés
- HD1P1 : Début de journée
- HF1P1 : Fin de journée / Début de coupure / Début de pause
- HD2P1 : Fin de coupure / Fin de pause
- HF2P1 : Fin de journée / Début de coupure
- HD1P2 : Fin de coupure
- HF1P2 : Fin de journée / Début de pause
- HD2P2 : Fin de pause
- HF2P2 : Fin de journée
- Repos = 0 : Repos
- Repos = I : Travaillé
Paramètres utilisés :
- Début de journée : Paramètre Heures de début de journée du groupe PJ01
- Fin de journée : Paramètre Heures de fin de journée du groupe PJ01
- Début de coupure : Paramètre Heures de début de coupure interdites du groupe PJ06
- Fin de coupure : Paramètre Heures de retour de coupure interdites du groupe PJ06
- Repos : Paramètre Jour travaillé du groupe PJ02 avec la valeur "Interdit" pour le jour concerné
Synthèse
Le schéma suivant présente les cas d'analyse du fichier en fonction des bornes présentées.
Règles de gestion
Différencier une fiche de paramètres importée
Lors de la création d’une fiche d’import, cette fiche sera identifiée comme "importée" dans la base de données. Cela permettra de la différencier des fiches de paramètres renseignées manuellement.
Une fiche de paramètres importée peut ne pas être modifiable en fonction des droits associés à l’utilisateur. Si l’utilisateur ne dispose pas du droit "Modifier une fiche de paramètres importée par personne" mais qu’il dispose du droit "Modifier une fiche de paramètres par personne", il ne pourra pas modifier les fiches importées.
Récupération des heures de coupure en fonction du contrat
Par le biais de l’identifiant de la personne, on récupère son contrat pour le 1er jour de la fiche (date de début d’application). Si celui-ci dispose de la propriété "Temps complet", on ne récupère pas les heures de coupure. Dans le cas d’un contrat ayant la propriété "Temps partiel", la coupure est récupérée et interprétée en fonction de la Durée minimum de coupure renseignée dans le paramétrage de l’import.
Traitement des erreurs dans le fichier
Si une erreur est détectée dans le fichier, la ligne n’est pas importée et apparait en erreur dans les logs.
- Nombre de jours du cycle #5 n’est pas un multiple de 7.
- Date de début supérieure à la Date de fin.
- Matricule de la personne inexistant.
Cette liste n’est pas exhaustive, d’autres motifs pourront être ajoutés au moment de la réalisation du développement.
Cas particulier de périodicité différente de 1 et adaptation de la période d’application
Si le résultat de la division de la colonne #05 par 7 est supérieur à 1 alors il est nécessaire de créer autant de fiches de paramètres de calcul que le résultat de cette division.
Exemple :
5046125 |20210116|20210516|H|21|1|1|
5046125 |20210116|20210516|H|21|1|2|
5046125 |20210116|20210516|H|21|1|3|
Dans ce cas, il est nécessaire de créer 3 fiches de paramètres de calcul (21/7 = 3).
Celles-ci ne devront pas avoir la même date de début pour ne pas s’appliquer simultanément mais les unes après les autres.
Pour adapter la date de début, il est nécessaire d’utiliser la colonne #7.
Lorsque colonne #7 = 1, la fiche de paramètre débute à la date indiquée en #02
Lorsque colonne #7 = 2, la fiche de paramètre débute à la date indiquée en #02 + 7 jours
Lorsque colonne #7 = 3, la fiche de paramètre débute à la date indiquée en #02 +14 jours
Et ainsi de suite.
Exemple :
5046125 |20210116|20210516|H|21|1|1|
5046125 |20210116|20210516|H|21|1|2|
5046125 |20210116|20210516|H|21|1|3|
Nous obtenons 3 fiches de paramètres de calcul (21/7 = 3)
- La première débute le 16/11/2020.
- La deuxième débute le 23/11/2020.
- La troisième débute le 30/11/2020.
Ré-import d’une grille horaire
Une personne a déjà une fiche de paramètres renseignée liée à un premier import de grilles horaires. Celle-ci a été modifiée et l’import est effectué à nouveau.
Dans ce cas, lors du 2nd import, le système détecte la présente d’une fiche de paramètres identifiée comme importée dans la base de données. Il n’est pas possible d’avoir deux fiches importées appliquées pour une même date. S’il existe une période commune entre la grille existante et la nouvelle grille horaires, il sera nécessaire de mettre une date de fin à la fiche déjà présente. Cette date de fin correspondra à la veille de la date de début d’application de la nouvelle fiche créée lors de ce second import.
Dans le cas ou plusieurs fiches avaient été créées lors du premier import. On est en présence de plusieurs fiches identifiées comme importées dans la base de données. Néanmoins, ces fiches ne s’appliquaient pas toutes en même temps du fait de la périodicité. Lors du 2nd import, on viendra mettre une date de fin à toutes les fiches déjà présente.
Si on souhaite modifier la grille horaire d’une partie d’un cycle, il sera nécessaire de réimporter tout le cycle.
Exemple de contenu
0010167 |20210510|20210516|T|7||1|1225|1600|1620|1900|||||0|0|I|1300|1600|1615|1900|||||0|0|I|1300|1600|1615|1900|||||0|0|I|1130|1600|1620|1900|||||0|0|I|1325|1600|1615|1900|||||0|0|I|1400|1600|1615|1900|||||0|0|I|||||||||0|0|0|
0010167 |20210517|20991231|D|7||1|1400|1745|1800|2010|||||0|0|I|||||||||0|0|0|0820|1045|1100|1430|||||0|0|I|1120|1700|1720|2010|||||0|0|I|1130|1700|1720|2010|||||0|0|I|1330|1800|1820|2010|||||0|0|I|||||||||0|0|0|
0050964 |20201123|20210516|D|7||1|0830|1200|1220|1625|||||0|0|I|0830|1200|1220|1625|||||0|0|I|0830|1000|1015|1325|||||0|0|I|0830|1200|1220|1625|||||0|0|I|0830|1200|1220|1625|||||0|0|I|||||||||0|0|0|||||||||0|0|0|
0050964 |20210517|20210523|T|7||1|0600|1000|1020|1325|||||0|0|I|0600|0900|0915|1150|||||0|0|I|0600|0900|0915|1150|||||0|0|I|0600|0900|0915|1150|||||0|0|I|0600|0900|0915|1150|||||0|0|I|0600|0900|0915|1150|||||0|0|I|||||||||0|0|0|
0050964 |20210524|20991231|D|7||1|0830|1200|1220|1625|||||0|0|I|0830|1200|1220|1625|||||0|0|I|0830|1000|1015|1325|||||0|0|I|0830|1200|1220|1625|||||0|0|I|0830|1200|1220|1625|||||0|0|I|||||||||0|0|0|||||||||0|0|0|
0059267 |20210405|20210509|H|7||1|1430|1600|1615|2000|||||0||I|1200|1500|1520|2000|||||0||I|||||||||0|0|0|||||||||0|0|0|1100|1300|1315|1650|||||0||I|0830|1200|1220|1700|||||0||I|||||||||0|0|0|
0059267 |20210510|20210516|T|7||1|0600|1000|1015|1120|||||0|0|I|0600|1000|1015|1120|||||0|0|I|0600|1000|1015|1120|||||0|0|I|0600|1000|1015|1120|||||0|0|I|0600|1000|1015|1105|||||0|0|I|0600|1000|1015|1105|||||0|0|I|||||||||0|0|0|
0059267 |20210517|20991231|H|7||1|1430|1600|1615|2000|||||0||I|1200|1500|1520|2000|||||0||I|||||||||0|0|0|||||||||0|0|0|1100|1300|1315|1650|||||0||I|0830|1200|1220|1700|||||0||I|||||||||0|0|0|
Commentaires
0 commentaire
Vous devez vous connecter pour laisser un commentaire.