Importation des heures de présence depuis un fichier CSV

Importation des heures de présence depuis un fichier CSV

Planno dispose d'un script permettant l'importation des heures de présence depuis un fichier CSV.
Le but est d'importer automatiquement les heures de présence générées par un logiciel tiers (logiciel RH ou GTT)\\.

Emplacement du script

Le script se trouve dans le dossier src/Cron/Legacy/cron.importCSV.php
Il doit être exécuté en ligne de commande (CLI) avec le programme php
Exemple : php /chemin/vers/planno/src/Cron/Legacy/cron.importCSV.php


Configuration

Pour l'utilisation de ce script, il faut configurer Planno de la façon suivante :

  • Utilisation du module Planning Hebdo :
    • Menu Administration / Configuration / Heures de présence / cocher PlanningHebdo
    • Avec ce module (activé par défaut), les heures de présence sont gérées dans le menu Administration / Heures de présence et sont bornées par des dates d'effet. Les heures de présence peuvent donc varier dans le temps.
  • Renseignement du chemin d'accès vers le fichier CSV dans lequel seront renseignées les heures de présence à importer :
    • Menu Administration / Configuration / Heures de présence / Renseigner le chemin complet vers le fichier dans le champ PlanningHebdo-CSV
    • ça peut être un chemin absolut si le fichier est stocké sur le serveur Planno, ou une URL https



Format du fichier CSV

Le fichier CSV doit comporter les informations suivantes :

  • Une ligne par date et par agent
    • IMPORTANT : le fichier doit comporter des dates précises et non des informations de période. Exemple : 2022-07-25 = OK, lundi = KO
    • Le séparateur de champ est le point-virgule ;
  • Le premier élément est le login de l'agent (tel qu'il existe dans Planno)
  • Le deuxième élément est la date au format YYYY-MM-DD (ex: 2022-07-25)
  • Le troisième élément est l'heure de début de journée au format HH:mm (ex: 09:00)
  • Le quatrième élément est l'heure de fin de journée ou l'heure de début de la première pause au format HH:mm (ex: 12:00)
  • Le script accepte jusqu'à 8 éléments afin d'importer plusieurs période de travail dans une journée.
    • Exemple 1 : si sur le 3ème élément j'ai mis la date de début de journée, sur le 4ème la date de début de pause déjeuner, 3 et 4 forment la première période. Je peux ensuite la compléter par 5 et 6 pour l'après midi. Exemple : 5 = 13:00; 6 = 17:00
    • Exemple 2 avec 2 pause par jour : 3 = 9:00; 4 = 12:00; 5 = 13:00; 6 = 15:00; 7 = 15:30; 8 = 17:30


Exemple de fichier CSV :

agathe.merle;2022-05-02;09:00;12:00;13:00;17:00
agathe.merle;2022-05-03;09:00;12:00;13:00;17:00
agathe.merle;2022-05-04;09:00;12:00;13:00;17:00
agathe.merle;2022-05-05;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-02;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-03;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-04;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-05;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-06;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-09;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-10;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-11;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-12;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-13;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-16;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-17;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-18;09:00;12:00;13:00;17:00
adam.leroyer;2022-05-19;09:00;16:00
adam.leroyer;2022-05-20;09:00;12:00;13:00;15:00;15:30;17:30

Dans l'exemple précédent :

  • nous avons les plannings de présence d'Agathe du 2 au 5 mai et ceux de d'Adam du 2 au 20 mai.
  • Les premières lignes sont des plannings de présence de 9h à 12h et de 13h à 17h.
  • L'avant dernière ligne est une journée continue de 9h à 16h.
  • La dernière ligne contient 2 pauses (donc 3 périodes : 9h-12h ; 13h-15h et 15h30-17h30)



Utilisation

  • Faire un sorte que le fichier CSV soit déposé automatiquement et régulièrement sur un emplacement accessible par le serveur Planno. Sur le serveur même, dans un dossier réseau monté sur le serveur ou sur une URL https.
  • Le nom et l'emplacement du fichier sont invariables. Chaque copie écrase la version précédente.
  • Renseigner le chemin d'accès au fichier dans la configuration de Planno (champ "PlanningHebdo-CSV" dans la rubrique "Heures de présence")
  • Exécuter régulièrement le script "src/Cron/Legacy/cron.importCSV.php" avec la commande PHP (en CLI, avec la même version que le PHP du service web)
    • Exemple : php /chemin/vers/planno/src/Cron/Legacy/cron.importCSV.php
  • Mettre en place une tâche planifiée pour exécuter ceci automatiquement
    • Exemple pour une exécution tous les lundis à 3h00 : crontab -e –> Ajouter :
      0 3 * * 1 php /chemin/vers/planno/src/Cron/Legacy/cron.importCSV.php
planno/synchro/importation_des_heures_de_presence.txt · Dernière modification: 2022/08/30 10:29 de jcombes
CC Attribution-Share Alike 4.0 International Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International