Introduction #
Le système d’impression d’étiquettes offre la possibilité d’envoyer un message brut à une imprimante réseau sur demande. Ces messages peuvent être envoyés à partir de n’importe quel module, sous réserve d’une configuration appropriée.
Configuration #
ioi Module #
Pour activer la fonction d’impression d’étiquettes dans un module, activez le paramètre Manual labelling :

Une fois ce paramètre activé pour un module, le bouton suivant est disponible :

ioi Label Paper Format #
Chaque étiquette est associée à un format de papier. L’imprimante à étiquettes est également liée à un format de papier, permettant ainsi de tester la compatibilité avant l’impression.

Les dimensions numériques dans les champs Width et Height n’influencent pas l’impression réelle mais sont importantes pour une fonctionnalité ultérieure décrite dans ce document.
ioi Printer Model #
Chaque imprimante est associée à un modèle qui spécifie des caractéristiques telles que la marque, le modèle et la technologie d’impression. Pour la fonctionnalité présentée dans ce document, la technologie d’impression ZPL2 est utilisée.

ioi Printer #
Les informations suivantes sont renseignées pour chaque imprimante d’étiquettes :
- Modèle d’imprimante : La technologie d’impression de ce modèle devra être du ZPL2
- Adresse IP : Le “backend” de ioi lance l’impression.
Info
Cela signifie que l’adresse IP devra être accessible via le serveur ioi.
- Port : Par défaut, le port est 9100.
- Format du papier : Une vérification peut être effectuée avec une impression de test pour s’assurer que le format de papier de l’imprimante correspond à celui de l’étiquette.
Info
Si le format de papier de l’imprimante ne correspond pas à celui de l’étiquette, un message d’erreur demande à l’utilisateur de procéder au changement d’étiquette et ce, avant de lancer l’impression ou d’abandonner l’action.
- ZPL to PDF : Cette option a pour but d’imprimer des étiquettes ZPL en PDF. Le contenu de l’étiquette est envoyé à une API qui se charge de la conversion.
Info
Cette API a des limitations à l’utilisation. Le but recherché est principalement pour du testing. https://labelary.com/service.html#limits
Attention
Les dimensions numériques dans ioi Label Paper Format seront utilisées dans cette API. N’oubliez pas de les mentionner !
ioi Label Format #
Ce module est dédié à la création des étiquettes.
Options principales : #
-
Multiple printing : Coefficient multiplicateur d’impression (par défaut : 1)
-
Label Paper Format : Format de papier utilisé pour l’étiquette
-
For Doctype : Indique le type de document pour lequel l’étiquette est destinée (Article, adresse, client, etc.)
-
Site id : Si le filtre est activé et que le site est mentionné, l’impression de cette étiquette ne sera disponible que pour les utilisateurs étant sur ce site.
-
Division id : Si le filtre est activé et que la division est mentionnée, l’impression de cette étiquette ne sera disponible que pour les utilisateurs étant sur cette division.
-
Filter condition : La condition doit être formulée en format Python et doit renvoyer une valeur booléenne. L’object
src_docpermet d’accéder aux propriétés du document appelant →src_doc.ioistatus
Exemple :
frappe.utils.cint(src_doc.ioistatus) == 0 # test de l'état du document
From doctype : #
Une même étiquette peut être appelée à partir de différents types de documents (doctype). Cette grille permet de spécifier à partir de quel type de document l’étiquette peut être appelée.
-
Doctype : Nom du type de document appelant.
-
Type : Type de champ du document (
Document field,Detail field)- Le type de champ va déterminer comment le lien sera établi avec le paramètre
For DocType. Le but est de pouvoir faire un lien entre un champ du document appelant et un document du type mentionné dansFor DocType.
- Le type de champ va déterminer comment le lien sera établi avec le paramètre
-
Field name : Affiche les champs compatibles suivant le type de champ choisi.
- Si
Document field, il affiche les noms de champs du document appelant de type Link, liés au DocTypeFor DocType. - Si
Detail field, il affiche les noms de champs du document appelant de type Table qui possèdent au moins un champ Link, lié au DocTypeFor DocType. - Dans ce cas, le champ
Child field namen’affichera que les noms de champs du Doctype lié à la table de type Link, liés au DocTypeFor DocType.
- Si
-
Quantity field name : Optionnel, ce champ permet d’utiliser la valeur du champ mentionné comme nombre d’étiquette à imprimer. Le coefficient multiplicateur de l’étiquette est pris en compte.
-
Condition : La condition doit être formulée en format Python et doit renvoyer une valeur booléenne. Les objets suivants sont disponibles :
- master : Accès au document de type
For DocType. - src_doc : Accès au document qui déclenche l’impression. Ce document est soit le document appelant ou une ligne d’une table d’un document appelant, selon le
typechoisi. - src_p_doc : Si le
typeestDetail field,src_doccorrespond à la ligne.src_p_doccorrespond au document parent.
- master : Accès au document de type
Raw #
Format brut de l’étiquette. Comment pour les conditions, il sera possible d’intégrer de variables provenant des différentes sources (master, src_doc, src_p_doc, system)