Module Ultimateqrcode FR: Difference between revisions

no edit summary
No edit summary
Tag: 2017 source edit
No edit summary
Tag: 2017 source edit
 
(2 intermediate revisions by the same user not shown)
Line 4: Line 4:
     You can edit links on the English source page : Module_Ultimateqrcode_EN -->
     You can edit links on the English source page : Module_Ultimateqrcode_EN -->
[[en:Module_Ultimateqrcode_EN]]
[[en:Module_Ultimateqrcode_EN]]
[[de:Module_Ultimateqrcode_DE]]
[[es:Module_Ultimateqrcode_ES]]
[[it:Module_Ultimateqrcode_IT]]
<!-- END interlang links -->
<!-- END interlang links -->


Line 17: Line 20:
|webbuy={{LinkToPluginDownloadDoliStore|keyword=ultimateqrcode}}
|webbuy={{LinkToPluginDownloadDoliStore|keyword=ultimateqrcode}}
|status=stable
|status=stable
|prerequisites=
|prerequisites=PHP 8.2 minimum, extension PHP GD
|minversion=17.0.0
|minversion=25.0.0
|note=Compatible Dolibarr v24
|note=Compatible Dolibarr v25 et PHP 8.5
}}
}}
UltimateQRcode ajoute des '''QR codes''' sur les fiches Dolibarr (tiers, contacts, produits, documents commerciaux, projets…). Chaque QR code encode les champs que vous choisissez, peut porter un logo en son centre et s'imprime sur une étiquette de 120 × 57 mm. Les fiches de personnes proposent en plus un '''QR code vCard''' à scanner pour ajouter le contact dans un smartphone.
----
= Prérequis =
{| class="wikitable"
! Élément !! Version
|-
| '''Dolibarr''' || 25.0.0 ou supérieure
|-
| '''PHP''' || 8.2 minimum (testé jusqu'à PHP 8.5)
|-
| '''Extension PHP''' || GD (génération des images PNG)
|-
| '''Modules Dolibarr''' || Aucun module obligatoire. Les onglets n'apparaissent que sur les objets dont le module est activé (Factures, Stocks, Projets…)
|}
Les bibliothèques ''chillerlan/php-qrcode'' et ''michelf/php-markdown'' sont livrées dans le module : aucune installation Composer n'est nécessaire.
----


= Installation =
= Installation =


# Télécharger le module et le déposer dans le répertoire <code>htdocs/custom/ultimateqrcode/</code>
# Télécharger l'archive <code>module_ultimateqrcode-25.0.x.zip</code> depuis le [https://www.dolistore.com DoliStore]
# Depuis Dolibarr : '''Accueil → Configuration → Modules/Applications'''
# Dans Dolibarr : '''Accueil → Configuration → Modules/Applications''', onglet '''Déployer/Installer un module externe''', envoyer l'archive. À défaut, décompresser l'archive dans <code>htdocs/custom/</code> : on doit obtenir <code>htdocs/custom/ultimateqrcode/</code>
# Trouver le module '''UltimateQRcode''' dans la section ''Atoo-Net'' et l'activer
# Trouver le module '''UltimateQRcode''' dans la liste et l'activer
# Les droits sont à configurer par groupe d'utilisateurs (voir [[#Droits_et_permissions|Droits et permissions]])
# Attribuer les droits aux utilisateurs ou aux groupes (voir [[#Droits et permissions|Droits et permissions]])
 
: '''Mise à jour depuis une version antérieure :''' remplacer le dossier <code>ultimateqrcode</code>, puis '''désactiver et réactiver''' le module pour que Dolibarr recharge les onglets et les droits.


----
----
Line 33: Line 60:
= Configuration du module =
= Configuration du module =


Accéder à la configuration via '''Accueil → Configuration → Modules/Applications → UltimateQRcode''' (icône clé) ou directement via le menu d'administration.
Accéder à la configuration via '''Accueil → Configuration → Modules/Applications → UltimateQRcode''' (icône engrenage).


La page de configuration comporte trois onglets.
La page de configuration comporte quatre onglets : '''QR codes''', '''QR avec logo''', '''Guide utilisateur''' et '''À propos'''.


== Onglet « QR codes » (générateur libre) ==
== Onglet « QR codes » (générateur libre) ==


[[File:Ultimateqrcode-admin-qrcodes-fr.png|center|900px|Générateur de QR code libre]]
[[File:Ultimateqrcode-v25-admin-qrcodes-fr.png|center|900px|Générateur de QR code libre]]


Cet onglet propose un '''générateur de QR code à la demande''' :
Cet onglet est un '''générateur de QR code à la demande''' : le QR code créé ici n'est rattaché à aucune fiche Dolibarr et peut encoder n'importe quel contenu.


{| class="wikitable"
{| class="wikitable"
! Champ !! Description
! Champ !! Description
|-
|-
| '''Data''' || Le contenu à encoder : URL, adresse e-mail, texte libre, vCard, etc.
| '''Saisissez ici les données à afficher dans le QR code''' || Le contenu à encoder : URL, adresse e-mail, numéro de téléphone, texte libre…
|-
|-
| '''ECC''' || Niveau de correction d'erreur :<br/>• '''L''' (≈7% — smallest) : taille minimale<br/>• '''M''' (≈15%) : usage courant<br/>• '''Q''' (≈25%) : bonne résistance<br/>• '''H''' (≈30% — best) : très résistant (recommandé avec logo)
| '''Qualité''' || Niveau de correction d'erreur :<br/>• '''Basse''' (L, ≈ 7 %) : QR code le plus compact<br/>• '''Moyenne''' (M, ≈ 15 %) : usage courant<br/>• '''Intermédiaire''' (Q, ≈ 25 %) : bonne résistance<br/>• '''Haute''' (H, ≈ 30 %) : très résistant aux salissures et aux rayures
|-
|-
| '''Size''' || Taille du point (de 1 à 10 pixels par module QR)
| '''Taille''' || De 1 à 10 pixels par module du QR code
|-
|-
| Bouton '''GENERATE''' || Génère et affiche immédiatement le QR code
| Bouton '''GÉNÉRER''' || Génère et affiche le QR code
|-
| Bouton '''IMPRIMER L'ÉTIQUETTE''' || Ouvre le QR code sur une étiquette de 120 × 57 mm (voir [[#Impression d'étiquette|Impression d'étiquette]])
|}
|}
Cliquer sur '''Comme ceci''' dans le texte d'aide pour voir un exemple de génération.


== Onglet « QR avec logo » ==
== Onglet « QR avec logo » ==


[[File:Ultimateqrcode-admin-qrwithlogo-fr.png|center|900px|Générateur QR avec logo intégré]]
[[File:Ultimateqrcode-v25-admin-qrwithlogo-fr.png|center|900px|Générateur de QR code avec logo]]


Cet onglet permet de générer un '''QR code avec un logo inséré au centre''' :
Cet onglet crée un '''QR code libre portant un logo en son centre'''. Les QR codes générés sont conservés dans le dossier temporaire du module et peuvent être réaffichés, imprimés ou supprimés.


{| class="wikitable"
{| class="wikitable"
! Champ !! Description
! Élément !! Description
|-
| '''Saisissez ici les données à afficher dans le QR code''' || URL ou contenu à encoder
|-
|-
| '''Data''' || URL ou contenu à encoder (par défaut : https://www.atoo-net.com/)
| '''Taille''' || De 2 à 10, contrôle la résolution de l'image
|-
|-
| '''Taille''' || De 1 à 10 — contrôle la résolution de l'image générée
| '''Tableau des logos''' || Logos disponibles dans <code>documents/mycompany/logos/</code>, avec taille, date, aperçu (loupe), renommage et suppression. Le bouton radio choisit le logo à intégrer
|-
|-
| '''Choisir un fichier''' || Logo PNG à intégrer au centre du QR code
| Bouton '''GÉNÉRER''' || Crée le QR code avec le logo choisi
|-
|-
| Bouton '''GENERATE''' || Génère le QR code avec le logo et le sauvegarde
| '''ENVOYER FICHIER''' || Ajoute un nouveau logo (PNG conseillé)
|-
|-
| '''Sélectionner un QR code à afficher''' || Choisir parmi les QR déjà générés pour l'afficher
| '''Sélectionnez un QR code à afficher''' + '''AFFICHER''' || Réaffiche un QR code déjà généré
|-
|-
| Bouton '''AFFICHER''' || Affiche le QR code sélectionné
| Icône '''corbeille''' || Supprime le QR code sélectionné, après confirmation
|-
|-
| Icône '''corbeille''' || Supprime le fichier QR sélectionné (avec confirmation)
| Bouton '''IMPRIMER L'ÉTIQUETTE''' || Imprime le QR code affiché sur une étiquette de 120 × 57 mm
|}
|}


La section '''Logos téléchargés''' liste tous les fichiers PNG déposés, avec leur taille et date d'upload. Un bouton de suppression est disponible sur chaque ligne.
: '''Note :''' la correction d'erreur est '''forcée en qualité Haute''', car le logo masque une partie de la matrice.
 
== Onglet « Guide utilisateur » ==
 
[[File:Ultimateqrcode-v25-admin-guide-fr.png|center|900px|Guide utilisateur intégré]]


{{Note|Le niveau ECC conseillé pour un QR avec logo est '''H''' (30%), car le logo masque une partie du code — la correction d'erreur compense.}}
Le guide utilisateur complet est consultable directement dans Dolibarr, dans la langue de l'utilisateur (français, anglais, allemand, espagnol ou italien).


== Onglet « À propos » ==
== Onglet « À propos » ==


Affiche les informations sur la version du module, l'auteur et le lien vers la documentation.
Affiche la version du module, l'auteur, la licence et les liens vers la documentation.


----
----
Line 93: Line 126:
= Utilisation dans les fiches =
= Utilisation dans les fiches =


Le module ajoute un onglet '''QR code''' dans les fiches des objets suivants :
Le module ajoute un onglet '''QR code''' sur les fiches des 16 objets suivants :


{| class="wikitable"
{| class="wikitable"
!Object!!Added tab(s)
! Objet !! Onglet ajouté !! QR code vCard
|-
|Tiers ||QR code + QR-Url (onglets séparés)
|-
|-
|Contact||QR code
| Tiers || QR code || Oui
|-
|-
|Produit / Service||QR code
| Contact / Adresse || QR code || Oui
|-
|-
|Lot / Numéro de série||QR code
| Utilisateur || QR code || Oui
|-
|-
|Entrepôt||QR code
| Adhérent || QR code || Oui
|-
|-
|Proposal (Quote)||QR code
| Groupe d'utilisateurs || QR code ||
|-
|-
|Customer order||QR code
| Produit / Service || QR code ||
|-
|-
|Supplier order||QR code
| Lot / Numéro de série || QR code ||
|-
|-
|Customer invoice||QR code
| Entrepôt || QR code ||
|-
|-
|Supplier invoice||QR code
| Proposition commerciale || QR code ||
|-
|-
|Contract||QR code
| Commande client || QR code ||
|-
|-
|Intervention||QR code
| Commande fournisseur || QR code ||
|-
|-
|Project||QR code
| Facture client || QR code ||
|-
|-
|Member (foundation)||QR code
| Facture fournisseur || QR code ||
|-
|-
|User group||QR code
| Contrat || QR code ||
|-
|-
|User||QR code
| Intervention || QR code ||
|-
|-
| Projet || QR code ||
|}
|}


== Structure commune de l'onglet QR code ==
== Structure commune de l'onglet QR code ==


{{VersionBadge|v24}} Chaque onglet QR code est désormais organisé en '''cinq zones''' :
Chaque onglet QR code est organisé en '''cinq zones'''.


=== Zone 1 — Barre de réglages ===
=== Zone 1 — Barre de réglages ===


[[File:Ultimateqrcode-v24-settings-panel-fr.png|center|900px|Panneau de réglages : taille, qualité ECC et sélection du logo]]
En haut de l'onglet, une barre de réglages permet de choisir :
 
En haut de chaque onglet QR code, une barre de réglages permet de configurer :


{| class="wikitable"
{| class="wikitable"
! Réglage !! Description
! Réglage !! Description
|-
|-
| '''Taille''' || Résolution du QR code (de 2 à 10 pixels par module). Plus la valeur est élevée, plus le QR code est grand et lisible.
| '''Taille''' || Résolution du QR code, de 2 à 10 pixels par module
|-
|-
| '''Qualité (ECC)''' || Niveau de correction d'erreur : Basse (L ≈ 7%), Moyenne (M ≈ 15%), Intermédiaire (Q ≈ 25%), Haute (H ≈ 30%).
| '''Qualité''' || Correction d'erreur : Basse (L), Moyenne (M), Intermédiaire (Q) ou Haute (H)
|-
|-
| '''Logo''' || Logo PNG intégré au centre du QR code, sélectionnable parmi les logos uploadés.
| '''Logo''' || Logo à intégrer au centre du QR code, choisi dans le tableau de la zone 2
|}
|}


{{Note|Quand un logo est sélectionné, la qualité ECC est automatiquement '''forcée à Haute (H)''' pour garantir la lisibilité malgré le logo. La mention ''(Forcé en Haute avec un logo)'' s'affiche à côté du sélecteur.}}
: '''Note :''' dès qu'un logo est sélectionné, la qualité est '''forcée en Haute (H)''' et la mention ''(Forcé en Haute avec un logo)'' s'affiche à côté du sélecteur.


Ces réglages sont sauvegardés '''indépendamment par type d'objet''' (facture, devis, commande, etc.) et s'appliquent aux deux QR codes affichés (données et URL).
Ces réglages sont enregistrés '''par type d'objet''' (factures, propositions, commandes…) et s'appliquent à tous les QR codes de l'onglet.


=== Zone 2 — Tableau de sélection du logo ===
=== Zone 2 — Tableau de sélection du logo ===


Le tableau liste les logos disponibles dans le répertoire <code>documents/mycompany/logos/</code> :
Le tableau liste les logos du dossier <code>documents/mycompany/logos/</code> :


{| class="wikitable"
{| class="wikitable"
! Colonne !! Description
! Colonne !! Description
|-
|-
| '''Radio''' || Bouton radio pour sélectionner le logo (ou « ''Aucun logo'' »)
| '''Bouton radio''' || Sélectionne le logo, ou « ''Aucun logo'' »
|-
|-
| '''Logo''' || Nom du fichier PNG avec icône d'aperçu
| '''Logo''' || Nom du fichier
|-
|-
| '''Taille''' || Taille du fichier en octets
| '''Taille''' || Taille du fichier en octets
|-
|-
| '''Date''' || Date du dernier upload
| '''Date''' || Date d'envoi du fichier
|-
|-
| '''Aperçu''' || Icône loupe pour prévisualiser le logo
| '''Aperçu''' || Loupe pour afficher le logo
|-
|-
| '''Actions''' || Icônes renommer et supprimer
| '''Actions''' || Renommer et supprimer
|}
|}


Un formulaire d'upload en bas de page permet d'ajouter de nouveaux logos PNG.
Un formulaire en bas de page permet d'envoyer de nouveaux logos.


{{Note|'''Sécurité :''' si le logo est trop grand par rapport à la capacité du QR code, le module bascule automatiquement en mode sans logo pour éviter une erreur. Un message est enregistré dans les logs Dolibarr.}}
: '''Sécurité :''' si le logo est trop grand par rapport à la capacité du QR code, le module génère le QR code sans logo au lieu de provoquer une erreur, et consigne l'incident dans le journal Dolibarr.


=== Zone 3 — QR code de données configurables ===
=== Zone 3 — QR code des données ===


[[File:Ultimateqrcode-thirdparty-qrcode-top-fr.png|center|900px|Onglet QR code d'un tiers — sélection des champs]]
[[File:Ultimateqrcode-v25-thirdparty-qrcode-fr.png|center|900px|Onglet QR code d'un tiers : champs, QR code des données, QR code de l'URL et QR code vCard]]


L'utilisateur choisit les '''champs à inclure dans le QR code''' via des cases à cocher :
Vous choisissez les '''champs à encoder''' en les cochant :


* La colonne de gauche contient la case à cocher
* la case à cocher inclut ou exclut le champ ;
* La colonne centrale indique le libellé du champ et sa valeur actuelle (grisée si non cochée)
* la colonne centrale affiche le libellé et la valeur actuelle du champ (grisée s'il n'est pas coché) ;
* La colonne de droite affiche le '''QR code généré''' (avec ou sans logo selon la sélection)
* le QR code généré s'affiche à côté du tableau, avec ou sans logo, accompagné du bouton '''IMPRIMER L'ÉTIQUETTE'''.


Les champs disponibles dépendent de l'objet :
Champs proposés selon l'objet :


{| class="wikitable"
{| class="wikitable"
! Objet !! Champs disponibles
! Objet !! Champs disponibles
|-
|-
| Tiers || Société, Adresse, Code postal, Ville, Pays, Téléphone, Email, URL + Champs extra
| Tiers || Société, Adresse, Code postal, Ville, Pays, Téléphone, Email, URL
|-
| Contact || Prénom, Nom, Téléphone, Tél. portable, Email, Adresse, Code postal, Ville, Pays, URL
|-
| Utilisateur || Identifiant, Prénom, Nom, Téléphone, Tél. portable, Email, Adresse, Code postal, Ville, Pays, URL
|-
| Adhérent || Prénom, Nom, Téléphone, Tél. perso, Email, Adresse, Code postal, Ville, Pays, URL
|-
| Groupe d'utilisateurs || Nom du groupe, Description, URL
|-
| Produit / Service || Réf., Libellé, Description, Prix HT, Prix TTC, Code-barres, Poids, Volume, URL
|-
| Lot / Numéro de série || Lot/Série, Date limite de consommation, Date limite de vente, URL
|-
| Entrepôt || Libellé, Nom court de l'emplacement, Description, Adresse, Code postal, Ville, Pays, URL
|-
| Proposition commerciale || Réf., Réf. client, Société, Email, Téléphone, Date, Date de fin de validité, Total HT, Total TTC, Note publique, URL
|-
| Commande client || Réf., Réf. client, Société, Email, Téléphone, Date, Total HT, Total TTC, Note publique, URL
|-
|-
| Produit || Réf., Libellé, Description, Prix HT, Prix TTC, Code-barres, Poids, Volume, URL + Champs extra
| Commande fournisseur || Réf., Réf. fournisseur, Société, Email, Téléphone, Date, Total HT, Total TTC, Note publique, URL
|-
|-
| Entrepôt || Libellé, Nom court de l'emplacement, Description, Adresse, Code postal, Ville, Pays, URL + Champs extra
| Facture client || Réf., Réf. client, Société, Email, Téléphone, Date facturation, Date limite règlement, Total HT, Total TTC, Note publique, URL
|-
|-
| Utilisateur || Identifiant, Prénom, Nom, Téléphone, Tél. portable, Email, Adresse, Code postal, Ville, Pays, URL + Champs extra
| Facture fournisseur || Réf., Réf. fournisseur, Société, Email, Téléphone, Date facturation, Date limite règlement, Total HT, Total TTC, Note publique, URL
|-
|-
| Contact || Civilité, Prénom, Nom, Société, Poste, Téléphone, Mobile, Email, Adresse, etc.
| Contrat || Réf., Réf. client, Réf. fournisseur, Société, Email, Téléphone, Date du contrat, Note publique, URL
|-
|-
| Facture || Réf., Réf. client, Société, Email, Téléphone, Date facturation, Date limite règlement, Total HT, Total TTC, Note publique, URL
| Intervention || Réf., Société, Email, Téléphone, Date, Description, URL
|-
|-
| (autres) || Champs spécifiques à chaque objet
| Projet || Réf., Libellé du projet, Société, Email, Téléphone, Date de début, Date de fin, Note publique, URL
|}
|}


{{Note|Les '''champs extra''' (attributs complémentaires) définis dans Dolibarr sont automatiquement ajoutés à la liste des champs disponibles.}}
: '''Note :''' les '''attributs supplémentaires''' (extrafields) renseignés sur la fiche sont ajoutés automatiquement à la liste, sous la forme ''Champ supplémentaire : libellé''. Ceux créés par d'autres modules sont ignorés.
 
Le QR code affiché est '''cliquable''' : un clic ouvre la fenêtre d'[[#Impression_d.27étiquette|impression d'étiquette]].
 
=== Zone 4 — QR code URL de la fiche ===
 
[[File:Ultimateqrcode-thirdparty-qrcode-bottom-fr.png|center|900px|Onglet QR code — partie basse avec QR URL et boutons Save/Cancel]]


La partie basse affiche :
=== Zone 4 — QR code de l'URL de la fiche ===


* Le libellé '''URL de la fiche [objet]'''
À droite (ou sous le tableau selon la largeur de l'écran), l'onglet affiche :
* Le lien cliquable vers la fiche Dolibarr
* Un second '''QR code encodant l'URL directe''' vers la fiche (également cliquable pour l'impression d'étiquette)
* Les boutons '''ENREGISTRER''' et '''ANNULER'''


=== Zone 5 — QR code vCard (Contact, Utilisateur, Tiers, Adhérent) ===
* le libellé '''URL de la fiche''' suivi d'un lien vers la fiche ;
* un second '''QR code encodant l'URL directe''' de la fiche, lui aussi imprimable sur étiquette ;
* en bas de page, les boutons '''ENREGISTRER''' et '''ANNULER'''.


[[File:Ultimateqrcode-v24-contact-vcard-fr.png|center|900px|QR code vCard sur une fiche contact]]
=== Zone 5 — QR code vCard (Tiers, Contact, Utilisateur, Adhérent) ===


Les fiches '''Contact''', '''Utilisateur''', '''Tiers''' (société) et '''Adhérent''' disposent d'un '''QR code vCard''' supplémentaire en bas de page.
[[File:Ultimateqrcode-v25-contact-vcard-fr.png|center|900px|QR code vCard sur une fiche contact]]


Scanner ce QR code avec un smartphone permet d'ajouter le contact directement dans le répertoire téléphonique. Le contenu vCard encodé est affiché en clair sous le QR code.
Les fiches '''Tiers''', '''Contact''', '''Utilisateur''' et '''Adhérent''' affichent en plus un '''QR code vCard'''. Scanné avec un smartphone, il propose d'ajouter directement le contact au répertoire. Le contenu vCard 3.0 encodé est affiché en clair à côté du QR code.


=== Aperçu dynamique (Live Preview) ===
=== Aperçu dynamique ===


{{VersionBadge|v24}} Les QR codes se mettent à jour '''en temps réel''' lorsque l'utilisateur modifie :
Les QR codes se mettent à jour '''en temps réel''' quand vous changez :
* la taille du QR code
* la taille ;
* le niveau de qualité ECC
* la qualité ;
* le logo sélectionné
* le logo ;
* les champs cochés (QR de données)
* les champs cochés.


'''Aucun rechargement de page n'est nécessaire.''' L'aperçu utilise une requête AJAX avec un délai de 300 ms pour éviter les appels excessifs. Cette fonctionnalité est disponible sur les '''16 pages QR''' du module.
'''Aucun rechargement de page n'est nécessaire.''' L'aperçu passe par une requête AJAX déclenchée 300 ms après la dernière modification. Il fonctionne sur les 16 onglets QR code.


=== Sélection automatique des champs par défaut ===
=== Sélection automatique des champs par défaut ===


Au premier affichage (aucune configuration enregistrée), le module sélectionne automatiquement les champs dont la valeur est non vide. Cela garantit un QR code pertinent dès la première ouverture.
Au premier affichage, tant qu'aucune configuration n'a été enregistrée, le module coche automatiquement les champs renseignés sur la fiche. Le QR code est ainsi pertinent dès la première ouverture.


=== Enregistrement de la configuration ===
=== Enregistrement de la configuration ===


Cocher/décocher les champs souhaités puis cliquer sur '''ENREGISTRER'''. La sélection est sauvegardée et s'applique à '''tous les objets du même type''' (une configuration par type d'objet, globale).
Cochez ou décochez les champs, puis cliquez sur '''ENREGISTRER'''. La sélection s'applique à '''tous les objets du même type''' (une configuration par type d'objet).


----
----
Line 257: Line 298:
== Facture client ==
== Facture client ==


{{VersionBadge|v24}}
[[File:Ultimateqrcode-v25-invoice-qrcode-fr.png|center|900px|Onglet QR code d'une facture avec logo intégré]]
 
[[File:Ultimateqrcode-v24-invoice-qr-complete-fr.png|center|900px|Onglet QR code d'une facture avec logo intégré]]


Exemple de configuration pour une facture client : '''Réf.''', '''Société''', '''Email''', '''Téléphone''', '''Date facturation''', '''Date limite règlement''', '''Total HT''' et '''Total TTC''' cochés. Le logo ''expert_dolibarr.png'' est sélectionné et intégré au centre du QR code. La qualité ECC est automatiquement forcée à Haute (H).
Exemple sur une facture client : '''Réf.''', '''Société''', '''Email''', '''Téléphone''', '''Date facturation''', '''Date limite règlement''', '''Total HT''', '''Total TTC''' et '''URL''' sont cochés. Le logo ''expert_dolibarr.png'' est intégré au centre des deux QR codes et la qualité est forcée en Haute (H).


== Produit ==
== Produit ==


[[File:Ultimateqrcode-product-qrcode-fr.png|center|900px|Onglet QR code d'un produit]]
[[File:Ultimateqrcode-v25-product-qrcode-fr.png|center|900px|Onglet QR code d'un produit]]


Exemple de configuration pour un produit : '''Réf.''' et '''Libellé''' cochés, ainsi que les champs extra '''Ecotax''' et '''ControlHistoryLink'''. Le QR encode ces quatre valeurs concaténées.
Sur un produit, le QR code peut encoder la référence, le libellé, les prix, le code-barres, le poids et le volume : pratique pour l'étiquetage en rayon ou en réserve.


== Entrepôt ==
== Entrepôt ==


[[File:Ultimateqrcode-stock-qrcode-fr.png|center|900px|Onglet QR code d'un entrepôt]]
[[File:Ultimateqrcode-v25-stock-qrcode-fr.png|center|900px|Onglet QR code d'un entrepôt]]


Utile pour l'identification physique des emplacements de stockage. Le champ '''Nom court de l'emplacement''' (lieu) permet de préciser la zone de stockage.
Utile pour identifier physiquement les emplacements de stockage. Le champ '''Nom court de l'emplacement''' précise la zone (allée, rack…).


== Utilisateur ==
== Utilisateur ==


[[File:Ultimateqrcode-user-qrcode-fr.png|center|900px|Onglet QR code d'un utilisateur]]
Le QR code utilisateur encode les coordonnées professionnelles (identifiant, prénom, nom, téléphones, email, adresse…), et le QR code vCard permet de les ajouter à un répertoire. Pratique pour les badges ou les cartes de visite internes.
 
Le QR code utilisateur encode les informations de contact (identifiant, prénom, nom, téléphone, mobile, email, pays...). Pratique pour les badges ou cartes de visite internes.


{{Note|L'onglet QR code de l'utilisateur n'est visible que par l'utilisateur lui-même ou par les utilisateurs ayant le droit de lire les fiches utilisateurs.}}
: '''Note :''' l'onglet QR code d'un utilisateur n'est visible que par l'utilisateur lui-même ou par ceux qui ont le droit de lire les fiches utilisateurs.


----
----


= Onglet QR-Url (Tiers uniquement) =
= Image de QR code réutilisable (QR avec logo) =
 
[[File:Ultimateqrcode-thirdparty-qrurl-fr.png|center|900px|Onglet QR-Url d'un tiers avec logo]]
 
Les fiches Tiers disposent d'un '''second onglet QR''' appelé '''QR-Url''', spécialisé dans la génération de QR codes '''avec logo intégré''' encodant l'URL de la fiche.


Fonctionnalités :
Pour obtenir une '''image de QR code avec logo''' à réutiliser ailleurs (site web, plaquette, signature d'e-mail), utilisez l'onglet d'administration '''QR avec logo''' :


{| class="wikitable"
# saisissez l'URL de la fiche ou tout autre contenu dans la zone de saisie ;
! Élément !! Fonction
# choisissez la taille et le logo, puis cliquez sur '''GÉNÉRER''' ;
|-
# réaffichez le QR code à tout moment avec '''Sélectionnez un QR code à afficher''', imprimez-le ou supprimez-le.
| '''Taille''' (1-10) || Résolution du QR code généré
|-
| '''Choisir un fichier''' + '''TÉLÉCHARGER LE LOGO''' || Uploader un logo PNG à intégrer au centre
|-
| '''Sélectionner un QR code à afficher''' || Choisir parmi les QR déjà générés pour ce tiers
|-
| Bouton '''AFFICHER''' || Affiche le QR sélectionné
|-
| Section '''Logos téléchargés''' || Liste des logos disponibles avec téléchargement et suppression
|}


Le QR affiché encode l'URL de la fiche du tiers, avec le logo choisi inséré au centre de l'image.
: '''Note :''' l'ancien onglet « QR-Url » des tiers, qui n'était plus déclaré par le module, a été retiré. Le QR code de l'URL de la fiche reste disponible dans la zone 4 de chaque onglet QR code.


----
----
Line 313: Line 336:
= Impression d'étiquette =
= Impression d'étiquette =


[[File:Ultimateqrcode-label-print-fr.png|center|700px|Fenêtre d'impression d'étiquette 120×57mm]]
[[File:Ultimateqrcode-v25-label-print-fr.png|center|466px|Étiquette de 120 × 57 mm]]


Cliquer sur un QR code dans n'importe quel onglet ouvre une '''fenêtre contextuelle d'impression''' optimisée pour les étiquettes au format '''120 × 57 mm''' (compatible avec les imprimantes d'étiquettes standard).
Le bouton '''IMPRIMER L'ÉTIQUETTE''', ou un clic sur un QR code, ouvre une '''fenêtre d'impression''' au format '''120 × 57 mm''', adapté aux imprimantes d'étiquettes courantes.


L'étiquette contient :
L'étiquette d'une fiche contient :
* '''À gauche''' : le QR code de données configurables
* '''à gauche''' : le QR code des données ;
* '''Au centre''' : les informations textuelles clés (référence, libellé, nom, etc. selon l'objet)
* '''au centre''' : les informations clés de la fiche (référence, tiers, total…, selon l'objet) ;
* '''À droite''' : le QR code URL de la fiche
* '''à droite''' : le QR code de l'URL de la fiche.


La fenêtre déclenche automatiquement la boîte de dialogue d'impression du navigateur.
Les générateurs des onglets '''QR codes''' et '''QR avec logo''' impriment de la même façon le QR code qu'ils viennent de créer.


{{Note|Pour une impression optimale sur étiquettes adhésives, configurer l'imprimante sur le format 120×57mm et désactiver les marges dans les options d'impression du navigateur.}}
La fenêtre ouvre automatiquement la boîte de dialogue d'impression du navigateur.
 
: '''Note :''' pour une impression optimale sur étiquettes adhésives, réglez l'imprimante sur le format 120 × 57 mm et supprimez les marges dans les options d'impression du navigateur.


----
----
Line 330: Line 355:
= Droits et permissions =
= Droits et permissions =


[[File:Ultimateqrcode-permissions-fr.png|center|700px|Droits du module UltimateQRcode]]
[[File:Ultimateqrcode-v25-permissions-fr.png|center|900px|Droits du module UltimateQRcode]]


Le module définit deux niveaux de droits, à attribuer par groupe d'utilisateurs dans '''Configuration → Groupes et utilisateurs''' :
Le module définit deux droits, à attribuer par utilisateur ou par groupe dans '''Utilisateurs & Groupes''' :


{| class="wikitable"
{| class="wikitable"
! Droit !! Description !! Effet
! Droit !! Effet
|-
|-
| '''Read qrcode outcomes''' || Lire les QR codes || Permet de voir les onglets QR code et d'afficher les QR générés
| '''Lire les QR codes''' || Affiche les onglets QR code et les QR codes générés
|-
|-
| '''Create/Modify qrcode outcomes''' || Créer / Modifier || Permet de cocher/décocher les champs et d'enregistrer la configuration
| '''Créer / Modifier les QR codes''' || Permet de cocher ou décocher les champs et d'enregistrer la configuration
|}
|}


{{Note|Sans le droit '''Read''', les onglets QR code ne sont pas visibles. Sans le droit '''Write''', l'utilisateur voit les QR codes mais ne peut pas modifier la sélection des champs.}}
: '''Note :''' sans le droit de lecture, les onglets QR code ne sont pas visibles. Sans le droit de modification, l'utilisateur voit les QR codes mais ne peut pas changer la sélection des champs. L'envoi, le renommage et la suppression des logos sont réservés aux administrateurs.


----
----


= Nouveautés et compatibilité v24 =
= Nouveautés et compatibilité v25 =


{{VersionBadge|v24}} Le module UltimateQRcode version 24 apporte les évolutions suivantes :
La version 25.0.0 aligne UltimateQRcode sur Dolibarr 25.


== Nouvelles fonctionnalités ==
{| class="wikitable"
! Évolution !! Détail
|-
| '''Versions minimales''' || Dolibarr 25.0.0 et PHP 8.2
|-
| '''PHP 8.4 et 8.5''' || Aucune dépréciation émise par le module : propriétés du descripteur alignées sur le core, page « À propos » sans avertissement
|-
| '''Onglets de paiement''' || Les onglets « QR code » des paiements clients et fournisseurs, qui pointaient vers des pages inexistantes (erreur 404), ont été retirés
|-
| '''Onglet QR-Url''' || La page orpheline de l'ancien onglet QR-Url des tiers a été supprimée ; la documentation renvoie vers l'onglet '''QR avec logo'''
|-
| '''Droits traduits''' || Les deux droits s'affichent désormais dans la langue de l'utilisateur (« Lire les QR codes », « Créer / Modifier les QR codes »)
|-
| '''Affichage vCard''' || Le contenu vCard et les adresses sur plusieurs lignes s'affichent correctement, sans « \n » visible ni débordement de la page
|-
| '''Attributs supplémentaires''' || Le libellé « Champ supplémentaire » est traduit (il s'affichait « ExtraField »)
|-
| '''Guide utilisateur''' || Nouvel onglet d'administration affichant le guide complet dans les 5 langues
|-
| '''Intégration continue''' || Chaque fichier PHP du module est vérifié par <code>php -l</code> sous PHP 8.4 et 8.5
|}
 
== Historique v24 ==
 
=== Nouvelles fonctionnalités v24 ===


{| class="wikitable"
{| class="wikitable"
! Fonctionnalité !! Description
! Fonctionnalité !! Description
|-
|-
| '''Réglages par page''' || Taille, qualité ECC et logo configurables directement sur chaque fiche QR code
| '''Réglages par fiche''' || Taille, qualité et logo configurables directement dans chaque onglet QR code
|-
|-
| '''Logo intégré''' || Possibilité d'intégrer un logo PNG au centre de chaque QR code, sur toutes les pages
| '''Logo intégré''' || Logo PNG au centre de chaque QR code, sur toutes les pages
|-
|-
| '''Aperçu dynamique''' || Mise à jour en temps réel des QR codes lors du changement de taille, ECC, logo ou champs cochés (AJAX, sans rechargement)
| '''Aperçu dynamique''' || Mise à jour des QR codes en temps réel lors du changement de taille, de qualité, de logo ou de champs cochés
|-
|-
| '''QR code vCard''' || QR code vCard pour les contacts, utilisateurs, tiers et adhérents permettant l'ajout direct dans le répertoire téléphonique
| '''QR code vCard''' || Pour les tiers, contacts, utilisateurs et adhérents
|-
|-
| '''Gestion des logos''' || Upload, aperçu, renommage et suppression des logos depuis l'interface de chaque fiche
| '''Gestion des logos''' || Envoi, aperçu, renommage et suppression des logos depuis chaque fiche
|}
|}


== Compatibilité Dolibarr v24 ==
=== Compatibilité Dolibarr v24 ===


{| class="wikitable"
{| class="wikitable"
! Correction !! Détail
! Correction !! Détail
|-
|-
| '''Picto du module''' || Ajout de l'extension <code>.png</code> dans la propriété <code>$this->picto</code> du descripteur de module, conformément à l'avertissement Dolibarr v23+.
| '''Picto du module''' || Ajout de l'extension <code>.png</code> dans la propriété <code>$this->picto</code> du descripteur
|-
|-
| '''Devise''' || Remplacement de <code>$conf->currency</code> (déprécié) par <code>getDolCurrency()</code>.
| '''Devise''' || <code>getDolCurrency()</code> au lieu de <code>$conf->currency</code> (déprécié)
|-
|-
| '''Constantes''' || Remplacement de l'écriture directe <code>$conf->global->XXX = value</code> (dépréciée) par <code>dolibarr_set_const()</code>.
| '''Constantes''' || <code>dolibarr_set_const()</code> au lieu de l'écriture directe dans <code>$conf->global</code>
|}
|}


== Corrections de bugs ==
=== Corrections de bugs v24 ===


{| class="wikitable"
{| class="wikitable"
! Bug !! Correction
! Bug !! Correction
|-
|-
| Onglet facture non trouvé || Correction de la casse de la clé d'onglet dans le descripteur de module.
| Onglet facture introuvable || Casse de la clé d'onglet corrigée dans le descripteur
|-
|-
| Paramètre admin obsolète || Suppression du paramètre « Taille d'affichage des QR codes (en pixels) » devenu inutile avec le réglage de taille directement sur chaque fiche.
| Paramètre d'administration obsolète || Suppression de « Taille d'affichage des QR codes (en pixels) », remplacé par le réglage de taille de chaque fiche
|-
|-
| Débordement logo || Ajout d'un mécanisme try/catch pour gérer le dépassement de capacité quand le logo est trop grand : bascule automatique en mode sans logo.
| Logo trop grand || Bascule automatique en mode sans logo au lieu d'une erreur
|}
|}


== Traductions ==
=== Traductions v24 ===


Ajout des clés de traduction manquantes dans les '''5 fichiers de langue''' (FR, EN, DE, ES, IT) pour les nouvelles fonctionnalités : sélection de qualité ECC, gestion du logo, et tous les types d'objets.
Clés de traduction manquantes ajoutées dans les 5 langues (FR, EN, DE, ES, IT) : qualité, gestion du logo et tous les types d'objets.


----
----
Line 398: Line 447:
= FAQ =
= FAQ =


; '''Le QR code est vide ou affiche "Aucune donnée"'''
; '''Le QR code est vide ou affiche « Aucune donnée »'''
: Aucun champ n'est coché, ou tous les champs cochés ont une valeur vide dans la fiche. Cocher au moins un champ avec une valeur et cliquer sur ENREGISTRER.
: Aucun champ n'est coché, ou les champs cochés sont vides sur la fiche. Cochez au moins un champ renseigné et cliquez sur ENREGISTRER.


; '''L'étiquette ne s'imprime pas à la bonne taille'''
; '''L'étiquette ne s'imprime pas à la bonne taille'''
: Vérifier que le format papier de l'imprimante est bien configuré en 120×57mm. Désactiver les marges dans les options d'impression du navigateur.
: Vérifiez que le format de papier de l'imprimante est réglé sur 120 × 57 mm et supprimez les marges dans les options d'impression du navigateur.


; '''Les champs extra n'apparaissent pas'''
; '''Les attributs supplémentaires n'apparaissent pas'''
: Les attributs complémentaires doivent être définis dans '''Configuration → Attributs complémentaires''' pour l'objet concerné.
: Seuls les attributs '''renseignés''' sur la fiche sont proposés. Ils se définissent dans la configuration du module concerné (par exemple '''Tiers → Attributs supplémentaires''').


; '''Le QR avec logo n'est pas lisible'''
; '''Le QR code avec logo n'est pas lisible'''
: Le logo occupe trop de surface. Utiliser un logo plus petit (idéalement carré, moins de 100×100 pixels) ou augmenter le niveau ECC à '''H''' pour améliorer la correction d'erreur. Avec le module v24, la qualité ECC est automatiquement forcée à '''H''' quand un logo est sélectionné.
: Le logo occupe trop de surface. Utilisez un logo plus petit, idéalement carré. La qualité est déjà forcée en Haute (H) dès qu'un logo est sélectionné.


; '''Le QR code s'affiche sans logo alors que j'en ai sélectionné un'''
; '''Le QR code s'affiche sans logo alors que j'en ai sélectionné un'''
: Le logo est probablement trop volumineux par rapport au contenu encodé. Le module bascule automatiquement en mode sans logo pour éviter une erreur. Essayez avec un logo plus petit ou réduisez le nombre de champs cochés.
: Le logo est trop volumineux par rapport au contenu encodé : le module génère alors le QR code sans logo. Essayez un logo plus petit ou cochez moins de champs.


; '''Les QR codes ne se mettent pas à jour quand je change les réglages'''
; '''Les QR codes ne se mettent pas à jour quand je change les réglages'''
: L'aperçu dynamique nécessite JavaScript activé dans le navigateur. Vérifiez qu'aucun bloqueur de scripts n'est actif. Les QR codes se mettent à jour automatiquement 300 ms après chaque modification.
: L'aperçu dynamique nécessite JavaScript. Vérifiez qu'aucun bloqueur de scripts n'est actif.


; '''L'onglet QR code n'apparaît pas sur certaines fiches'''
; '''L'onglet QR code n'apparaît pas sur certaines fiches'''
: Vérifier que le module est bien activé et que l'utilisateur possède le droit '''Read qrcode outcomes'''.
: Vérifiez que le module est activé, que le module Dolibarr de l'objet l'est aussi, et que l'utilisateur possède le droit '''Lire les QR codes'''. Après une mise à jour, désactivez puis réactivez UltimateQRcode.
 
; '''Où est passé l'onglet QR-Url des tiers ?'''
: Il a été retiré. Le QR code de l'URL de la fiche figure dans l'onglet QR code (zone 4), et l'onglet d'administration '''QR avec logo''' crée des images réutilisables.


----
----
Line 423: Line 475:
= Voir aussi =
= Voir aussi =


* [[Module_Ultimateqrcode_EN|Module UltimateQRcode — English documentation]]
* [[Module_Ultimateqrcode_EN|English]]
* [https://www.dolistore.com Dolistore]
* [[Module_Ultimateqrcode_DE|Deutsch]]
* [[Module_Ultimateqrcode_ES|Español]]
* [[Module_Ultimateqrcode_IT|Italiano]]
* [https://www.dolistore.com/search.php?search_query=ultimateqrcode UltimateQRcode sur le DoliStore]
* [https://www.atoo-net.com Atoo-Net]
* [https://www.atoo-net.com Atoo-Net]
[[Category:Module externe]]
[[Category:QR Code]]
[[Category:Atoo-Net]]