Vous pouvez faire un projet bidon et utiliser la fonction « timesheet » de dolibarr aui permet de mettre l’heure de départ et de fin.
https://<DOLIBARR>/htdocs/projet/activity/perday.php
Oui timesheet est un idée, mais je souhaite principalement que les personnels « badgent » leurs entrées / sorties dans l’entreprise en temps réel, et c’est à la pointeuse / badgeuse d’enregistrer l’heure exact et non pas aux personnels surtout…
je continu à creuser coté pointeuse / badgeuse open source et sur réseau permettant d’extraire un fichier de données.
Une version est déjà en production chez un client, après discussion avec la société distribuant badgelio, j’ai ajouté pour avoir un module complet en terme de fonctionnalité et tout pouvoir administrer depuis dolibarr
afin de répondre a une demande je vais surement mettre un peu de code pour la présence dans mon module mais en restant très simple, j’aimerai avoir des avis sur mon approche
la première journalière visite de la page déclenche l’heure de départ et toutes les visites suivante l’heure de fin plus un rapport Dolibarr,
afin que les utilisateurs doivent se loger en début et en fin de journée
Ensuite d’autre fonction pourraient être ajouté comme :
- modification des heures de départ et de fin (+/-x minute max par rapport à l’heure de saisit )
- limite à certaine IP
- …
Désolé pour le déterrage mais existe il un module permettant le pointage ?
J’ai des badges RFID et j’aimerai lors du passage d’une personne à son arrivée et son départ l’info soit remontée dans Dolibarr afin d’avoir le pointage des salariés.
A l’époque, j’ai utilisé Zkemkeeper.dll pour développer en c++ une simple application pour récupérer les attendance de mes employés à partir de plusieurs appareil ZKteco et imprimer un rapport journalier puis mensuel…
Le principe est simple; récupérer dans une table tmp toutes les tendances de chaque appareil et puis mettre à jour la table principale avec une clé composé unique id_machine&id_user_sur_machine&time
@dev et à celui qui veut aborder ce sujet, il y a le lib php zklib facile à intégrer avec un trigger à chaque connexion dolibarr pour l’upload des attendance…
Il va falloir créer 4 tables sur dolibarr :
- llx_attendance_config (rowid, ip_machine, port, user, pwd, zone,title,…, status)
- llx_attandance avec la structure suivante: (rowid, id_machine, idwEnrollNumber, time) clé composé ip_machine, idwEnrollNumber, time grâce à cette clé un insert ignore suffit en chargeant dans une table mémoire (très gourmand avec le temps pour cela j’ai opté à une table tmp)
- llx_attendance_tmp identique à llx_attandance (à vider avant chaque import)
- llx_users_attendance : id_user_dolibarr, id_machine, sdwEnrollNumber (lier utilisateur dolibarr avec celui de l’utilisateur crée sur les machines)
La création/édition des users sur vos machines ZKteco dans dolibarr est très facile à implémenter via le lib
Voilà voilà! juste pour donner une piste à cette fonctionnalité très demandé dans le milieu prof. surtout dans un ERP
Salut à tous, comme vous, je suis intéressé par le pointage, mais peu de dévs y ont mis les mains… @Wdammak, ce serait top si tu pouvais nous proposer tes services, mais d’abord il nous faudrait ton feedback
J’ai contacté ZKTECO et une pointeuse doit faire dans les 350€ (après les cartes RFID c’est quelques Euros)
sachant que le moins cher du marché serait pour 10 utilisateurs, aux alentours de 800€, ça laisse du budget pour sponsoriser du développement et aider à ce développement…
Mais y a t-il un intérêt ? Et légalement, doit-on s’équiper d’un matériel « inaltérable / infalsifiable » ?
J’estime que c’est très cher!
Va voir sur ebay avec 120-140euro tu peux avoir une excellente pointeuse
Je ne crois pas l’histoire de 10 utilisateurs … (tu peux me donner un lien?)
Un ZKTeco U160(Fingerprint Capacity 3000 Transaction Capacity 80,000) ou icock 360( Fingerprint Capacity 8000 - ID Card Capacity 10,000 (Optional) - Record Capacity 200,000 ) est largement suffisant pour le développement, même pour un PME
Personnellement, j’ai des ZKTeco UA200 (un peu vieux) et j’ai plus de 150 utilisateurs/par appareil sans aucun soucis!
Je crois que ZKTeco est certifié…
Le but est pas de faire des économies mais de gagner du temps en centralisant la data dans Dolibarr selon les users et éviter de créer des users dans un autre programme que notre ERP… et de devoir aller chercher les données sur une clé USB et les retraiter…
ZKTECO ok, mais leur suite logicielle ZKTIME Entreprise ou Small Business, tu l’utilises ?
A ce que tu disais c’est un système assez ouvert ?
vraiment pas pu voir leurs API et possibilités, mais en interne on a possibilité de les comprendre et développer un peu.
As-tu lié tes installations avec un logiciel ? avec Dolibarr ?
Ah là je vois mieux!
Justement c’est l’objectif de développer un module à intégrer dans un ERP (pour mon cas j’ai développé une application windows très spécifique à mes besoins)
Grace aux libs tout est faisable!
Sachant que la machine dispose de son logiciel embarqué (free) pour la création/edition… d’utilisateurs aussi pour la consultation…addition des empreintes d’utilisateur… la configuration réseaux…c’est très simple et efficace!
Donc tu peux acheter juste la machine sans aucune licence!
llx_users_attendance, je voyais plutôt des extra-fields (ID zkteco + fingers) sur la table users (je voulais synchroniser les différentes machines en créant les utilisateurs )
Quant à la table temporaire, pourquoi ne pas utiliser des tableaux php car il ne doit pas y avoir tant d’enregistrement que ça (3000 max si je me souviens) ?
C’est super!
Donc dans un premier temps il va falloir créer vue(view) pour Add/Edit/delete les machines installées dans la société où on doit spécifier : désignation/adresse ip/Port
Pourquoi une table temporaire au lieu d’une table php? car avec un INSERT IGNORE et une clé unique sur id_machine/time tu n’es plus obliger de faire des vérifications de l’existence des données d’attendance et si quelqu’un a déjà téléchargé les attendances ou pas, il met à jour systématiquement à chaque connexion à une telle machine (dans mon cas une 10ène de machine donc imagine comment y procéder! avec tant de boucle et requêtes…) en ajoutant seulement les attendances non téléchargés encore.
Tu peux y procéder autrement en faisant des requêtes et des boucles… c’était pour moi la méthode la plus simple et la plus sûre (selon moi!)