# INFRASFILES

Génération de documents PDF, onglet « Fichiers joints » et envoi par email pour les objets Dolibarr qui n'en disposent pas nativement (bons de prélèvement / virement, inventaires).

# 01. PRÉSENTATION GÉNÉRALE

# Présentation du module

[![InfraSFiles.png](https://wiki.infras.fr/uploads/images/gallery/2026-09/MGSD0IlLuUkAcaZ1-infrasfiles.png)](https://wiki.infras.fr/uploads/images/gallery/2026-09/MGSD0IlLuUkAcaZ1-infrasfiles.png)

***InfraSFiles*** est un module optionnel de ***Dolibarr*** ERP &amp; CRM (versions 18 à 24) qui apporte, aux objets qui n'en disposent pas nativement, les trois fonctions habituelles des documents ***Dolibarr*** : la génération de PDF, l'onglet « Fichiers joints » et l'envoi par email.

Dans ***Dolibarr***, un devis, une commande ou une facture disposent d'une section « Fichiers joints » en bas de fiche pour générer un PDF, d'un onglet dédié aux fichiers et d'un bouton « Envoyer par email ». D'autres objets, pourtant très utilisés, n'ont rien de tout cela : c'est le cas des **bons de prélèvement / virement** et des **inventaires**. ***InfraSFiles*** comble ce manque sans modifier ***Dolibarr***.

#### **1.OBJECTIF**

Le module ajoute, sur la fiche native de chaque objet pris en charge :

- **La génération de documents PDF** : une section « Fichiers joints » en bas de la fiche, avec le choix du modèle et de la langue, exactement comme sur une facture.
- **L'onglet « Fichiers joints »** en haut de la fiche : fichiers générés ou déposés à la main, fichiers liés (URL), compteur affiché sur l'onglet.
- **L'envoi par email** depuis la fiche : dernier PDF pré-attaché, modèles de mails dédiés, destinataires proposés, événement enregistré dans l'agenda.

#### **2.DOCUMENTS PRIS EN CHARGE**

<table id="bkmrk-objetmodule-natif-re" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Objet

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Module natif requis

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Modèle PDF fourni

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Contenu

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Bons de prélèvement et de virement**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Prélèvement *ou* Virement (paiement par virement)

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">« bordereau »

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Créancier / donneur d'ordre, débiteur / bénéficiaire (tiers ou sa maison mère), IBAN, BIC, RUM, factures ou salaires concernés avec date, échéance, tiers facturé, avoirs appliqués, statut de chaque ligne, total et montant rejeté

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Inventaires**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Stock

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">« comptage »

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Feuille de comptage : informations de l'inventaire en en-tête, références regroupées par zone de stockage, case vide de relevé, colonne lot / série si besoin, quantité théorique masquée par défaut, zone « Compté par / Date / Signature »

</td></tr></tbody></table>

<p class="callout info">Avec le module ***InfraSPackPlus***, un second modèle est proposé pour chaque document (« InfraSPlus\_Bon » et « InfraSPlus\_INV ») : même contenu, mais avec la mise en page et les options d'***InfraSPackPlus***.</p>

#### **3.PRINCIPE DE FONCTIONNEMENT**

***InfraSFiles*** est un **socle générique** : chaque objet pris en charge est une simple déclaration dans un registre interne, accompagnée d'un modèle PDF. Les tables natives de ***Dolibarr*** ne sont **jamais modifiées** : le module mémorise dans sa propre table le dernier modèle utilisé et le dernier fichier généré pour chaque objet.

Toutes les fonctions sont **optionnelles et indépendantes, document par document** : on peut par exemple activer la génération PDF des bons de prélèvement sans l'envoi par email, et ne rien activer pour les inventaires.

Les fichiers produits sont stockés dans le répertoire de données du module et leur téléchargement est soumis au **droit de lecture natif** de l'objet concerné (droit de lecture des bons de prélèvement, droit de lecture des stocks).

#### **4.AVANTAGES**

- **Aucune modification du cœur de ***Dolibarr***** : le module s'appuie uniquement sur les mécanismes natifs (hooks, modèles de documents, formulaire d'envoi d'email).
- **Comportement identique aux documents natifs** : mêmes écrans, mêmes boutons, mêmes habitudes pour les utilisateurs.
- **Modulaire** : chaque document et chaque fonction s'active séparément.
- **Extensible** : un module tiers peut déclarer ses propres objets et fournir ses propres modèles (voir le chapitre *Compatibilité et modules tiers*).
- **Sauvegarde / restauration** de l'ensemble des paramètres du module.

#### **5.INFORMATIONS TECHNIQUES**

<table id="bkmrk-nom-du-moduleinfrasf" style="width: 100%; border-collapse: collapse; margin: 15px 0px;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Nom du module**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">***InfraSFiles*** (libellé « Documents et emails »)

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Numéro de module**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">550100

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Compatibilité Dolibarr**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">18.0.0 à 24.x

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Compatibilité PHP**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">7.4 à 8.4

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Licence**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">GNU GPL v3 ou supérieure

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Dépendance obligatoire**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Aucune (l'extension PHP *xml* est nécessaire à l'affichage du changelog)

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Langues**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Français, anglais, espagnol, italien

</td></tr></tbody></table>

**Éditeur** **:** ***InfraS*** - Sylvain Legrand - **Contact** **:** <support@infras.fr> - **Site web** **:** [https://www.infras.fr](https://www.infras.fr)

# 02. INSTALLATION ET ACTIVATION

# Installation et activation

#### **1.PRÉREQUIS**

- ***Dolibarr*** version **18.0.0 minimum**, jusqu'à la version 24. En dessous de la version 18, le module se désactive de lui-même ; au-delà de la version 24, un avertissement s'affiche à la connexion mais le module reste utilisable, sans garantie.
- PHP 7.4 à 8.4, avec l'extension *xml* chargée (nécessaire à la lecture du changelog).
- Au moins un des modules natifs concernés doit être activé pour que le document correspondant soit disponible : **Prélèvement** ou **Virement** (paiement par virement) pour les bons, **Stock** pour les inventaires. Sans le module natif, la ligne du document apparaît grisée dans les paramètres.

#### **2.INSTALLATION**

1. Téléchargez le module depuis le Dolistore ou le site InfraS
2. Décompressez l'archive dans le dossier « custom » de votre installation ***Dolibarr***  
    `<span class="editor-theme-code">htdocs/custom/infrasfiles</span>`
3. **OU** utilisez l'outil de déploiement des modules externes de ***Dolibarr*** (***Accueil &gt; Configuration &gt; Modules/Applications &gt; Déployer un module externe***)

#### **3.ACTIVATION**

1. Connectez-vous en tant qu'administrateur
2. Allez dans : ***Accueil &gt; Configuration &gt; Modules/Applications***
3. Recherchez « **Documents et emails** » (famille *Modules InfraS*)
4. Cliquez sur le bouton **« Activer »** (ON/OFF)
5. Cliquez ensuite sur l'icône de configuration pour ouvrir la page des paramètres

***Ce que fait l'activation***

Lors de l'activation, le module prépare automatiquement tout ce dont il a besoin, sans rien modifier aux tables natives :

- Création de sa table de suivi documentaire (dernier modèle et dernier fichier générés par objet).
- Création des répertoires de données `documents/infrasfiles/widthdraw` et `documents/infrasfiles/inventory`.
- Création, sur les fiches **tiers**, de l'attribut supplémentaire « Adresser les bordereaux de prélèvement / virement à la maison mère » (case à cocher, visible tant que le module est actif). Il sert au découpage des PDF par maison mère (voir le chapitre *Bons de prélèvement et de virement*).
- Création d'un **modèle d'email par défaut** pour chaque document (visible dans *Configuration &gt; Emails &gt; Modèles d'emails*), dans la langue de l'utilisateur qui active le module. Un modèle déjà présent n'est jamais écrasé.
- Déclaration des **événements automatiques d'agenda** « Bon de prélèvement / virement envoyé par email » et « Inventaire envoyé par email ».
- Restauration automatique des paramètres sauvegardés lors d'une précédente désactivation.

<p class="callout warning">**IMPÉRATIF :** Après toute mise à jour du module, vous **DEVEZ** : **Désactiver** le module / **Réactiver** le module.</p>

Cette opération est nécessaire pour appliquer les modifications de structure (table, attribut, modèles de mails, événements) nécessaires au bon fonctionnement de la nouvelle version. Les paramètres sont sauvegardés automatiquement à la désactivation et restaurés à la réactivation : rien n'est perdu.

#### **4.DÉSACTIVATION**

À la désactivation, le module **sauvegarde** l'ensemble de ses paramètres puis les retire de la configuration. Les fichiers PDF déjà générés, l'attribut « maison mère » des tiers et les modèles d'emails sont conservés : ils seront de nouveau utilisables dès la réactivation.

#### **5.ACCÈS AU MODULE**

Une fois activé, le module est accessible depuis deux endroits :

- ***Accueil &gt; Configuration &gt; Modules/Applications &gt; Documents et emails &gt; icône Configurer***
- ***Outils &gt; InfraS &gt; InfraSFiles***, avec deux entrées : **Changelog / Support** et **Paramètres InfraS**

La page d'administration comporte trois onglets : **Paramètres InfraS**, **À propos** et **Changelog / Support**.

# 03. PERMISSIONS ET DROITS D'ACCÈS

# Permissions

***InfraSFiles*** définit quatre permissions propres. Elles ne concernent que l'**administration** du module : l'utilisation quotidienne (générer un PDF, ouvrir l'onglet, envoyer un email) repose sur les **droits natifs** de chaque objet, décrits au point 5.

#### **1.PERMISSION « VOIR LE MENU DES PARAMÈTRES »**

<table id="bkmrk-codeparammenudescrip" style="width: 100%; border-collapse: collapse; margin: 15px 0px;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Code**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">paramMenu

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Description**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Affiche l'entrée *InfraSFiles* dans le menu *Outils &gt; InfraS* et donne accès aux pages Changelog / Support et À propos

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Par défaut**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**✓ OUI** (permission par défaut)

</td></tr></tbody></table>

#### **2.PERMISSION « MODIFIER LES PARAMÈTRES DU MODULE »**

<table id="bkmrk-codeparaminfrasfiles" style="width: 100%; border-collapse: collapse; margin: 15px 0px;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Code**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">paramInfraSFiles

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Description**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Permet d'ouvrir la page *Paramètres InfraS* et de modifier la configuration : activation des documents, options, modèles de documents

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Par défaut**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**✗ NON**

</td></tr></tbody></table>

#### **3.PERMISSION « SAUVEGARDER / RESTAURER LES PARAMÈTRES DU MODULE »**

<table id="bkmrk-codeparambkprestdesc" style="width: 100%; border-collapse: collapse; margin: 15px 0px;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Code**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">paramBkpRest

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Description**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Affiche le bloc Sauvegarder / Restaurer en haut de la page des paramètres

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Par défaut**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**✗ NON**

</td></tr></tbody></table>

#### **4.PERMISSION « TÉLÉCHARGER TOUS LES FICHIERS DU MODULE »**

<table id="bkmrk-codereaddescriptiona" style="width: 100%; border-collapse: collapse; margin: 15px 0px;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Code**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">read

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Description**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Autorise le téléchargement de **tous** les fichiers produits par le module (bons de prélèvement, inventaires…) **sans** le droit de lecture natif de chaque objet. Donne aussi accès au fichier de sauvegarde des paramètres

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Par défaut**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**✗ NON**

</td></tr></tbody></table>

<p class="callout danger">**À réserver aux administrateurs.** Sans cette permission, chaque fichier exige le droit de lecture natif de son objet : c'est le fonctionnement normal et recommandé. Cette permission ne sert qu'à un profil technique qui doit pouvoir tout consulter.</p>

#### **5.DROITS NATIFS UTILISÉS AU QUOTIDIEN**

Pour les utilisateurs, ***InfraSFiles*** ne crée aucun droit supplémentaire : il applique les droits que ***Dolibarr*** définit déjà pour chaque objet.

<table id="bkmrk-documentvoir-l%27ongle" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Document

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Voir l'onglet, télécharger les fichiers

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Générer / supprimer un PDF, envoyer par email

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Bons de prélèvement et de virement

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Prélèvements &gt; **Lire les bons de prélèvement**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Prélèvements &gt; **Créer / modifier les bons de prélèvement**

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Inventaires

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Stocks &gt; **Lire les stocks**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Stocks &gt; **Créer / modifier les stocks**

</td></tr></tbody></table>

Concrètement : un utilisateur qui peut consulter un bon de prélèvement peut voir et télécharger ses bordereaux ; un utilisateur qui peut le créer ou le modifier peut aussi générer, supprimer et envoyer les bordereaux. Un fichier est toujours protégé par le droit de **son** objet : le droit d'écriture sur les bons ne permet pas de supprimer une feuille de comptage d'inventaire, et inversement.

#### **6.CONFIGURATION DES PERMISSIONS**

Accès : `<span class="editor-theme-code">Accueil > Utilisateurs & Groupes > [Utilisateur ou Groupe] > Permissions</span>`

Rechercher « **Documents et emails** » (ou « ***InfraSFiles*** ») dans la liste des modules.

# 04. CONFIGURATION DU MODULE

# Paramètres du module

#### **1.ACCÉDER À LA PAGE DE CONFIGURATION**

La configuration du module se fait depuis :

```
Accueil > Configuration > Modules/Applications > Documents et emails > Configurer
```

ou depuis le menu ***Outils &gt; InfraS &gt; InfraSFiles &gt; Paramètres InfraS*** (permissions *Voir le menu des paramètres* et *Modifier les paramètres du module* requises).

La page est organisée en trois blocs, décrits ci-dessous : **Sauvegarde / Restauration**, **Documents pris en charge** et **Modèles de documents**.

#### **2.SAUVEGARDE / RESTAURATION**

Ce bloc n'apparaît que pour les utilisateurs disposant de la permission *Sauvegarder / Restaurer les paramètres du module*. Il permet d'enregistrer l'ensemble des réglages dans un fichier et de les remettre en place plus tard. Le fonctionnement détaillé est décrit dans le chapitre *Sauvegarde et restauration*.

#### **3.DOCUMENTS PRIS EN CHARGE**

Ce bloc liste chaque document que le module sait produire, sous la forme d'un bandeau par document (**Bons de prélèvement et de virement**, **Inventaires**) suivi de ses réglages. Les réglages s'affichent de manière **hiérarchique** : tant qu'un document n'est pas activé, seule sa ligne « Activé » est visible.

***Ligne « Activé »***

Interrupteur général du document (icône verte = activé, grise = désactivé). Un clic recharge immédiatement la page et fait apparaître, ou disparaître, les lignes de réglage qui en dépendent. Désactivé, le document ne se manifeste nulle part dans ***Dolibarr*** : ni section, ni onglet, ni bouton d'envoi.

<p class="callout warning">Si le module natif nécessaire n'est pas activé (Prélèvement ou Virement pour les bons, Stock pour les inventaires), la ligne est grisée avec la mention « *Nécessite l'activation d'un de ces modules : …* ». Activez d'abord le module natif.</p>

***Ligne « Génération PDF + Fichiers joints »***

Active la section « Fichiers joints » en bas de la fiche native (choix du modèle, bouton Générer, liste des fichiers) et l'onglet « Fichiers joints » en haut de la fiche. Désactivée, l'onglet reste accessible mais sans l'encadré de génération, et le bloc *Modèles de documents* ne propose plus ce document.

***Ligne « Envoi par email »***

Active le bouton « Envoyer par email » sur la fiche native et l'écran d'envoi associé (voir le chapitre *Envoi par email*).

***Options propres à chaque document***

Sous ces trois lignes, chaque document propose ses propres options. Les options saisies (liste déroulante, texte) ne sont enregistrées qu'après un clic sur le bouton **« Modifier »** situé en haut à droite du bloc ; les interrupteurs, eux, s'enregistrent immédiatement.

<table id="bkmrk-documentoptiontyper%C3%B4" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Document

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Option

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Type

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Rôle

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Bons de prélèvement et de virement

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Découpage des PDF**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Liste

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Un PDF par tiers (regroupe ses factures) *ou* un PDF par maison mère (regroupe ses tiers ayant coché l'option), sinon un PDF par tiers. Une icône d'aide détaille la règle. Voir le chapitre *Bons de prélèvement et de virement*

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Bons de prélèvement et de virement

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Texte libre en pied de page**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Texte multiligne

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Texte imprimé en pied de chaque page du bordereau (vide = aucun)

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Bons de prélèvement et de virement

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Filigrane sur les documents brouillon**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Texte

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Filigrane imprimé en travers des pages tant que le bon est au statut brouillon (vide = aucun)

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Inventaires

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Afficher la quantité théorique sur la feuille de comptage**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Interrupteur

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Ajoute la colonne « Stock physique » (quantité connue de Dolibarr) sur la feuille. Masquée par défaut pour un comptage à l'aveugle

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Inventaires

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Texte libre en pied de page**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Texte multiligne

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Texte imprimé en pied de chaque page de la feuille (vide = aucun)

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Inventaires

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Filigrane sur les documents brouillon**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Texte

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Filigrane imprimé tant que l'inventaire est au statut brouillon (vide = aucun)

</td></tr></tbody></table>

<p class="callout info">Le regroupement par **zone de stockage** de la feuille de comptage ne se règle pas ici : il suit la configuration de la colonne « Zone » du module ***InfraSWorkflow*** (voir le chapitre *Inventaires*).</p>

#### **4.MODÈLES DE DOCUMENTS**

Ce bloc affiche un tableau par document dont la « Génération PDF + Fichiers joints » est active. Chaque tableau liste les modèles PDF disponibles pour ce document, y compris ceux fournis par d'autres modules (***InfraSPackPlus*** par exemple).

<table id="bkmrk-colonnecontenunomnom" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Colonne

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Contenu

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Nom**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Nom du modèle (« bordereau », « comptage », « InfraSPlus\_Bon », « InfraSPlus\_INV »…)

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Description**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Ce que produit le modèle

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Type**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Toujours « pdf »

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Statut**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Interrupteur : un modèle activé est proposé dans la liste déroulante de la section « Fichiers joints » de la fiche

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Défaut**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Modèle présélectionné à la génération. Le choisir l'active automatiquement si besoin

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Aperçu**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Icône PDF : ouvre dans un nouvel onglet un document **SPÉCIMEN** (objet fictif, rien n'est enregistré) pour juger de la mise en page, du texte libre et du filigrane

</td></tr></tbody></table>

<p class="callout warning">Tant qu'aucun modèle par défaut n'est choisi, la section « Fichiers joints » de la fiche affiche le message « *Aucun modèle de document sélectionné : choisissez un modèle par défaut dans les paramètres du module* » et la génération est impossible.</p>

Si aucun document n'a sa génération PDF activée, le bloc affiche simplement « *Aucun document avec la génération PDF activée* ».

#### **5.RÉSUMÉ DE LA CASCADE DES RÉGLAGES**

<table id="bkmrk-r%C3%A9glageeffet-quand-i" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Réglage

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Effet quand il est désactivé

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Activé

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Rien n'apparaît sur la fiche native (ni section, ni onglet, ni bouton)

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Génération PDF + Fichiers joints

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Onglet accessible mais sans encadré de génération ; document absent du bloc Modèles de documents

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Envoi par email

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Pas de bouton « Envoyer par email »

</td></tr></tbody></table>

# 05. BONS DE PRÉLÈVEMENT ET DE VIREMENT

# Bordereau de prélèvement / virement

Les bons de prélèvement (module Prélèvement) et les bons de virement (module Virement, paiement par virement) partagent la même fiche dans ***Dolibarr*** : ***Banque | Caisse &gt; Prélèvements*** (ou ***Virements***) ***&gt; Bons de prélèvement***. ***InfraSFiles*** y ajoute la génération d'un **bordereau**, document récapitulatif à transmettre au tiers prélevé ou au bénéficiaire du virement.

#### **1.CONTENU DU BORDEREAU (MODÈLE « bordereau »)**

***En-tête***

- Logo ou raison sociale de votre société, titre « **Bordereau de prélèvement** » ou « **Bordereau de virement** » selon la nature du bon.
- Référence du bon, date, nombre de lignes.

***Blocs d'identification***

<table id="bkmrk-bon-de-pr%C3%A9l%C3%A8vementbo" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Bon de prélèvement

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Bon de virement

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Créancier** : votre société

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Donneur d'ordre** : votre société

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Débiteur** : le tiers prélevé (ou sa maison mère, voir le point 2)

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Bénéficiaire** : le tiers payé (ou sa maison mère)

</td></tr></tbody></table>

Le bloc débiteur / bénéficiaire reprend le nom, le code, l'adresse et les coordonnées bancaires : **IBAN**, **BIC** et **RUM** (référence unique de mandat). Le RIB imprimé est celui **réellement utilisé par la ligne** du bon, à défaut le RIB par défaut du tiers. Quand le PDF n'est pas adressé à la maison mère mais que le tiers en a une, la mention « Maison mère : X » est ajoutée.

***Tableau des lignes***

<table id="bkmrk-colonnecontenudocume" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Colonne

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Contenu

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Document**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Référence de la facture client, de la facture fournisseur ou du salaire concerné

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Date**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Date du document

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Échéance**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Date d'échéance du document

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Tiers**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Tiers facturé (utile quand le PDF regroupe plusieurs tiers sous une maison mère). Si les lignes d'un même PDF utilisent des IBAN différents, l'IBAN de chaque ligne est imprimé sous le nom du tiers

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Statut**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Statut natif de la ligne : *En attente*, *Débité* (ou *Crédité* pour un virement), *Rejeté*. Les lignes rejetées sont imprimées en rouge

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Montant**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Montant prélevé ou viré

</td></tr></tbody></table>

Sous chaque facture, une sous-ligne grise « *Avoir XXX : -montant* » est ajoutée pour chaque **avoir appliqué** à cette facture.

***Pied du tableau***

- Total du bon.
- Si des lignes ont été rejetées : mention « *dont N ligne(s) rejetée(s) : montant* » sous le total.
- Texte libre de pied de page et filigrane « brouillon » si configurés (voir le chapitre *Configuration du module*).

#### **2.DÉCOUPAGE DES PDF : UN PDF PAR TIERS OU PAR MAISON MÈRE**

Un bon de prélèvement contient généralement des lignes de **plusieurs tiers**. Le module ne produit donc pas un seul PDF pour le bon, mais **un PDF par destinataire**, selon l'option « Découpage des PDF » des paramètres :

<table id="bkmrk-valeurcomportementun" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Valeur

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Comportement

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Un PDF par tiers** (valeur par défaut)

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Chaque tiers reçoit un PDF regroupant toutes ses factures présentes dans le bon. Sa maison mère éventuelle n'est mentionnée qu'à titre d'information

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Un PDF par maison mère**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Les tiers qui ont une **maison mère** renseignée sur leur fiche **et** l'attribut « Adresser les bordereaux de prélèvement / virement à la maison mère » coché sont regroupés dans **un seul PDF adressé à la maison mère** (une facture par ligne, avec le nom du tiers facturé). Tout autre tiers garde son propre PDF. Une maison mère qui a elle-même des factures dans le bon obtient un seul PDF

</td></tr></tbody></table>

***Exemple***

Un bon contient les factures de 10 tiers rattachés à la même maison mère, dont 8 ont coché l'attribut. En mode « Un PDF par maison mère », le module produit **3 PDF** : un pour la maison mère (avec les factures des 8 tiers), plus un pour chacun des 2 tiers restants.

***L'attribut « Adresser les bordereaux à la maison mère »***

Cet attribut supplémentaire (case à cocher) est créé automatiquement sur les fiches **tiers** à l'activation du module. Il est visible tant que le module est actif et n'est jamais supprimé à la désactivation, pour conserver les choix faits. Il se coche sur la fiche du tiers, à côté du champ natif **Maison mère**. Sans maison mère renseignée, l'attribut est sans effet.

<p class="callout info">Le regroupement ne se fait que sur **un niveau** : la maison mère directe du tiers. Une maison mère de maison mère n'est pas prise en compte.</p>

#### **3.NOMS DES FICHIERS**

Chaque PDF est nommé `<référence du bon>-.pdf`, par exemple `PREL2609-00012-CU2401-0042.pdf`. Si le destinataire n'a pas de code, le suffixe `ID<identifiant>` est utilisé. Tous les PDF d'un bon apparaissent dans la section « Fichiers joints » de sa fiche et sont conservés dans le répertoire `documents/infrasfiles/widthdraw/<référence du bon>/`.

#### **4.GÉNÉRER UN BORDEREAU**

1. Ouvrez la fiche du bon de prélèvement ou de virement
2. Descendez jusqu'à la section **« Fichiers joints »**, placée sous les boutons d'action
3. Choisissez le modèle (« bordereau », ou « InfraSPlus\_Bon » avec ***InfraSPackPlus***) et la langue
4. Cliquez sur **« Générer »** : un PDF par tiers ou par maison mère est créé et listé dans la section

Le détail de la section, de l'onglet « Fichiers joints » et de l'envoi par email est décrit dans les chapitres suivants.

#### **5.MODÈLE « InfraSPlus\_Bon »**

Quand le module ***InfraSPackPlus*** est installé, un second modèle « InfraSPlus\_Bon » apparaît dans le bloc *Modèles de documents*. Il imprime exactement le même contenu que « bordereau » mais avec la mise en page, les couleurs et les options d'***InfraSPackPlus*** (en-têtes, adresses, mentions, pied de page…), pour une présentation homogène avec vos autres documents. Il se choisit et se met par défaut depuis la page des paramètres d'***InfraSFiles***.

# 06. INVENTAIRES

# Feuille de comptage d'inventaire

Les inventaires du module Stock (***Produits | Services &gt; Inventaires***) n'ont pas de document natif. ***InfraSFiles*** y ajoute une **feuille de comptage** : un document à imprimer pour relever les quantités physiquement en stock, zone par zone, avant de saisir le résultat dans ***Dolibarr***.

#### **1.CONTENU DE LA FEUILLE DE COMPTAGE (MODÈLE « comptage »)**

***En-tête***

- Logo ou raison sociale, titre « **Feuille de comptage** ».
- Référence et libellé de l'inventaire, entrepôt, date, statut.
- Filtres de l'inventaire repris tels quels : catégories de produits et produit, s'ils ont été renseignés à la création de l'inventaire.

***Corps : les références regroupées par zone***

Les lignes de l'inventaire sont regroupées sous une **bande par zone de stockage**, qui indique le nom de la zone et le nombre de références qu'elle contient. À l'intérieur d'une zone, les lignes sont triées par référence produit puis par lot. Les produits sans zone sont regroupés en fin de feuille sous la bande « *Sans zone* ».

<table id="bkmrk-colonneaffich%C3%A9econte" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Colonne

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Affichée

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Contenu

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Référence**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Toujours

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Référence du produit

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Libellé**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Toujours

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Libellé du produit

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Entrepôt**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Seulement si l'inventaire porte sur plusieurs entrepôts

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Entrepôt de la ligne

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Lot / série**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Seulement si des produits à lots ou numéros de série sont présents

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Numéro de lot ou de série

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Stock physique**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Seulement si l'option « Afficher la quantité théorique » est activée

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Quantité connue de Dolibarr au moment de la génération

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Quantité relevée**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Toujours

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Case **vide** à remplir à la main lors du comptage

</td></tr></tbody></table>

<p class="callout info">La quantité théorique est **masquée par défaut** pour favoriser un comptage « à l'aveugle » : la personne qui compte n'est pas influencée par la valeur attendue.</p>

***Fin de feuille***

- Zone « **Compté par / Date / Signature** » pour tracer qui a réalisé le comptage.
- Texte libre de pied de page et filigrane « brouillon » si configurés.

#### **2.LES ZONES DE STOCKAGE : LIEN AVEC INFRASWORKFLOW**

Le regroupement par zone n'est pas une option d'***InfraSFiles*** : la feuille de comptage suit **la configuration de la colonne « Zone »** de la page de saisie des inventaires, fournie par le module ***InfraSWorkflow*** (section *Gestion des inventaires* de ses paramètres). Ainsi, la feuille imprimée et l'écran de saisie montrent toujours les mêmes zones, dans le même ordre.

<table id="bkmrk-source-de-la-zone-%28r" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Source de la zone (réglage InfraSWorkflow)

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Ordre des zones sur la feuille

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Attribut supplémentaire** du produit (de type liste)

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Ordre des valeurs de la liste, tel que défini dans l'attribut

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Sous-catégories** d'une catégorie de localisation

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Ordre de création des sous-catégories (ordre chronologique)

</td></tr></tbody></table>

Les valeurs inconnues (par exemple un attribut de type texte, ou une valeur retirée de la liste) sont placées après les zones connues, par ordre alphabétique ; les lignes sans zone viennent en dernier.

<p class="callout warning">Sans le module ***InfraSWorkflow***, ou si la colonne « Zone » y est désactivée, la feuille de comptage est générée **sans regroupement** : toutes les références sont listées à la suite, sans erreur.</p>

#### **3.GÉNÉRER UNE FEUILLE DE COMPTAGE**

La section « Fichiers joints » est disponible sur **deux pages** de l'inventaire :

- la **fiche** de l'inventaire (onglet principal) ;
- la page de **saisie des lignes** (onglet Inventaire), sous le tableau des lignes : pratique pour imprimer la feuille puis saisir les quantités relevées au même endroit.

1. Ouvrez l'inventaire
2. Descendez jusqu'à la section **« Fichiers joints »**
3. Choisissez le modèle (« comptage », ou « InfraSPlus\_INV » avec ***InfraSPackPlus***) et la langue
4. Cliquez sur **« Générer »**
5. Imprimez la feuille, effectuez le comptage, puis saisissez les quantités relevées dans l'onglet Inventaire

Le fichier est nommé `<référence de l'inventaire>.pdf` et conservé dans `documents/infrasfiles/inventory/<référence>/`. Regénérer la feuille remplace le fichier précédent.

#### **4.MODÈLE « InfraSPlus\_INV »**

Avec ***InfraSPackPlus***, un second modèle « InfraSPlus\_INV » propose le même contenu avec la mise en page et les options d'***InfraSPackPlus***. Il se choisit depuis le bloc *Modèles de documents* des paramètres d'***InfraSFiles***.

# 07. UTILISATION SUR LES FICHES

# Génération et onglet Fichiers joints

Ce chapitre décrit ce que voit l'utilisateur sur la fiche native d'un objet pris en charge, une fois le document activé avec la « Génération PDF + Fichiers joints » dans les paramètres. Le fonctionnement est volontairement identique à celui des factures ou des devis de ***Dolibarr***.

#### **1.LA SECTION « FICHIERS JOINTS » EN BAS DE FICHE**

Elle est insérée juste **sous les boutons d'action** de la fiche (Valider, Modifier, Supprimer…). Elle contient :

- une liste déroulante des **modèles** activés dans les paramètres, avec le modèle par défaut présélectionné ;
- une liste déroulante de la **langue** du document ;
- le bouton **« Générer »** ;
- la **liste des fichiers** déjà présents pour cet objet : nom, taille, date, icône de téléchargement et icône de suppression (corbeille).

Un clic sur « Générer » crée le ou les PDF (un par tiers ou par maison mère pour un bon de prélèvement, un seul pour un inventaire) et les ajoute à la liste. Générer de nouveau avec le même modèle **remplace** les fichiers portant le même nom.

<p class="callout info">La section n'apparaît que si l'utilisateur dispose du **droit de lecture natif** de l'objet. Le bouton « Générer » et la corbeille exigent le **droit de création / modification** natif.</p>

***Documents brouillon***

Tant que l'objet est au statut brouillon, le PDF porte le **filigrane** configuré dans les paramètres (s'il est renseigné). Une fois l'objet validé, il suffit de regénérer le document pour obtenir une version sans filigrane.

#### **2.L'ONGLET « FICHIERS JOINTS »**

Un onglet **« Fichiers joints »** est ajouté en haut de la fiche, avec un **badge** indiquant le nombre de fichiers. Il est visible si le document est activé dans les paramètres et si l'utilisateur a le droit de lecture natif de l'objet. Il se comporte comme l'onglet des factures :

- rappel de la référence, du nombre de fichiers et de leur taille totale ;
- encadré de génération (modèle, langue, Générer), sauf si la « Génération PDF + Fichiers joints » est désactivée ;
- **ajout manuel** d'un fichier (déposer un scan, un justificatif…) ;
- **ajout d'un lien** (URL externe) ;
- liste de tous les fichiers et liens, avec téléchargement et suppression.

Les fichiers déposés à la main sont stockés au même endroit que les PDF générés et sont proposés en pièce jointe lors de l'envoi par email.

#### **3.TÉLÉCHARGEMENT ET SÉCURITÉ DES FICHIERS**

Chaque fichier est servi avec le contrôle d'accès natif de ***Dolibarr*** : le téléchargement exige le **droit de lecture** de l'objet auquel il appartient (bons de prélèvement ou stocks). Un lien de téléchargement copié et transmis à un utilisateur qui n'a pas ce droit répond « accès refusé ». Seule la permission « Télécharger TOUS les fichiers du module » (réservée aux administrateurs) passe outre.

#### **4.EMPLACEMENT DES FICHIERS SUR LE SERVEUR**

<table id="bkmrk-documentr%C3%A9pertoire-%28" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Document

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Répertoire (sous le répertoire documents de Dolibarr)

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Bons de prélèvement et de virement

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">`infrasfiles/widthdraw/<référence du bon>/`

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Inventaires

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">`infrasfiles/inventory/<référence de l'inventaire>/`

</td></tr></tbody></table>

Ces fichiers sont indexés dans le gestionnaire de documents (ECM) de ***Dolibarr*** comme les documents natifs, et suivent donc les sauvegardes habituelles du répertoire *documents*.

# 08. ENVOI PAR EMAIL

# Envoi par email

Quand la ligne « Envoi par email » d'un document est activée dans les paramètres, ***InfraSFiles*** ajoute à la fiche native le bouton **« Envoyer par email »**, avec l'écran d'envoi standard de ***Dolibarr***.

#### **1.LE BOUTON « ENVOYER PAR EMAIL »**

Il apparaît parmi les boutons d'action de la fiche, pour les utilisateurs disposant du **droit de création / modification** natif de l'objet. Il ouvre l'écran d'envoi, positionné directement sur le formulaire.

#### **2.L'ÉCRAN D'ENVOI**

C'est le formulaire d'envoi natif de ***Dolibarr*** (le même que pour une facture), avec quelques comportements propres au module :

<table id="bkmrk-%C3%89l%C3%A9mentcomportementp" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Élément

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Comportement

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Pièces jointes**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Le dernier PDF généré est pré-attaché. Pour un bon de prélèvement découpé en plusieurs PDF (par tiers ou par maison mère), **tous les PDF** du bon sont attachés. Les fichiers déposés à la main peuvent être ajoutés depuis la liste

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Destinataires proposés (bons)**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">La liste « Destinataires » propose les **contacts des tiers** présents dans les lignes du bon. Rien n'est pré-rempli dans le champ de saisie libre : l'utilisateur choisit

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Destinataires proposés (inventaires)**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Un inventaire n'a pas de tiers : la liste propose les utilisateurs de Dolibarr (si l'option « Autoriser l'envoi aux utilisateurs » est active dans la configuration des emails), sinon la saisie libre

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Modèle de mail**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">La liste propose les modèles du type propre au document (« Bons de prélèvement et de virement » ou « Inventaires ») ainsi que les modèles « Tous ». Le modèle par défaut du type est présélectionné

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Sujet**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Pré-rempli par le modèle, par exemple « Bordereau de prélèvement / virement PREL2609-00012 »

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Annuler**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Retour à la page « Fichiers joints » de l'objet

</td></tr></tbody></table>

Après l'envoi, ***Dolibarr*** affiche la confirmation habituelle et revient sur la fiche.

#### **3.LES MODÈLES DE MAILS**

À l'activation, le module crée **un modèle d'email par document**, dans la langue de l'utilisateur qui active le module :

<table id="bkmrk-documentlibell%C3%A9-du-m" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Document

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Libellé du modèle

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Sujet

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Contenu

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Bons de prélèvement et de virement

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Envoi d'un bordereau de prélèvement / virement

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Bordereau de prélèvement / virement \_\_REF\_\_

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Bonjour,  
Veuillez trouver ci-joint le bordereau de prélèvement / virement \_\_REF\_\_.  
Cordialement, \_\_MYCOMPANY\_NAME\_\_

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Inventaires

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Envoi d'une feuille de comptage d'inventaire

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Feuille de comptage d'inventaire \_\_REF\_\_

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Bonjour,  
Veuillez trouver ci-joint la feuille de comptage de l'inventaire \_\_REF\_\_.  
Cordialement, \_\_MYCOMPANY\_NAME\_\_

</td></tr></tbody></table>

Ces modèles se modifient, se traduisent et se complètent dans :

```
Accueil > Configuration > Emails > Modèles d'emails
```

Les types « **Bons de prélèvement et de virement** » et « **Inventaires** » y sont ajoutés par le module dans la liste des types de modèles. Un modèle existant n'est jamais écrasé par une réactivation du module. Les substitutions habituelles de ***Dolibarr*** sont disponibles (`__REF__`, `__MYCOMPANY_NAME__`, `__USER_FULLNAME__`…).

#### **4.L'ÉVÉNEMENT DANS L'AGENDA**

Chaque envoi crée automatiquement un événement dans l'agenda de ***Dolibarr***, rattaché à l'objet, comme pour l'envoi d'une facture :

- « **Bon de prélèvement / virement envoyé par email** »
- « **Inventaire envoyé par email** »

Ces événements automatiques peuvent être désactivés individuellement dans :

```
Accueil > Configuration > Agenda > Événements automatiques
```

#### **5.VÉRIFIER QU'UN ENVOI A BIEN EU LIEU**

- L'événement d'agenda est créé sur l'objet (onglet Événements de la fiche).
- En cas de doute sur les pièces jointes, le journal de ***Dolibarr*** (`dolibarr.log` en niveau DEBUG) trace chaque fichier attaché à l'envoi.

# 09. SAUVEGARDE ET RESTAURATION

# Sauvegarde et restauration

Le bloc **Sauvegarde / Restauration**, en haut de la page *Paramètres InfraS*, permet d'enregistrer l'ensemble de la configuration d'***InfraSFiles*** et de la remettre en place plus tard. Il n'est visible que pour les utilisateurs disposant de la permission *Sauvegarder / Restaurer les paramètres du module*.

#### **1.SAUVEGARDE**

1. Accédez à l'onglet **Paramètres InfraS**
2. Cliquez sur le bouton **« Sauvegarder »**, en haut de la page
3. Une confirmation s'affiche indiquant que la sauvegarde est effectuée

***Sauvegarde automatique***

Une sauvegarde automatique est effectuée lors de la **désactivation du module**. Cela permet de conserver votre configuration même si vous désactivez temporairement le module, par exemple lors d'une mise à jour.

***Éléments sauvegardés***

- L'activation de chaque document et de ses fonctions (génération PDF, envoi par email)
- Les options de chaque document : découpage des PDF, texte libre, filigrane, affichage de la quantité théorique
- Le modèle de document par défaut de chaque document

Le fichier de sauvegarde est stocké dans le répertoire de données du module (`documents/infrasfiles/sql/`), un fichier par entité. Le lien du bloc permet de le télécharger pour le conserver ailleurs.

#### **2.RESTAURATION**

1. Accédez à l'onglet **Paramètres InfraS**
2. Cliquez sur le bouton **« Restaurer »**, en haut de la page
3. Les paramètres sauvegardés sont restaurés
4. Rechargez la page (F5) pour voir le résultat

***Restauration automatique***

Une restauration automatique est effectuée lors de l'**activation du module**. Si le module a été désactivé puis réactivé, vos paramètres sont automatiquement remis en place.

<p class="callout danger">**Important :** La restauration écrase les paramètres actuels par ceux de la sauvegarde.</p>

#### **3.CE QUI N'EST PAS CONCERNÉ**

- Les **fichiers PDF** générés : ils restent dans le répertoire *documents* quoi qu'il arrive.
- Les **modèles d'emails** : gérés dans la configuration des emails de ***Dolibarr***, jamais supprimés par le module.
- L'attribut « Adresser les bordereaux à la maison mère » et les valeurs cochées sur les tiers.
- La liste des modèles de documents **activés** (table native des modèles), conservée par ***Dolibarr*** lui-même.

#### **4.RECOMMANDATIONS**

- Effectuez une sauvegarde avant toute modification importante
- Effectuez une sauvegarde avant toute mise à jour du module
- Testez vos modifications sur un environnement de test si possible

# 10. COMPATIBILITÉ ET MODULES TIERS

# Compatibilité

#### **1.VERSIONS SUPPORTÉES**

<table id="bkmrk-dolibarr18.0.0-%C3%A0-24." style="width: 100%; border-collapse: collapse; margin: 15px 0px;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Dolibarr**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">18.0.0 à 24.x — la structure des fiches sur laquelle le module s'appuie a été vérifiée identique de la version 18 à la version 24

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**PHP**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">7.4 à 8.4

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Base de données**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">MySQL / MariaDB / PostgreSQL (aucune syntaxe SQL propriétaire)

</td></tr><tr><td style="background-color: rgb(249, 249, 249); padding: 10px; width: 30%; font-weight: bold;">**Multi-entités**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Oui : paramètres, modèles par défaut, attribut tiers et fichiers sont propres à chaque entité

</td></tr></tbody></table>

#### **2.MODULES NATIFS**

<table id="bkmrk-module-natifr%C3%B4le-pou" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Module natif

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Rôle pour InfraSFiles

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Prélèvement** ou **Virement** (paiement par virement)

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Nécessaire au document « Bons de prélèvement et de virement ». L'un des deux suffit

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Stock**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Nécessaire au document « Inventaires »

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Agenda**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Enregistrement des événements « envoyé par email »

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**Emails** (configuration)

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Modèles d'emails et envoi

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**ECM / GED**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Indexation des fichiers produits, comme pour les documents natifs

</td></tr></tbody></table>

#### **3.MODULES INFRAS COMPLÉMENTAIRES**

******InfraSPackPlus******

Fournit deux modèles supplémentaires, listés et activables depuis la page des paramètres d'***InfraSFiles*** :

- **InfraSPlus\_Bon** : bordereau de prélèvement / virement avec la mise en page et les options d'***InfraSPackPlus***
- **InfraSPlus\_INV** : feuille de comptage d'inventaire avec la mise en page et les options d'***InfraSPackPlus***

Documentation : [wiki InfraSPackPlus](https://wiki.infras.fr/books/infraspackplus)

******InfraSWorkflow******

Détermine la **zone de stockage** utilisée pour regrouper les références sur la feuille de comptage (section *Gestion des inventaires* : colonne « Zone » alimentée par un attribut supplémentaire du produit ou par les sous-catégories d'une catégorie de localisation). Dépendance **optionnelle** : sans ***InfraSWorkflow***, pas de regroupement, sans erreur.

Documentation : [wiki InfraSWorkflow](https://wiki.infras.fr/books/infrasworkflow)

#### **4.POUR LES DÉVELOPPEURS : AJOUTER SES PROPRES OBJETS**

***InfraSFiles*** est conçu comme un socle. Un module tiers peut déclarer un nouvel objet à documenter, sans modifier ***InfraSFiles***, grâce au hook `infrasFilesRegisterObjects` (contexte `infrasfilesregistry`). Le hook retourne, dans `$this->results`, une définition par objet avec notamment :

<table id="bkmrk-cl%C3%A9r%C3%B4lelabel%2C-pictol" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Clé

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Rôle

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">`label`, `picto`

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Libellé (clé de traduction) et picto affichés dans les paramètres

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">`class`, `classpath`

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Classe fille de l'objet natif ajoutant la génération de document

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">`parentclass`, `parentpath`, `table`

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Classe et table natives de l'objet

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">`modelspath`, `docpart`, `dirout`

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Répertoire des modèles PDF, type de modèle, sous-répertoire de sortie des fichiers

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">`tabcontext`, `hookcontext`, `cardurl`

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Accrochage de l'onglet et de la section sur la fiche native

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">`needmodule`

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Modules natifs dont au moins un doit être actif

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">`permread`, `permwrite`

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Droits natifs de lecture et d'écriture

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">`mailtype`, `mailtopic`, `mailtemplate`, `trigger`

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Type de modèle de mail, sujet, modèle par défaut, déclencheur d'agenda

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">`options`

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Options propres à l'objet, affichées automatiquement dans les paramètres (liste, texte, texte multiligne, interrupteur)

</td></tr></tbody></table>

Un module tiers peut aussi se contenter de fournir un **modèle PDF supplémentaire** pour un objet déjà pris en charge : il suffit de déclarer `models` dans son descripteur et de placer le modèle dans `core/modules/infrasfiles/<objet>/doc/` de son propre répertoire, comme le fait ***InfraSPackPlus***. Le modèle est alors listé automatiquement dans les paramètres d'***InfraSFiles***.

<p class="callout info">Les tables natives de Dolibarr ne sont jamais modifiées : l'état documentaire (dernier modèle, dernier fichier) est mémorisé dans la table `llx_infrasfiles_document`, une ligne par objet et par entité.</p>

# 11. DÉPANNAGE

# Dépannage

#### **1.LA SECTION « FICHIERS JOINTS » N'APPARAÎT PAS SUR LA FICHE**

**Causes possibles :**

**✓** **Le document n'est pas activé**

→ Vérifiez la ligne « Activé » puis la ligne « Génération PDF + Fichiers joints » du document dans *Paramètres InfraS*

**✓** **Le module natif n'est pas activé**

→ La ligne du document est grisée avec « Nécessite l'activation d'un de ces modules » : activez Prélèvement ou Virement (bons), Stock (inventaires)

**✓** **L'utilisateur n'a pas le droit de lecture natif**

→ Vérifiez les droits « Lire les bons de prélèvement » ou « Lire les stocks » de l'utilisateur

**✓** **Le module vient d'être mis à jour**

→ Désactivez puis réactivez le module

#### **2.MESSAGE « AUCUN MODÈLE DE DOCUMENT SÉLECTIONNÉ »**

**Causes possibles :**

**✓** **Aucun modèle par défaut n'est défini**

→ Dans *Paramètres InfraS*, bloc *Modèles de documents*, cliquez sur la colonne « Défaut » du modèle souhaité (il est activé automatiquement)

#### **3.LE BOUTON « GÉNÉRER » OU LA CORBEILLE SONT ABSENTS**

**Causes possibles :**

**✓** **L'utilisateur n'a pas le droit d'écriture natif**

→ Le droit « Créer / modifier les bons de prélèvement » ou « Créer / modifier les stocks » est nécessaire pour générer et supprimer

#### **4.« ACCÈS REFUSÉ » AU TÉLÉCHARGEMENT D'UN FICHIER**

**Causes possibles :**

**✓** **L'utilisateur n'a pas le droit de lecture natif de l'objet**

→ Chaque fichier est protégé par le droit de lecture de **son** objet (bons de prélèvement ou stocks). Attribuez ce droit, ou, pour un profil technique uniquement, la permission « Télécharger TOUS les fichiers du module »

#### **5.LE BON DE PRÉLÈVEMENT NE PRODUIT PAS LE NOMBRE DE PDF ATTENDU**

**Causes possibles :**

**✓** **Le découpage est réglé sur « Un PDF par tiers »**

→ Chaque tiers reçoit son PDF, la maison mère n'est qu'une mention. Passez sur « Un PDF par maison mère » puis cliquez sur « Modifier »

**✓** **Le tiers n'a pas de maison mère renseignée, ou l'attribut n'est pas coché**

→ Sur la fiche du tiers, renseignez le champ **Maison mère** *et* cochez « Adresser les bordereaux de prélèvement / virement à la maison mère ». Les deux conditions sont nécessaires

**✓** **Le regroupement attendu porte sur plusieurs niveaux**

→ Seule la maison mère directe est prise en compte

#### **6.LA FEUILLE DE COMPTAGE N'EST PAS REGROUPÉE PAR ZONE**

**Causes possibles :**

**✓** **Le module InfraSWorkflow n'est pas activé, ou sa colonne « Zone » est désactivée**

→ Activez InfraSWorkflow et configurez la colonne « Zone » dans sa section *Gestion des inventaires* (attribut produit ou catégorie de localisation)

**✓** **Les produits n'ont pas de zone renseignée**

→ Ils sont listés sous la bande « Sans zone ». Renseignez l'attribut ou la sous-catégorie sur les fiches produits

#### **7.LA QUANTITÉ THÉORIQUE N'APPARAÎT PAS SUR LA FEUILLE**

**Causes possibles :**

**✓** **C'est le comportement par défaut**

→ Activez l'option « Afficher la quantité théorique sur la feuille de comptage » dans les paramètres du document Inventaires, puis regénérez la feuille

#### **8.L'EMAIL PART SANS PIÈCE JOINTE, OU SANS LE MODÈLE ATTENDU**

**Causes possibles :**

**✓** **Aucun PDF n'a encore été généré**

→ Générez le document depuis la section « Fichiers joints » avant de cliquer sur « Envoyer par email »

**✓** **Le modèle de mail n'a pas l'option « Joindre les fichiers »**

→ Dans *Configuration &gt; Emails &gt; Modèles d'emails*, vérifiez l'option de jonction des fichiers du modèle utilisé

**✓** **Le modèle par défaut a été supprimé**

→ Le module ne le recrée qu'à l'activation : désactivez / réactivez le module, ou recréez un modèle du type « Bons de prélèvement et de virement » ou « Inventaires »

#### **9.LE FILIGRANE RESTE SUR LE DOCUMENT**

**Causes possibles :**

**✓** **Le document a été généré alors que l'objet était encore brouillon**

→ Le filigrane ne s'applique qu'aux brouillons : validez l'objet puis regénérez le PDF

#### **10.MESSAGE « ERREUR CHANGELOG.XML » OU AVERTISSEMENT SUR L'EXTENSION XML**

**Causes possibles :**

**✓** **L'extension PHP *xml* n'est pas chargée**

→ Faites installer / activer l'extension xml sur le serveur (php-xml). Le module fonctionne, mais le numéro de version et le changelog ne peuvent pas être lus

#### **11.AVERTISSEMENT À LA CONNEXION SUR LA VERSION DE DOLIBARR**

**Causes possibles :**

**✓** **La version de Dolibarr dépasse la version maximale supportée par le module**

→ Le module reste utilisable, sans garantie. Vérifiez sur le Dolistore ou auprès du support qu'une version plus récente du module est disponible

#### **12.INFORMATIONS UTILES POUR LE SUPPORT**

- Onglet **À propos** du module : versions de Dolibarr, du module, de PHP et du serveur web
- Journal `dolibarr.log` (Configuration &gt; Journalisation) en niveau DEBUG au moment de la reproduction du problème
- Capture d'écran de la page *Paramètres InfraS*

# 12. CHANGELOG ET SUPPORT

# Changelog et support

#### **1.CHANGELOG / HISTORIQUE DES VERSIONS**

Pour consulter l'historique complet des versions :

1. Aller dans : `<span class="editor-theme-code">Outils > InfraS > InfraSFiles > Changelog / Support</span>` (ou l'onglet **Changelog / Support** de la page de configuration du module)
2. La version installée et l'historique des modifications s'affichent
3. Cliquer sur **« Nouveau Changelog »** pour télécharger le changelog de la dernière version disponible et savoir si une mise à jour existe

***Numérotation des versions***

Les versions sont de la forme **X.Y.Z** : **X** = version minimale de Dolibarr supportée (18), **Y** = ajout de fonctionnalités ou d'options, **Z** = corrections et ajustements.

#### **2.PRINCIPALES ÉVOLUTIONS**

<table id="bkmrk-versiondatecontenu18" style="width: 100%; border-collapse: collapse; margin: 15px 0px; font-size: 13px;"><tbody><tr style="background: rgb(184, 99, 161); color: white;"><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Version

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Date

</th><th style="padding: 10px; border: 1px solid rgb(221, 221, 221); text-align: left;">Contenu

</th></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**18.0.0**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">2026-09

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Version initiale : socle générique (registre des objets, table de suivi documentaire), génération PDF, section et onglet « Fichiers joints », modèle « bordereau » pour les bons de prélèvement / virement, modèle « comptage » pour les inventaires, aperçu spécimen, texte libre et filigrane, envoi par email avec modèles de mails dédiés et événements d'agenda, statut des lignes sur le bordereau

</td></tr><tr style="background: rgb(245, 245, 245);"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**18.0.1**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">2026-09

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Corrections : activation de modèle rejouée (double clic / F5), ajout manuel de fichier et de lien depuis l'onglet, suppression d'un PDF limitée à l'objet de la fiche, contrôle d'accès aux fichiers, fond de page PDF, avertissement PHP sur l'onglet des inventaires ; infobulles d'aide sur les options

</td></tr><tr style="background: white;"><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">**18.1.0**

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">2026-09

</td><td style="padding: 10px; border: 1px solid rgb(221, 221, 221);">Bons de prélèvement : découpage « un PDF par maison mère » avec l'attribut tiers « Adresser les bordereaux à la maison mère » (le découpage « par ligne » est retiré) ; bordereau adressé à la maison mère, colonne Échéance, avoirs appliqués, RIB réellement utilisé par la ligne. Inventaires : zone de stockage suivant la colonne « Zone » d'InfraSWorkflow (l'ancienne option d'attribut produit est retirée), filtres de l'inventaire dans l'en-tête, remontée des erreurs SQL

</td></tr></tbody></table>

<p class="callout warning">Après toute mise à jour : **désactiver puis réactiver** le module pour appliquer les changements de structure. Les paramètres sont sauvegardés et restaurés automatiquement.</p>

#### **3.MISE À JOUR DU MODULE**

1. Sauvegardez les paramètres depuis *Paramètres InfraS* (facultatif, la désactivation le fait aussi)
2. Désactivez le module dans *Configuration &gt; Modules/Applications*
3. Remplacez le contenu du dossier `<span class="editor-theme-code">htdocs/custom/infrasfiles</span>` par la nouvelle version (ou redéployez l'archive)
4. Réactivez le module : la table, l'attribut tiers, les modèles de mails et les événements sont mis à jour, et les paramètres restaurés
5. Vérifiez la page *Paramètres InfraS* et regénérez un document de test

#### **4.DEMANDE DE SUPPORT**

- **Email :** <support@infras.fr>
- **Site web :** [https://www.infras.fr](https://www.infras.fr)
- **Boutique :** [https://infras.store](https://infras.store)

***Informations à fournir dans votre demande :***

- Version de ***Dolibarr***
- Version du module ***InfraSFiles*** (onglet À propos)
- Version PHP
- Document concerné (bon de prélèvement / virement, inventaire) et réglages du document dans les paramètres
- Description détaillée du problème et étapes pour le reproduire
- Captures d'écran si possible
- Messages d'erreur complets (écran et `dolibarr.log`)