Module Pointage Doli, quelqu'un peut en parler??

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é…

Par exemple, pas trop cher mais sur un logiciel propriétaire https://www.pointeuses.com/products/kit-de-gestion-du-temps-themis-box?variant=41206634570
Sinon j’ai un devis à 990€ pour 15 utilisateurs en logiciel propriétaire, mais licence « à vie » avec matériel à l’achat…
J’attends un devis de TimeKeys aussi.

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 ?

Merci,
Hubert

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!

Aussi tu peux utiliser l’application libre proposé par ZKTeco : http://www.idsprotect.com/index.php/downloads-access/zkteco-bio-metrics/item/zk-access-control-software-2

je vois pas pourquoi tu veux absolument balancer ton argent par la fenêtre :woohoo:

Bonjour,

J’avais porter la lib ZK pour passer les test CI de dolibarr mais sans ZKteco j’ai mis le code de coté car non testé…

bien à vous

Pour tes 4 tables:

  • llx_attendance_config > j’avais fait llx_attendance_system.sql
  • llx_attandance, j’avais fait cette table qui sert déja pour les Chrono llx_attendance_event.sql
  • 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) ?

bien à toi

1 « J'aime »

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!)

Bonjour,

Je vais à la vitesse d’un escargot mais j’ai trouvé un ZKteco pour pas cher alors j’avance un peu (connexion avec la pointeuse OK)

J’ai une question, en jouant avec la machine, je me suis rendu compte que pour la configuration des empreintes ça risque d’être pénible via dolibarr, de plus les sociétés auront sans doutes des pointeuses déjà en place donc la question du lien entre le ZKUser et DoliUser se pose. Je pensais faire un liens lors du téléchargement des ZKUser depuis les pointeuses en comparant le ‹ name › avec ref_int OU login OU email des utilisateurs dolibarr, qu’en pensez vous ?

Un autre point me gène, dans les ZKteco il n’y a pas de in/out (contrairement au TimeMoto de ScanSafe) , il y a juste des events; donc si je n’ajoute pas de notion de shift pour les utilisateurs (je n’ai pas courage de me lancer dans la création d’un tel monstre), je ne peux que prendre les events par pairs qui font une durée comprise entre le min et le max d’un pointage ci que ne manquera pas de créer des erreurs. Avez vous des idées pour minimiser ces erreurs ?

note: pour la table temporaire, je suis pas sur de comprendre mais je vais y réfléchir

bien à vous

Bonjour,

Travailler sur ce module pendant le confinement semble un peu décalé, mais j’aimerais le finir pour savoir si ça vaut le coup de continuer (est-ce qu’il y aura des utilisateurs ?)

Je suis en mesure de télécharger les utilisateurs d’une pointeuse ZKTECO (F18), je les lie avec un utilisateur dolibarr. (le chargement des utilisateurs depuis dolibarr vers les pointeuses sera fait dans un second temps si le module est utilisé)

Je vais maintenant mettre en place de chargement des pointages, mon soucis était que ZKTeco ne dit pas si c’est une entrée ou une sortie, ce qui dans le cas d’un pointage manqué peut mettre le bazar pour la génération des temps de présence (en mettant les pauses comme temps travaillé, etc.) voici comment je compte éviter la plupart des erreurs:

Le traitement se fera par journée, une journée sera défini par trois critères :

  • Durée maximale entre le premier pointage et le dernier (défaut à 13h)

  • Durée maximale entre 00:00 (jour du premier pointage) et le dernier pointage (ça sera plus des 24 si l’entreprise fait les trois 8, défaut à 22h30)

  • Temps de repos minimal entre deux journées pour un travailleur (défaut à 11h )

Dans une Journée, il devrait y avoir un nombre pair de pointages, si ce n’est pas le cas le système vérifia s’il n’y a pas un pointage en double, c.-à-d. deux pointages trop proches (défaut <15min) s’il n y a pas de doublons et un nombre impair de pointages alors tous les pointages de cette journée seront mis en « erreur » sinon des temps de présence seront générés sur base de pair de pointage entrée-sortie.

@wdammak, @HubZ, @adeoexpo, @alientouch, @Gerard30 Pensez-vous que ça sera assez robuste ?

Bien à vous,

Hello !

Cela semble assez robuste ! Surtout si c’est paramétrable.

J’ai acheté une « merde » de chez TimeMoto et le double pointage ou l’oubli de pointage met un carnage dans leur logiciel tout pourri, pas assez paramétrable… on l’a utilisée 2 mois, là, elle gît froidement…

Si tu veux des exemples de paramétrages de chez TimeMoto, ou un test en live :wink:

Excusez moi pour ce retard de réponse!

1/ La liaison entre users doit à mon avis se fait avec un lien(extrafields?) de cette façon : id_machine+id_user_zkteco<->id_user_dolibarr cela est plus flexible avec plus de possibilité/mobilité(le cas d’un employé qui travaille dans différents locaux…)

2/ Pour check IN/OUT c’est justement, il faut Shift Timetable (Check-In Start Time/ End Time, Check-Out Start Time/ End Time). Personnellement, j’ai opté exactement comme votre approche ci-dessus! Pour check-in je prend min(checking) avant midi… (min/max pour éviter les doublons et trouver premier entrée et dernière sortie) … Bon, autrement vous ajoutez 4 extrafields au niveau utilisateur dolibarr (checkin1, checkout1, checkin2, checkout2) et chercher la correspondance avec une telle tolérance (± 1 heure)…
Sinon, cela peut être gérer via une Shift Timetable dans dolibarr crée via votre module.
Pour mon cas, j’ai évolué aux accès digitaux et badges (pareil avec des terminaux ZKTeco et c’est le même principe/soft) un de l’extérieur pour ouvrir et un de l’intérieur pour sortir c’est plus facile à gérer (id_machin_in, id_machine_out…) mais pour le moment laissez ce cas à coté :slight_smile:

3/ Pour la table temporaire viendra le moment(une fois vous passez à l’étape de synchronisation) que vous procédez exactement comme je l’ai fait :slight_smile:

Bravo et bon courage! Continuez svp, cela est vraiment intéressant! et il y aura beaucoup d’autres voies/opportunités (par exemple lier la paie/comptabilité avec la présence et le nombre d’heure!..)

@wdammak,

  1. pour la liaison j’ai fais une table utilisateurs ZKTECO qui contient aussi les empreintes, #rfid etc… ça permet de géré plusieurs type de machine et ça donne plus de flexibilité pour l’ajout de personnes via les pointeuses + une table de mappage utilisateurs ZKTECO et pointeuses afin qu’il soit possible de pousser le même utilisateur sur des pointeuses différentes mais pas forcement pour toutes les pointeuses car ces machines peuvent aussi servir de contrôle d’accès. (je vais peut être ajouter un paramètre à la table des pointeuses pour dire si ce sont des pointeuse ou des simple contrôle d’accès).

  2. je ne veux surtout pas mettre de notion de shift pour l’instant parce que c’est un gros dev si on veut le faire bien car ça amène la notion de groupe / calendrier / type de journées / type d’absence … , si je le fais un jours ce sera en m’inspirant de TeamCal Neo. Pour les pointeuses in/out je vais réfléchir comment je peux les gérer car j’aime beaucoup l’idée (simple et efficace).

  3. j’y suis déjà car il fallait que je puisse gérer les utilisateurs ZKteco sans liens avec un utilisateurs dolibarr mais je ne la viderai pas afin d’avoir une possibilité d’audit.

Merci encore pour vos commentaires.

Bien à vous

1 « J'aime »

Bonsoir,

Je pense avoir un truc à peut près fonctionnel

voici les étapes:

  • crée la pointeuse (dans HR/attendanceSystem) avec une tâche (projet, client … ne sont pas pris en compte)
  • depuis la carte de la pointeuse, charger les utilisateurs
  • depuis la liste des utilisateur, vérifier le lien avec un utilisateur dolibarr
  • depuis la carte de la pointeuse, charger les evenements
  • depuis la liste des events, générer les tasktime

bien à vous

1 « J'aime »

BRAVO! ça l’air très bien!

1 « J'aime »

Bonjour,

Est ce que quelqu’un a eu l’opportunité de tester avec des vrais données (copie de prod …) ?
Si oui, quelle seraient les modifs les plus importante/urgente ?

bien à vous

Oui moi! je viens d’installer le module et la connexion ne fonctionne pas! (pourtant sur la même machine avec un autre programme la connexion avec la machine se passe bien!)
Je n’ai pas compris le champ Zone?
Ni le mode (=1 par défaut)
Je me connecte que avec l’ip et le port sur mon programme (je n’ai pas de password)

@wdammak est-ce que le module PHP « sockets » est installé sur cette machine ?

Il faut que j’ajoute un msg d’erreur s’il n’est pas activé

bien à toi

Je vais vérifier début semaine quand je serais de passage à l’usine…
En effet, il y a quelques traductions manquantes lors de configuration
Aussi il n’y a pas un lien dans le tableau des machine pour aller à l’édit directement…
Zone c’est département de Zkteco?
Merci c’est déjà un grand pas!

le module PHP « sockets » est installé et activé
La connexion ne passe pas!

Bonjour, comment est configuré l’IP de la pointeuse ? Quelle est le modèle et version de la pointeuse ?

Bonjour,
UA100 version 6 du sdk
L’ip 155.100.100.201/255.255.0.0
Le Port: 4370