← LemonPunch

JOURNAL DES VERSIONS

Tout ce qui a changé
dans LemonPunch.

Le pointage de vos salariés dans Dolibarr

Version en cours 2.6.0 Dolibarr 19 et supérieur

2.6.0 (9 septembre 2026)

Le widget prend la mise en page maison

  • Une journée à laquelle il manque un badge affiche « Non comptée » au lieu de « 0 h 00 », et ses durées de plage passent au gris clair. La règle de la 2.4.1 est inchangée — une journée en anomalie n’entre pas dans les totaux, c’est au manager de poser l’heure réelle — mais un total à zéro imprimé au-dessus d’une plage de vingt minutes se lisait comme une erreur de calcul.

  • Reprise de la grammaire visuelle de LemonPulse : durée du jour en gros chiffre, pilule d’état à côté (« Au travail », « Journée terminée », « Pas commencé »), plages de la journée en lignes discrètes avec leur durée, et le bouton d’action détaché sous un filet.

  • Les journées qui réclament un humain se repèrent : bandeau ambre pour une arrivée d’un jour précédent restée ouverte, ou pour une journée incomplète ; bandeau rouge pour une erreur de pointage. Une plage sans arrivée ou sans départ passe en rouge au lieu de se fondre dans le gris.

  • Largeur bornée à 430 px, identique dans la box d’accueil et sur le tableau de bord : sans borne, le bouton devenait une bande verte pleine ligne et la durée d’une plage allait se coller au bord opposé de son horaire.

  • Mise en page en styles en ligne, comme LemonPulse : une box vit dans le thème du client, et une feuille de style de module s’y fait écraser sans prévenir. Ne restent dans le CSS que le survol et le bouton désactivé.

Pointer depuis le tableau de bord, sans boîtier

  • Nouveau widget de pointage posable sur la page d’accueil de Dolibarr (Configuration des widgets → « Pointer »), et repris en tête du tableau de bord du salarié. Il affiche l’état courant, les plages de la journée et le total, avec un seul bouton dont le libellé suit l’état : « Je commence » ou « Je pars ».
  • Destiné aux salariés qui n’ont pas le boîtier sous la main — télétravail, itinérants. Jusqu’ici ils passaient par le formulaire de saisie manuelle, où l’heure se tape à la main : le widget l’horodate côté serveur.
  • Aucun droit nouveau : il faut « Créer/modifier ses pointages », qui autorisait déjà la saisie manuelle de ses propres pointages. Le widget disparaît de lui-même pour qui ne l’a pas.
  • Le pointage porte toujours sur l’utilisateur connecté : aucun identifiant de salarié ne circule dans la requête, il n’y a donc rien à falsifier pour pointer à la place d’un collègue.
  • L’alternance arrivée/départ est décidée par la base, pas par le navigateur : deux onglets ouverts ne peuvent pas enregistrer deux arrivées de suite. Même anti-rebond de 30 secondes que le boîtier.
  • Nouvelle valeur de source : « Tableau de bord », distincte du badge et de la saisie manuelle. Un pointage déclaré par le salarié n’est ni un constat du lecteur, ni une correction du manager — les confondre rendrait la piste d’audit illisible.

Un menu qui porte son nom

  • Le menu du haut était créé par LemonCRM et s’appelait « Lemon ». Sur une instance sans LemonCRM, personne ne le créait : les entrées existaient en base sans parent affichable, et le module restait injoignable au menu.
  • LemonPunch déclare désormais son propre menu du haut, affiché uniquement quand LemonCRM est absent (condition évaluée à chaque affichage : jamais de doublon, quel que soit l’ordre d’installation).
  • Son nom est réglable dans la configuration du module (« Apparence »), défaut « Pointeuse ». Le changement s’applique immédiatement, sans avoir à désactiver puis réactiver le module. Quand LemonCRM est présent, l’écran renvoie explicitement vers sa configuration à lui plutôt que d’afficher un champ sans effet.

Voir les pointages de tout le monde, sans être le chef

  • Nouveau droit « Voir les pointages de tous les salariés (RH, direction) ». Jusqu’ici le périmètre venait uniquement de la hiérarchie Dolibarr : un RH qui n’est le supérieur de personne ne voyait aucun pointage, et la seule façon d’obtenir une vue d’ensemble était de donner des droits à un compte qui ne devait pas les avoir — celui de la pointeuse, dont la clé API dort en clair dans la mémoire du boîtier.
  • Le droit est en lecture seule : corriger ou supprimer un pointage reste réservé au responsable hiérarchique. Ce qui est affiché et ce sur quoi on peut agir restent deux périmètres distincts, et les boutons suivent.
  • La lecture élargie s’arrête à l’entité courante en multi-société.
  • Vues concernées : accueil, vue manager, vue salarié, vue mensuelle, liste des pointages.
  • ⚠️ Après mise à jour, réactiver le module pour que le nouveau droit apparaisse : Dolibarr n’insère les droits qu’à l’activation. Il faut ensuite l’attribuer explicitement — personne ne l’a par défaut.

2.4.1 (7 septembre 2026)

Une journée dont un badge manque ne vaut plus une heure inventée. Un salarié qui oubliait de badger sa sortie voyait sa journée plafonnée à 23:59:59, soit 15 heures pour une arrivée à 9 h ; une alternance cassée (deux arrivées puis un départ) affichait 22 heures. Ces journées valent désormais 0 et restent signalées comme anomalies : c’est au manager de poser l’heure réelle, la machine n’estime plus à sa place — elle estimait dans le sens qui coûte à l’employeur.

Plus de journée négative. Le temps travaillé appariait les arrivées et les départs par leur rang dans deux listes séparées. Un badge de sortie oublié la veille décalait tout : un départ à 08:59 apparié à une arrivée à 09:00 rendait une durée négative, discrètement soustraite du total. L’appariement est désormais chronologique — le même que celui des plages affichées — et chaque paire est bornée à une durée positive.

Une anomalie se voit le jour même. Une alternance déjà cassée en milieu de journée n’attend plus le lendemain pour être signalée ; seule la dernière paire ouverte reste normale, c’est la présence en cours.

Un week-end ou un jour férié traversé par un congé ne consomme plus de jour. Un congé du vendredi au lundi décomptait quatre jours d’absence et créditait du temps travaillé le samedi et le dimanche. Les jours non ouvrés sont désormais traversés sans être consommés, dans la vue mensuelle comme dans les totaux. Les jours fériés sont lus dans le dictionnaire du cœur Dolibarr.

Deux pointages à la même seconde (badge et saisie manuelle) ne rendaient pas un « dernier pointage » déterministe : l’ordre départage désormais par rowid.

L’API du module est réservée aux utilisateurs internes. Elle acceptait aussi les comptes externes : n’importe quel compte de portail ou d’e-commerce détenteur d’une clé API pouvait poster un badge ou lire le dernier UID inconnu. Le boîtier utilise un compte interne dédié, il n’est pas concerné.

Le périmètre managérial est borné à l’entité courante. En multi-société, la hiérarchie des subordonnés — qui sert de contrôle d’accès aux dashboards — était lue sans filtre d’entité.

2.4.0 (15 août 2026)

Le module vous prévient qu’une mise à jour existe. Le descripteur déclare url_last_version, le fichier de version publié sur hellolemon.fr : Dolibarr le lit et signale « nouvelle version disponible » dans la liste des modules, à condition que la vérification y soit activée. La page de configuration du module affiche le bandeau sans rien avoir à activer.

Jusqu’ici aucune instance ne pouvait apprendre qu’une version plus récente était sortie : ni Dolibarr ni le DoliStore n’interrogent quoi que ce soit d’eux-mêmes.

Le contrôle de version ne passe plus par GitHub. Le dépôt est privé, l’appel à l’API des releases ne pouvait plus aboutir ; le bandeau lit désormais le même fichier que Dolibarr. L’échec est mis en cache comme le succès, pour ne pas faire attendre la page de configuration quand le serveur est injoignable.

Reprise en main de la numérotation. Le descripteur était monté à 2.3.2 puis redescendu à 2.3.0. Une instance restée en 2.3.1 ou 2.3.2 aurait vu une régression de numéro. La 2.4.0 repart au-dessus de tout ce qui a existé.

Ce fichier de notes de version, et l’onglet qui l’affiche, jusque-là vide.

2.3.0 (3 juillet 2026)

L’absence apparaît en ligne dans la vue journée, et la durée créditée est modifiable. Le crédit se définit ensuite par une heure de début et une heure de fin plutôt que par une durée sèche.

Deux correctifs de la même série : la vue mensuelle puis la vue journée ne créditaient pas l’absence comptée comme temps travaillé dans leur total.

Compatibilité minimale portée à Dolibarr 19.

2.2.0 (3 juillet 2026)

Une absence peut compter comme du temps travaillé — formation, déplacement — et s’affiche comme telle sur la vue journée.

2.1.0 (3 juillet 2026)

Saisie d’une absence GRH directement depuis le pointage manuel : le congé est créé approuvé dans Dolibarr, et les types qui décomptent mettent le solde à jour.

2.0.3 (30 juin 2026)

Compatibilité Dolibarr 23, requêtes N+1 supprimées, CSS du module scopé.

Retrait du « suivi d’activités », qui relève d’un autre module.

2.0.0 (4 mai 2026)

Migration de l’identifiant de module vers la plage officielle Lemon (210001).

Correctifs de sécurité issus d’un audit, dont l’API REST qui répondait sans exiger de clé DOLAPIKEY, et le contrôle du format des identifiants de badge.

1.2.1 et antérieures

Versions initiales, avant la migration d’identifiant.