# 04. PREMIERS PARAMÉTRAGES

# 4.01 Configuration initiale

<p class="callout warning"> **Avertissement :** <span style="white-space: pre-wrap;">Sécurité post-installation : une fois l’installation terminée, les outils d’installation et de migration doivent être désactivés en créant un fichier install.lock dans le répertoire documents/ de votre instance Keatic ERP (par exemple </span>***C:/xampp/htdocs/keatic ERP-230/documents/***<span style="white-space: pre-wrap;">). L’absence de ce fichier constitue une faille de sécurité. Les alertes restent visibles pour les administrateurs tant que la vulnérabilité est avérée, ou jusqu’à ce que la constante </span>**MAIN\_REMOVE\_INSTALL\_WARNING** soit définie dans Configuration &gt; Divers.</p>

Une fois l’installation réalisée, il est nécessaire de procéder à un paramétrage pour adapter Keatic ERP à vos besoins.

[![test.png](https://wiki.infras.fr/uploads/images/gallery/2026-07/scaled-1680-/kr9eKwxtPLZBN4mE-test.png)](https://wiki.infras.fr/uploads/images/gallery/2026-07/scaled-1680-/kr9eKwxtPLZBN4mE-test.png)

**Figure 4.1 – Page d’accueil Keatic ERP après installation**

# 4.02 Société / Organisation

Rendez-vous dans le menu Configuration &gt; Société/Organisation et éditez toutes les informations connues sur la société ou association à gérer (cliquez sur le bouton Enregistrer en bas de page).

### **Onglet 1 – Informations générales :**

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/JyqfUJpg8JpDs2ys-pic-060-004.png)**Figure 4.2 – Onglet principal : informations de la société**

<p class="callout danger">**Important** : Définissez votre pays dès le départ : de nombreuses options en dépendent (TVA, formats de documents, etc.). Un message d’alerte vous le rappellera tant que ce champ est vide.</p>

Renseignez votre adresse, téléphone, e-mail et importez le logo de votre société (format PNG ou JPG).

<p class="callout success">**Astuce :** Logo : évitez les images trop grandes qui pourraient déstructurer la présentation de vos modèles de documents et les alourdir inutilement.</p>

Keatic ERP 24 propose désormais deux champs logo distincts :

- Logo : le logo standard utilisé dans les en-têtes de documents
- Logo (carré) : format carré pour les contextes où un rapport 1 :1 est nécessaire (icône d’application, notifications…)

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/4UyXLXPeheCoesi9-pic-061-007.png)**Figure 4.3 – Champs Téléphone, Email, Logo et Logo (carré)**

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/9HA1S8ZBUTSJ8nUI-pic-062-010.png)**Figure 4.4 – Prévisualisation des deux logos après import**

La section Identifiants société/organisation permet de renseigner les données légales : nom du gestionnaire, Délégué à la protection des données (DPO/RGPD), capital social, objet, numéro de TVA et identifiants professionnels (SIREN, SIRET…).

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/14PMqkQAieFslFAr-pic-063-013.png)**Figure 4.5 – Identifiants société : DPO, Capital, TVA, type d’entité légale**

<p class="callout info">**Note :** Le champ DPO (Délégué à la protection des données) est nouveau en v24. Il permet de renseigner le contact RGPD de votre organisation, visible dans certains documents et exports.</p>

Renseignez le mois de début d’exercice (les rapports du module Compta/Tréso s’afficheront à partir du mois choisi) et définissez si vous êtes assujetti ou non à la TVA — ce réglage conditionne le comportement de l’ensemble de votre instance Keatic ERP. Keatic ERP 24 gère également un 2ème et 3ème type de taxe pour les pays qui en ont besoin (hors France métropolitaine).

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/ItJvijoEUP3EFw5H-pic-064-016.png)**Figure 4.6 – Exercice fiscal et paramétrage TVA**

### **Onglet 2 – Réseaux sociaux**

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/thjxN62aj0J1MZ4b-pic-065-019.png)**Figure 4.7 – Gestion des réseaux sociaux de la société**

### **Onglet 3 – Heures d’ouverture**

Renseignez vos heures d’ouverture si vous avez une activité en présentiel.

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/vnncTW1cs9Rb1PYM-pic-066-021.png)**Figure 4.8 – Paramétrage des heures d’ouverture**

### **Informations comptable :**

Vous pouvez également renseigner les coordonnées de votre comptable.

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/jp8yFMaWHNMgPY65-pic-066-022.png)**Figure 4.9 – Informations du comptable**

# 4.03 Modules

Le choix des modules à activer est important — il dépend de l’utilisation prévue et du type de structure :

- <span style="white-space: pre-wrap;">Une </span>**société de services**<span style="white-space: pre-wrap;"> n’a pas forcément besoin des modules Produits et Stocks.</span>
- Une **PME revendeuse**<span style="white-space: pre-wrap;"> en aura besoin.</span>
- <span style="white-space: pre-wrap;">Les modules </span>**Adhérents** <span style="white-space: pre-wrap;">et </span>**Don** <span style="white-space: pre-wrap;">n’intéressent que les associations. Chaque module peut être activé ou désactivé à tout moment en fonction de l’évolution de votre usage. La page </span>**Configuration &gt; Modules/Applications**<span style="white-space: pre-wrap;"> propose en v24 quatre onglets :</span>

1. Modules/applications disponibles — liste des modules natifs à activer/désactiver
2. Rechercher un module/application externe — recherche en ligne dans le catalogue de modules
3. Déployer/Installer un module externe — installation par fichier ZIP
4. Développer son propre module/application — accès aux outils du Module Builder

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/ac5s4bwW4Lpe3Vln-pic-067-024.png)**Figure 4.10 – Page Modules/Applications avec les catégories disponibles**

Deux modes d’affichage sont disponibles : vue Kanban (par défaut, avec les modules regroupés par catégorie) et vue liste. Cliquez sur l’icône en haut à droite de la liste pour basculer.

[![test2.png](https://wiki.infras.fr/uploads/images/gallery/2026-07/scaled-1680-/x5BnPhV5xv324Zqf-test2.png)](https://wiki.infras.fr/uploads/images/gallery/2026-07/scaled-1680-/x5BnPhV5xv324Zqf-test2.png)

**Figure 4.11 – Modules GRC et GRF avec toggles d’activation**

<p class="callout info">**Note :** Le menu de Configuration dispose en v24 de nouvelles entrées dédiées : Limites et précision, PDF, SMS — des sections auparavant imbriquées dans d’autres pages.</p>

## **Installation d’un module externe :** 

Pour installer un module externe, utilisez l’onglet « Déployer/Installer un module externe » en téléchargeant directement le fichier ZIP.

<p class="callout warning">**Avertissement :** Par défaut, tous les droits sur les dossiers et fichiers d’un module externe installé sont en lecture seule. Si vous intervenez dans le code, pensez à passer vos fichiers en écriture. Pensez également à augmenter la taille maximale des fichiers envoyés si les modules externes que vous souhaitez installer dépassent la limite par défaut.</p>

# 4.04 Menus

Les gestionnaires de menu définissent le contenu des deux barres de navigation (horizontale et verticale). Il est possible de définir un gestionnaire différent selon que l’utilisateur est interne ou externe.

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/XQRB2NOaYnzx3YO3-pic-069-030.png)**Figure 4.12 – Gestionnaires de menu**

L’éditeur de menu permet de définir des entrées personnalisées.

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/QuDUaEMXftMZ2Tt6-pic-069-031.png)**Figure 4.13 – Éditeur de menu personnalisé**

Certains modules ajoutent automatiquement des entrées dans le menu Tous. En cliquant sur Nouveau, il est possible d’ajouter une entrée de menu personnalisée (par exemple un lien vers l’administration d’un module externe).

[![test3.png](https://wiki.infras.fr/uploads/images/gallery/2026-07/scaled-1680-/M9NGPDUg9556iujd-test3.png)](https://wiki.infras.fr/uploads/images/gallery/2026-07/scaled-1680-/M9NGPDUg9556iujd-test3.png)

**Figure 4.14 – Ajout d’une entrée de menu personnalisée**

<p class="callout success">**Astuce :** Il est conseillé d’utiliser le menu Eldy, qui est le mieux maintenu. Si vous constatez un comportement anormal avec un autre gestionnaire, repassez au menu Eldy pour vérifier si le problème persiste. Si vous supprimez accidentellement des entrées de menu ajoutées par un module, vous pouvez les récupérer en désactivant puis réactivant le module concerné.</p>

# 4.05 Affichage

<span style="white-space: pre-wrap;">La page </span>***Configuration &gt; Affichage***<span style="white-space: pre-wrap;"> propose en v24 cinq onglets :</span>

1. Langue et présentation — langue, multi-langue, raccourcis, longueur des listes
2. Thème et couleurs — thème visuel, couleurs, logos dans le menu
3. Tableau de bord — message du jour, vignettes de la page d’accueil
4. Page de connexion — message et image de fond personnalisés
5. Style CSS (nouveau v24) — injection de CSS personnalisé sans modifier le core

### **Langue et présentation :** 

Choisissez ici tous les paramètres liés à l’affichage de Keatic ERP. L’option multi-langue permet de gérer différentes traductions pour l’affichage des produits et de choisir la langue par défaut des tiers pour l’édition des documents PDF.

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/AiPfF9i4RIWBGEF5-pic-071-035.png)**Figure 4.15 – Options de la page Langue et présentation**

### **Thème et couleurs :**

Keatic ERP 24 propose deux thèmes visuels natifs :

- eldy — thème historique, le mieux maintenu
- md — thème Material Design, interface plus moderne

<p class="callout success">**Astuce :** Il est conseillé d’utiliser le thème Eldy, qui est le mieux maintenu. Si vous constatez un comportement anormal avec un autre thème, repassez sur Eldy pour vérifier si le problème persiste.</p>

Keatic ERP permet une personnalisation poussée de l’interface :

- Mode thème sombre (toujours désactivé / auto / toujours activé)
- Icône ou texte dans le menu supérieur
- Affichage du logo de la société dans le menu
- Afficher les images du menu principal en couleur (nouveau v24)
- Affichage des bordures gauche-droite des tableaux avec rayon de courbure configurable (nouveau v24)
- Afficher une bordure aux champs de saisie du formulaire (nouveau v24)
- Couleur de fond (page, menu haut, menu gauche)
- Couleur du texte des titres, des liens, des lignes paires/impaires
- Couleur de la ligne de surbrillance au survol
- Couleur de la ligne cochée dans les listes

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/K19ZBaVwzcCZwC3l-pic-072-038.png)**Figure 4.16 – Onglet Thème et couleurs : options de personnalisation**

### **Tableau de bord et page de connexion :**

Sous l’onglet Tableau de bord, vous pouvez renseigner le message du jour et désactiver certaines vignettes de la page d’accueil. Sous l’onglet Page de connexion, vous pouvez afficher un message personnalisé à l’aide des constantes de substitution, et définir une image de fond pour la page de connexion.

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/nDdgKM7OeXFtN8t6-pic-072-040.png)### **Style CSS (nouveau v24) :**

<span style="white-space: pre-wrap;"> L’onglet Style CSS permet d’injecter du CSS personnalisé directement depuis l’interface, sans modifier les fichiers du core ni d’un thème. Pratique pour ajuster l’apparence sans risque de régression lors des mises à jour.</span>

<p class="callout info"><span style="white-space: pre-wrap;"> Note L’icône d’accès à l’aide en ligne est située en haut à droite de chaque page</span></p>

# 4.06 Traduction

<span style="white-space: pre-wrap;">Chemin : </span>***Administration &gt; Configuration &gt; Traduction***<span style="white-space: pre-wrap;"> (/admin/translation.php) Cette page permet de rechercher les chaînes de traduction chargées par Keatic ERP et de définir des remplacements personnalisés sans modifier les fichiers sources. Un interrupteur global en haut à droite active ou désactive la réécriture des traductions (constante </span>**MAIN\_ENABLE\_OVERWRITE\_TRANSLATION**). Lorsqu'il est désactivé, les surcharges enregistrées ne sont plus appliquées et le formulaire d'ajout est grisé.

### **Onglet 1 – Rechercher une traduction :**

Cet onglet permet d'explorer toutes les chaînes de traduction actuellement chargées par Keatic ERP (fichiers .lang du cœur et des modules installés). Trois filtres sont disponibles : Langue, Clé de traduction (recherche partielle ou exacte, avec préfixe ^ ou suffixe $), et Chaîne de traduction. Le compteur en en-tête indique le nombre de résultats, le total de chaînes chargées et le nombre de fichiers .lang analysés. Pour chaque entrée du tableau, vous pouvez : - Cliquer sur l'icône crayon pour basculer vers l'onglet Remplacer avec la clé pré-remplie - Cliquer sur l'icône corbeille pour supprimer une surcharge existante - Au survol de la valeur traduite : voir la valeur en\_US de référence

### **Onglet 2 – Remplacer une chaîne de traduction :**

Cet onglet permet de créer, modifier ou supprimer des surcharges de traduction stockées en base de données (table llx\_overwrite\_trans). Ces surcharges prennent priorité sur les fichiers .lang.

<p class="callout warning">**Avertissement** <span style="white-space: pre-wrap;">: Si le module Memcached est actif ou si la constante </span>**MAIN\_USE\_CACHE\_FOR\_TRANSLATION** est activée, un avertissement s'affiche : les modifications peuvent ne pas être visibles immédiatement. Un rechargement manuel du cache peut être nécessaire.</p>

#### **Priorité de résolution des traductions**

La priorité de résolution dans Keatic ERP est la suivante :

<table id="bkmrk-priorit%C3%A9source1-%28max" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 200px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(149, 165, 166); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Priorité

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Source

</th></tr><tr style="background-color: rgb(234, 237, 237);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">1 (maximale)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Surcharges en base (**llx\_overwrite\_trans**)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">2

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Fichiers .lang du module custom (***htdocs/custom/monmodule/langs/fr\_FR/***)

</td></tr><tr style="background-color: rgb(234, 237, 237);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">3

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Fichiers .lang du cœur Keatic ERP (***htdocs/langs/fr\_FR/***)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">4 (fallback)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Langue en\_US

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

<p class="callout success">**Astuce :** Les surcharges créées ici sont spécifiques à l'entité Keatic ERP courante (compatible multicompany). Les modifications s'appliquent à tous les utilisateurs dès la prochaine page chargée.</p>

# 4.07 Valeurs / Filtres / Tris par défaut

***Chemin :***<span style="white-space: pre-wrap;"> </span>**Administration &gt; Configuration &gt; Valeurs/filtres/tris par défaut**<span style="white-space: pre-wrap;"> (/admin/defaultvalues.php) Cette page permet de définir des comportements par défaut pour les formulaires de création, les listes et les champs de saisie, sans modifier les fichiers sources. Un interrupteur global active ou désactive l'ensemble du mécanisme (constante </span>**MAIN\_ENABLE\_DEFAULT\_VALUES**). Lorsqu'il est désactivé, aucune règle n'est appliquée. La page est organisée en 5 onglets. Toutes les règles sont stockées en base de données et s'appliquent globalement à tous les utilisateurs de l'entité.

<p class="callout success">**Note :** Règle importante pour l'URL relative : pour les modules dans le répertoire custom/, n'incluez pas le préfixe custom/. Utilisez monmodule/mapage.php et non custom/monmodule/mapage.php. Vous pouvez aussi restreindre une règle à une URL avec paramètres spécifiques : societe/card.php?abc=val1&amp;def=val2 — la règle ne s'applique alors que si tous ces paramètres sont présents.</p>

### **Onglet 1 – Valeurs par défaut sur les formulaires de création :**

Permet de pré-remplir automatiquement des champs dans les formulaires de création d'enregistrements. Condition d'activation : le remplacement ne fonctionne que pour les pages qui reçoivent le paramètre action=create ou action=presend dans leur URL.

Variables de substitution disponibles dans le champ Valeur :

<table id="bkmrk-variabledescription_" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(22, 145, 121); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">**Variable**

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">**Description**

</th></tr><tr style="background-color: rgb(224, 240, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">**\_\_USER\_ID\_\_**

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Identifiant de l'utilisateur connecté

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">**\_\_USER\_LOGIN\_\_**

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Login de l'utilisateur connecté

</td></tr><tr style="background-color: rgb(224, 240, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">**\_\_USER\_LASTNAME\_\_**

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nom de l'utilisateur connecté

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">**\_\_USER\_FIRSTNAME\_\_**

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Prénom de l'utilisateur connecté

</td></tr><tr style="background-color: rgb(224, 240, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">**\_\_DATE\_TODAY\_\_**

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Date du jour

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">**\_\_ENTITY\_ID\_\_**

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Identifiant de l'entité courante

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

Exemple pratique : pour pré-remplir automatiquement un extrafield liste déroulante d'utilisateurs nommé options\_signature avec l'utilisateur connecté, saisissez la valeur \_\_USER\_ID\_\_. Pour retrouver le nom du champ HTML, faites un clic droit sur l'élément dans le navigateur et choisissez Inspecter.

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/FE9P0BhqpFuxfMFf-pic-075-044.png)

**Figure 4.18 – Configuration d'une valeur par défaut avec constante de substitution**

### **Onglet 2 – Filtres de recherche par défaut :**

Permet de pré-remplir les champs de filtre dans les pages de liste, afin qu'une recherche prédéfinie soit active à l'ouverture de la liste. Cas d'usage type : afficher uniquement les tiers actifs à l'ouverture de la liste clients, sans que l'utilisateur ait à saisir le filtre manuellement. Renseignez societe/list.php comme URL et search\_status comme champ. Les mêmes variables de substitution que l'onglet 1 sont disponibles pour les valeurs de filtre.

### **Onglet 3 – Ordre de tri par défaut :**

Permet de définir le tri appliqué par défaut à l'ouverture d'une page de liste.

<p class="callout warning">**Avertissement :** Le réglage d'un ordre de tri par défaut peut provoquer une erreur technique si le champ indiqué n'existe pas dans la liste. En cas d'erreur, revenez dans cet onglet pour supprimer la règle et restaurer le comportement natif. Pour les colonnes issues de jointures SQL, utilisez la syntaxe alias.champ (ex. s.nom, datec).</p>

### **Onglet 4 – Champs par défaut ayant le focus :**

Permet de définir quel champ reçoit automatiquement le focus (curseur actif) à l'ouverture d'une page. Cas d'usage type : placer le curseur automatiquement sur le champ « Nom » lors de la création d'un tiers. Cet onglet ne comporte pas de colonne Valeur : seul l'identifiant HTML du champ est nécessaire.

### **Onglet 5 – Champs de formulaire obligatoires :**

Permet de rendre obligatoire un champ qui ne l'est pas nativement dans Keatic ERP. Keatic ERP bloque la soumission du formulaire si le champ est vide, de la même façon que pour les champs obligatoires natifs.

<p class="callout info">**Note :** Cette fonctionnalité est supportée uniquement sur les champs de type texte.</p>

# 4.08 Widgets

**Chemin** <span style="white-space: pre-wrap;">: </span>***Administration &gt; Configuration &gt; Widgets***<span style="white-space: pre-wrap;"> (/admin/boxes.php) Les widgets sont des composants d'information que les utilisateurs peuvent afficher sur leurs pages pour les personnaliser. Seuls les widgets liés à un module actif sont présentés. La page affiche un tableau unique regroupant deux catégories : 1. Widgets disponibles — non encore activés, proposés en haut du tableau 2. Widgets activés — actifs par défaut pour tous les utilisateurs, avec leur position et leurs contrôles de gestion</span>

<p class="callout info">**Note :** Les widgets activés définissent l'affichage par défaut pour tous les utilisateurs. Chaque utilisateur peut ensuite personnaliser sa propre vue depuis son tableau de bord — ces choix personnels ne sont pas affectés par les modifications du tableau de bord par défaut.</p>

Pour activer un widget : repérez-le dans la partie haute du tableau, sélectionnez la page cible dans la liste déroulante, puis cliquez sur Activer. Les widgets signalés par une icône d'avertissement peuvent ralentir l'interface s'ils effectuent des requêtes lourdes. À activer avec précaution sur des bases volumineuses.

### **Liste des widgets disponibles dans Keatic ERP 24**

<table id="bkmrk-%23widgetgraphique1inf" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(2, 121, 145); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;"><span style="color: rgb(0, 0, 0);">\#</span>

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Widget

</th><th class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">Graphique

</th></tr><tr style="background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">1</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Informations de connexion

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">2</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Commandes fournisseurs par mois

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">✓

</td></tr><tr style="background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">3</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Plus anciennes factures fournisseurs impayées

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">4</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Dernières commandes fournisseur

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="height: 10px; background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">5</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Plus anciennes factures clients impayées

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">6</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Factures clients par mois

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">✓

</td></tr><tr style="background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">7</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Balance des comptes ouverts

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">8</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Produits en alerte de stock

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">9</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Dernières interventions

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">10</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Anniversaires de ce mois (utilisateurs)

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">11</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Événements les plus anciens à faire

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">12</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Derniers clients modifiés

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">13</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Derniers contacts/adresses

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">21</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Dernières factures clients

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">22</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Clients dont l'en-cours de facturation est dépassé

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">23</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Les derniers produits/services enregistrés

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">24</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Répartition des produits/services

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">✓

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">25</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Plus anciens services expirés

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">26</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Statistiques sur les principaux objets métier

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">27</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Les prochains événements à venir

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">28</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Derniers prospects modifiés

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">29</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Proposition par mois

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">✓

</td></tr><tr style="background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">30</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Dernières commandes clients

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">31</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Dernières expéditions clients

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

</td></tr><tr style="background-color: rgb(220, 241, 245);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;"><span style="color: rgb(0, 0, 0);">32</span>

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Les derniers produits/services contractés

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">—

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

### **Cache des fichiers widgets**

<span style="white-space: pre-wrap;">En bas de page, une option permet d'activer la mise en cache du contenu des widgets dans des fichiers temporaires (constante </span>**MAIN\_ACTIVATE\_FILECACHE**, durée : 900 secondes soit 15 minutes). Réduit la charge serveur pour les widgets affichant des données calculées.

# 4.09 Alertes

**Chemin** <span style="white-space: pre-wrap;">: </span>***Administration &gt; Configuration &gt; Alertes***<span style="white-space: pre-wrap;"> (/admin/delais.php) Cette page permet de définir les délais de tolérance au-delà desquels une icône d'alerte est affichée sur chaque élément en retard dans l'interface. Seuls les éléments liés à un module actif sont présentés. Valeur 0 : l'alerte s'affiche dès le premier jour de retard, sans délai de grâce.</span>

### **Tableau des délais de tolérance**

<table id="bkmrk-%C3%89l%C3%A9mentconstanted%C3%A9fa" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 409px;"></col><col style="width: 317px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(35, 111, 161); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Élément

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Défaut

</th></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Événements planifiés (agenda) non terminés

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_ACTIONS\_TODO

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">7 j

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Projets à fermer

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_PROJECT\_TO\_CLOSE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">—

</td></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Tâches à faire

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_TASKS\_TODO

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Proposition non fermée

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_PROPALS\_TO\_CLOSE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">31 j

</td></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Proposition non facturée

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_PROPALS\_TO\_BILL

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">7 j

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Commande non traitée

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_ORDERS\_TO\_PROCESS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">2 j

</td></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Facture client impayée

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_CUSTOMER\_BILLS\_UNPAYED

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">31 j

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Commande fournisseur non traitée

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_SUPPLIER\_ORDERS\_TO\_PROCESS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">7 j

</td></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Facture fournisseur impayée

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_SUPPLIER\_BILLS\_TO\_PAY

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">2 j

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Fournisseur devis non fermé

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_SUPPLIER\_PROPALS\_TO\_CLOSE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0 j

</td></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Fournisseur devis pas facturé

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_SUPPLIER\_PROPALS\_TO\_BILL

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0 j

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Service à activer

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_NOT\_ACTIVATED\_SERVICES

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0 j

</td></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Service expiré

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_RUNNING\_SERVICES

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0 j

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Rapprochement bancaire en attente

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_TRANSACTIONS\_TO\_CONCILIATE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">62 j

</td></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Dépôt de chèque non effectué

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_CHEQUES\_TO\_DEPOSIT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0 j

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Adhérents

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_MEMBERS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0 j

</td></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Notes de frais

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_EXPENSEREPORTS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Congés

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_HOLIDAYS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">—

</td></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Fabrication (MRP)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DELAY\_MRP

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">—

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

### **Vignette météo**

La vignette météo est un indicateur visuel affiché sur le tableau de bord qui reflète l'état global de l'activité en fonction du nombre (ou du pourcentage) d'éléments en retard.

<table id="bkmrk-optionconstanted%C3%A9sac" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 507px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(35, 111, 161); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Option

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Désactiver la vignette (Non / Oui / Sur mobile uniquement)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DISABLE\_METEO

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

Deux modes de calcul sont disponibles :

<table id="bkmrk-modeconstantestandar" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(35, 111, 161); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Mode

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Standard (nombre absolu d'éléments en retard)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_USE\_METEO\_WITH\_PERCENTAGE = 0

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Pourcentage d'éléments en retard

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_USE\_METEO\_WITH\_PERCENTAGE = 1

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

Seuils en mode standard :

<table id="bkmrk-ic%C3%B4neconditionconsta" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 167px;"></col><col style="width: 287px;"></col><col style="width: 250px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(35, 111, 161); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Icône

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Condition

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Défaut

</th></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">☀️ Soleil

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre en retard ≤ seuil 0

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_METEO\_LEVEL0

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">🌤️ Soleil voilé

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre en retard ≤ seuil 1

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_METEO\_LEVEL1

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

</td></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">☁️ Nuageux

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre en retard ≤ seuil 2

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_METEO\_LEVEL2

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">20

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">🌧️ Pluie

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre en retard ≤ seuil 3

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_METEO\_LEVEL3

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">30

</td></tr><tr style="background-color: rgb(223, 234, 242);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">⛈️ Orage

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre en retard &gt; seuil 3

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">—

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">—

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

# 4.10 Sécurité

Chemin : Administration &gt; Configuration &gt; Sécurité Accès : Administrateurs uniquement Cette page regroupe l'ensemble des paramètres de sécurité de Keatic ERP, organisés en 8 onglets depuis la v24.

<p class="callout info">**Important :** Chaque onglet dispose de son propre bouton de sauvegarde (MODIFIER ou ENREGISTRER). Les modifications sont effectives immédiatement pour tous les utilisateurs.</p>

### **Onglet 1 – Divers**

<table id="bkmrk-param%C3%A8treconstanted%C3%A9" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 330px;"></col><col style="width: 436px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(0, 81, 97); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Défaut

</th></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Utiliser les autorisations avancées des modules

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_USE\_ADVANCED\_PERMS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Délai expiration des sessions (secondes)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SESSION\_TIMEOUT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">1440 s

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre max. d'images dans un champ HTML

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_MAX\_IMG\_IN\_HTML\_CONTENT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre max. de publications par IP en un mois

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_MAX\_POST\_ON\_PUBLIC\_PAGES\_BY\_IP\_ADDRESS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">200

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre max. de fichiers joints dans un formulaire

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_MAX\_ATTACHMENT\_ON\_FORMS

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

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre max. d'échecs d'authentification en 24h

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_MAX\_NUMBER\_FAILED\_AUTH

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">100

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

- - [x] ***Comment configurer le délai d'expiration des sessions ?***

Rendez-vous dans ***Administration &gt; Configuration &gt; Sécurité &gt; Onglet 1 — Divers***<span style="white-space: pre-wrap;"> et renseignez le champ Délai expiration des sessions (constante </span>**MAIN\_SESSION\_TIMEOUT**). La valeur par défaut est 1440 secondes (24 minutes). Si ce champ n'est pas surchargé, Keatic ERP suit la valeur session.gc\_maxlifetime définie dans la configuration PHP de votre serveur. Cliquez sur MODIFIER pour appliquer immédiatement le nouveau délai à tous les utilisateurs.

- - [x] ***Comment configurer les autorisations avancées dans l'onglet Divers ?***

<span style="white-space: pre-wrap;">Activez l'option Utiliser les autorisations avancées des modules (constante </span>**MAIN\_USE\_ADVANCED\_PERMS**) dans l'onglet Divers. Cela débloque un niveau de droits supplémentaire et plus granulaire : les permissions standard se limitent à « Lire », « Créer/Modifier », « Supprimer », tandis que les permissions avancées ajoutent des droits précis comme « Valider », « Envoyer par email », « Clôturer »… Une fois activée, rendez-vous dans Accueil &gt; Utilisateurs &amp; Groupes pour attribuer ces nouvelles permissions fines depuis l'onglet Permissions de chaque utilisateur ou groupe.

### **Onglet 2 – Captcha**

Protège les formulaires publics de Keatic ERP contre les robots. Les options disponibles dépendent des modules actifs.

<table id="bkmrk-formulaire-prot%C3%A9g%C3%A9co" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(0, 81, 97); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Formulaire protégé

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Page de connexion

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_ENABLECAPTCHA

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Formulaire public de contact tiers

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_ENABLECAPTCHA\_THIRDPARTY

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Création de ticket public

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_ENABLECAPTCHA\_TICKET

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Adhésion publique

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_ENABLECAPTCHA\_MEMBER

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Formulaire de don public

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_ENABLECAPTCHA\_DONATION

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Formulaire de recrutement public

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_ENABLECAPTCHA\_RECRUITMENT

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

<span style="white-space: pre-wrap;">Si au moins un CAPTCHA est activé, une seconde section permet de choisir le moteur de génération (handler). Le moteur disponible par défaut est Standard (image générée en interne — la bibliothèque PHP GD est requise). Constante du handler : </span>**MAIN\_SECURITY\_ENABLECAPTCHA\_HANDLER**.

***Quelles sont les limites contre les attaques par force brute ?***

Keatic ERP propose plusieurs mécanismes complémentaires :

1. Limitation des échecs : après 100 échecs en 24h (constante MAIN\_SECURITY\_MAX\_NUMBER\_FAILED\_AUTH, onglet Divers), la connexion est systématiquement refusée pour le compte concerné.
2. CAPTCHA : activez-le sur la page de connexion pour bloquer les soumissions automatisées par des scripts malveillants.
3. Complexité des mots de passe : forcez des règles dans l'onglet Mots de passe pour rendre les attaques par dictionnaire beaucoup plus longues.
4. Délégation OIDC : en utilisant OpenID Connect, vous déléguez l'authentification à un fournisseur externe (Google, Keycloak…) qui dispose de ses propres systèmes de détection de force brute.
5. Journal d'audit : l'onglet Événements de sécurité trace les échecs de connexion (USER\_LOGIN\_FAILED), permettant de surveiller et analyser les tentatives d'attaque.

### **Onglet 3 – Mots de passe**

Règle de génération — un seul handler actif à la fois (interrupteur radio) :

<table id="bkmrk-handlerdescriptionlo" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 115px;"></col><col style="width: 296px;"></col><col style="width: 129px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(0, 81, 97); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Handler

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Longueur min.

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Perso

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Règles personnalisables

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Selon config

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USER\_PASSWORD\_GENERATED = Perso

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Standard

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">12 caractères, algorithme interne

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">12

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USER\_PASSWORD\_GENERATED = Standard

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">None

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Aucune suggestion (saisie libre)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USER\_PASSWORD\_GENERATED = None

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

Configuration du handler Perso (constante USER\_PASSWORD\_PATTERN, format : longueur;majMin;numMin;speMin;consec) :

<table id="bkmrk-champdescriptionlong" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 354px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(0, 81, 97); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Champ

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Longueur minimale

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre minimum de caractères (min 1)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nb min. majuscules/minuscules

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre de changements de casse requis

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nb min. chiffres

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre de chiffres requis

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nb min. caractères spéciaux

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre de symboles requis

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nb max. caractères consécutifs identiques

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Limite les répétitions (ex. « aaa »)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Pas de caractères ambigus

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Exclut les caractères difficiles à distinguer (0/O, 1/l…)

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

Paramètres de chiffrement :

<table id="bkmrk-param%C3%A8tredescription" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 355px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(0, 81, 97); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Chiffrer les mots de passe en base

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Hash MD5/bcrypt — irréversible une fois activé

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Masquer le mot de passe BDD dans conf.php

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Chiffre keatic\_main\_db\_pass dans le fichier de configuration

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Cacher le lien « Mot de passe oublié »

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Masque le lien de réinitialisation sur la page de connexion (MAIN\_SECURITY\_DISABLEFORGETPASSLINK)

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

***Comment définir des règles de complexité pour les mots de passe ?***

1. Rendez-vous dans Administration &gt; Configuration &gt; Sécurité &gt; Onglet 3 — Mots de passe.
2. Activez le handler Perso pour définir vos propres critères via la constante USER\_PASSWORD\_PATTERN.
3. Renseignez : longueur minimale, nb min. de majuscules, de chiffres, de caractères spéciaux, nombre max. de caractères consécutifs identiques, et si vous souhaitez exclure les caractères ambigus (0/O, 1/l…).
4. Il est fortement recommandé d'activer aussi Chiffrer les mots de passe en base (hash bcrypt)

**Attention, cette action est irréversible.**

1. Cliquez sur le bouton de sauvegarde pour que ces nouvelles règles s'appliquent immédiatement à tous les utilisateurs.

***Comment activer le chiffrement de la base de données dans conf.php ?***

1. Rendez-vous dans Administration &gt; Configuration &gt; Sécurité &gt; Onglet 3 — Mots de passe.
2. Localisez la ligne Masquer le mot de passe BDD dans conf.php et cliquez sur Activer.
3. Keatic ERP transforme la variable $keatic\_main\_db\_pass de votre fichier htdocs/conf/conf.php en une version chiffrée. Note importante : avant d'effectuer cette opération, assurez-vous que votre fichier conf.php est temporairement accessible en écriture par le serveur web. Une fois l'activation terminée, remettez le fichier en lecture seule.

### **Onglet 4 – Fichiers**

<table id="bkmrk-param%C3%A8treconstanted%C3%A9-1" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 369px;"></col><col style="width: 338px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(0, 81, 97); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Défaut

</th></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Taille maximale des fichiers téléchargés (Ko)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_MAXFILESIZE\_DOWNLOADED

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">—

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Taille maximale des fichiers envoyés (Ko)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_UPLOAD\_DOC

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">2048 Ko

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Masque des nouveaux fichiers (Unix/Linux)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_UMASK

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0660

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Extensions interdites au téléversement

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_FILE\_EXTENSION\_UPLOAD\_RESTRICTION

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">htm,html,php,js,py,cgi…

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Utiliser l'antivirus sur les fichiers téléversés

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_ANTIVIRUS\_UPLOAD\_ON

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

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

<p class="callout success">**Astuce :** La taille maximale des fichiers envoyés ne peut pas dépasser la limite définie dans votre php.ini (paramètre upload\_max\_filesize).</p>

***Quelles sont les extensions de fichiers interdites au téléversement ?***

Par défaut, les extensions suivantes sont refusées pour empêcher l'envoi de scripts malveillants :

- Web et Scripts : htm, html, js
- Programmation et Exécutables : php, py (Python), cgi
- Extensions supplémentaires (selon les versions récentes) : shtml, phar, php3, php4, php5. La liste est stockée dans la constante MAIN\_FILE\_EXTENSION\_UPLOAD\_RESTRICTION. L'administrateur peut la personnaliser en ajoutant ou supprimant des extensions, séparées par des virgules.

***Comment fonctionne l'antivirus pour les fichiers téléversés ?***

<span style="white-space: pre-wrap;">Lorsqu'un utilisateur ajoute un document, Keatic ERP intercepte le fichier avant son enregistrement définitif et l'envoie pour analyse au logiciel de sécurité configuré. Si le moteur antivirus détecte une menace, le téléversement est immédiatement refusé. Configuration (onglet 4 — Fichiers) : </span>

1. <span style="white-space: pre-wrap;">Activation : basculez </span>**MAIN\_ANTIVIRUS\_UPLOAD\_ON** <span style="white-space: pre-wrap;">sur ON. </span>
2. Commande antivirus : indiquez le chemin complet vers l'exécutable (ex. /usr/bin/clamscan pour ClamAV sous Linux, ClamWin sous Windows).
3. <span style="white-space: pre-wrap;">Paramètres antivirus : saisissez les arguments nécessaires (ex. --no-summary -r). </span>
4. Test : un formulaire de test d'envoi de fichier est disponible en bas de la page pour vérifier la configuration en conditions réelles. Keatic ERP ne fournit pas son propre moteur de détection — il pilote l'appel à l'outil système lors de chaque téléversement.

### **Onglet 5 – Accès externes (Proxy)**

Si le serveur Keatic ERP doit passer par un proxy pour accéder à Internet (mises à jour, cours des devises, météo…), configurez ici les paramètres de connexion.

<table id="bkmrk-param%C3%A8treconstanted%C3%A9-2" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 351px;"></col><col style="width: 304px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(0, 81, 97); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Défaut

</th></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Timeout de connexion (secondes)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_USE\_CONNECT\_TIMEOUT

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

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Délai expiration de réponse (secondes)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_USE\_RESPONSE\_TIMEOUT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">30

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Utiliser un serveur proxy

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PROXY\_USE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Non

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nom/Adresse du proxy

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PROXY\_HOST

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">—

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Port du proxy

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PROXY\_PORT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Identifiant proxy

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PROXY\_USER

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">—

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Mot de passe proxy

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PROXY\_PASS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">—

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

### **Onglet 6 – Événements de sécurité**

Active l'enregistrement d'un journal d'audit pour les événements de sécurité sensibles. Chaque événement s'active individuellement.

<p class="callout warning">**Avertissement :** Cette fonctionnalité peut générer un volume important de données en base selon le nombre d'événements activés et l'activité de votre instance.</p>

<table id="bkmrk-%C3%89v%C3%A9nementdescription" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(0, 81, 97); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Événement

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USER\_LOGIN

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Connexion réussie

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LOGEVENTS\_USER\_LOGIN

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USER\_LOGIN\_FAILED

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Échec de connexion

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LOGEVENTS\_USER\_LOGIN\_FAILED

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USER\_LOGOUT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Déconnexion

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LOGEVENTS\_USER\_LOGOUT

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USER\_CREATE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Création d'un utilisateur

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LOGEVENTS\_USER\_CREATE

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USER\_MODIFY

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Modification d'un utilisateur

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LOGEVENTS\_USER\_MODIFY

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USER\_NEW\_PASSWORD

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nouveau mot de passe généré

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LOGEVENTS\_USER\_NEW\_PASSWORD

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USER\_ENABLEDISABLE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Activation/désactivation d'un compte

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LOGEVENTS\_USER\_ENABLEDISABLE

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USER\_DELETE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Suppression d'un utilisateur

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LOGEVENTS\_USER\_DELETE

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USERGROUP\_CREATE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Création d'un groupe

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LOGEVENTS\_USERGROUP\_CREATE

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USERGROUP\_MODIFY

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Modification d'un groupe

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LOGEVENTS\_USERGROUP\_MODIFY

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">USERGROUP\_DELETE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Suppression d'un groupe

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LOGEVENTS\_USERGROUP\_DELETE

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

***Où consulter le journal d'audit des événements de sécurité ?***

Le journal d'audit est consultable dans Accueil &gt; Outils d'administration &gt; Événements de sécurité. L'activation de l'enregistrement se fait dans Administration &gt; Configuration &gt; Sécurité &gt; Onglet 6 — Événements de sécurité (/admin/events.php). Dans les versions récentes (v23 et v24), le journal consigne également l'installation (ou la tentative d'installation) d'un module. Note : si vous utilisez le module Archives/Logs Inaltérables (conformité Loi Finance), les événements liés aux factures et paiements sont gérés dans un journal spécifique et distinct, accessible via le menu dédié à ce module.

### **Onglet 7 – Paramètres d'authentification OpenID Connect**

Permet à Keatic ERP de déléguer l'authentification à un fournisseur d'identité OpenID Connect pour mettre en place du SSO (Single Sign-On). Lorsque l'option est activée (toggle ON/OFF), des champs de configuration supplémentaires apparaissent pour saisir les paramètres du fournisseur (URL, client ID, secret, etc.). Exemples de fournisseurs compatibles : Keycloak, Google, Microsoft Entra ID.

<p class="callout info"><span style="white-space: pre-wrap;"> Note : L'intégration native OpenID Connect est une nouveauté v24, remplaçant les anciens modules externes. Elle permet une authentification déléguée sans installation de module tiers.</span></p>

### **Onglet 8 – En-têtes de sécurité HTTP**

Réservé aux utilisateurs avancés. Un en-tête mal configuré peut rendre Keatic ERP inaccessible ou bloquer des ressources légitimes.

<table id="bkmrk-en-t%C3%AAte-httpdescript" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col style="width: 389px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(0, 81, 97); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">En-tête HTTP

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Referer-Policy

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Contrôle les informations de référencement transmises lors des navigations

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_FORCERP

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Strict-Transport-Security (HSTS)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Force l'utilisation de HTTPS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_FORCESTS

</td></tr><tr style="background-color: rgb(220, 235, 238);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Permissions-Policy

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Contrôle l'accès aux API navigateur (caméra, micro…)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_FORCEPP

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Content-Security-Policy (CSP)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Déclare les sources autorisées pour scripts, styles, images…

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_FORCECSP

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

<p class="callout success">**Astuce :** Le bouton + sur le champ CSP ouvre un assistant visuel pour ajouter des directives et sources sans saisie manuelle. Keatic ERP injecte automatiquement script-src 'self' 'unsafe-inline' et style-src 'self' 'unsafe-inline' pour ne pas bloquer son propre fonctionnement.</p>

### **Permissions par défaut**

Sous l'onglet Permissions par défaut, vous définissez les droits automatiquement attribués à chaque nouvel utilisateur créé. Cliquez sur + pour accorder une permission par défaut, et sur − pour la retirer.

<p class="callout warning">**Avertissement :** Ces réglages ne s'appliquent qu'aux nouveaux utilisateurs. Pour modifier les permissions d'un utilisateur ou groupe existant, allez sur sa fiche dans Accueil &gt; Utilisateurs &amp; Groupes.</p>

***Comment gérer les permissions par défaut des nouveaux utilisateurs ?***

Rendez-vous dans Accueil &gt; Configuration &gt; Sécurité &gt; Permissions par défaut. L'interface présente tous les modules activés avec leurs actions possibles.

- Cliquez sur + pour qu'une permission soit donnée par défaut à tous les futurs utilisateurs.
- Cliquez sur - pour supprimer cette permission de la configuration par défaut. Points importants : - Ces réglages n'ont aucun effet sur les utilisateurs déjà existants. - Configurez cette section après avoir activé tous les modules souhaités — la liste des droits disponibles dépend des modules actifs. - Si vous avez activé les autorisations avancées (onglet Divers), des permissions plus fines (valider, envoyer par mail…) apparaissent également dans cette liste.

# 4.11 Sauvegarde

<span style="white-space: pre-wrap;">Anticipez les problèmes (plantage serveur, mise à jour échouée) en utilisant les outils de sauvegarde intégrés. </span>

**Chemin :**<span style="white-space: pre-wrap;"> </span>***Configuration &gt; Outils d’administration &gt; Sauvegarde***<span style="white-space: pre-wrap;"> </span>

<span style="white-space: pre-wrap;">Gardez les réglages par défaut et cliquez sur </span>**Générer Sauvegarde**.

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/uPcXf3Hb6KtWVVve-pic-086-056.png)**Figure 4.19 – Outil de sauvegarde de la base de données**

<p class="callout warning">**Avertissement :** Pensez à récupérer le fichier et à le placer ailleurs que sur le serveur, sinon la sauvegarde n’aura servi à rien !</p>

La sauvegarde complète inclut :

1. La base de données (via l’outil de sauvegarde)
2. Le dossier documents/ — contient vos logos et tous les documents générés ou uploadés
3. Le fichier conf/conf.php — fait le lien avec votre base de données ; sans lui, vous repartez de zéro
4. Le dossier custom/ — contient vos modules externes

### **Accès HTTPS local (pour les Logs Inaltérables)**

Pour utiliser les Archives/Logs Inaltérables, Keatic ERP doit être accessible via HTTPS. Voici les étapes pour configurer HTTPS en local avec XAMPP et mkcert.

![Figure](https://wiki.infras.fr/uploads/images/gallery/2026-07/LWmft1rV51vu5ulM-pic-087-058.png)**Figure 4.20 – Commandes mkcert pour générer un certificat local**

1. Déclarer le domaine local. Éditez C:\\Windows\\System32\\drivers\\etc\\hosts et ajoutez :```
    127.0.0.1 keatic ERP-230.local
    ```
2. Installer mkcert. Téléchargez mkcert.exe depuis les releases officielles GitHub et placez-le dans C:\\tools\\mkcert\\.
3. Installer l'autorité locale (CA)```
    cd C:\tools\mkcert
    .\mkcert.exe -install
    ```
4. Générer le certificat SSL```
    mkdir C:\xampp\apache\conf\ssl-keatic ERP
    cd C:\xampp\apache\conf\ssl-keatic ERP
    C:\tools\mkcert\mkcert.exe keatic ERP-230.local
    ```
    
    Fichiers générés : keatic ERP-230.local.pem et keatic ERP-230.local-key.pem
5. Activer SSL dans Apache. Dans C:\\xampp\\apache\\conf\\httpd.conf, vérifiez que ces lignes sont actives :```
    LoadModule ssl_module modules/mod_ssl.so
    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
    Include conf/extra/httpd-ssl.conf
    Include conf/extra/httpd-vhosts.conf
    ```
6. Ajouter le VirtualHost HTTPS. Dans C:\\xampp\\apache\\conf\\extra\\httpd-vhosts.conf :```
    <VirtualHost *:443>
        ServerName keatic ERP-230.local
        DocumentRoot "C:/xampp/htdocs/keatic ERP-230/htdocs"
        <Directory "C:/xampp/htdocs/keatic ERP-230/htdocs">
            AllowOverride All
            Require all granted
        </Directory>
        SSLEngine on
        SSLCertificateFile "C:/xampp/apache/conf/ssl-keatic ERP/keatic ERP-230.local.pem"
        SSLCertificateKeyFile "C:/xampp/apache/conf/ssl-keatic ERP/keatic ERP-230.local-key.pem"
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerName keatic ERP-230.local
        Redirect permanent / https://keatic ERP-230.local/
    </VirtualHost>
    ```
7. Redémarrer Apache. Depuis le panneau de contrôle XAMPP : Stop Apache puis Start Apache.
8. Vérifier HTTPS côté PHP. Créez tests\_https.php dans votre DocumentRoot :```
    <?php
    echo "HTTPS=" . ($_SERVER['HTTPS'] ?? 'n/a') . "\n";
    echo "PORT=" . ($_SERVER['SERVER_PORT'] ?? 'n/a') . "\n";
    echo "HOST=" . ($_SERVER['HTTP_HOST'] ?? 'n/a') . "\n";
    ```
    
    Ouvrez https://keatic ERP-230.local/tests\_https.php — résultat attendu : HTTPS=on.
9. Forcer Keatic ERP en HTTPS. Dans htdocs/conf/conf.php :

```
$keatic_main_url_root = 'https://keatic ERP-230.local';
$keatic_main_force_https = '1';
```

### **Logs Inaltérables**

Active la journalisation de certains événements métiers dans une archive inaltérable (table d’événements chaînés, lisible et exportable). Ce module est requis pour être conforme aux exigences légales de certains pays (Loi de Finance 2016 / Norme 525 en France).

[![test4.png](https://wiki.infras.fr/uploads/images/gallery/2026-07/scaled-1680-/1eAsRWsDMaA0w9CG-test4.png)](https://wiki.infras.fr/uploads/images/gallery/2026-07/scaled-1680-/1eAsRWsDMaA0w9CG-test4.png)

**Figure 4.21 – Configuration des Logs Inaltérables**

<p class="callout warning">**Avertissement :** Obligation légale en France : vous devez générer des archives de journaux inaltérables au moins une fois par an (recommandation mensuelle), et les conserver pendant au moins 7 ans sur au moins 2 supports physiques différents.</p>

***Quels sont les bénéfices du module de logs inaltérables ?***

Le module BlockedLog apporte plusieurs bénéfices essentiels :

1. Conformité légale : assure la compatibilité avec la Loi Finance 2016 (norme NF525/LNE) concernant l’inaltérabilité, la sécurisation, la conservation et l’archivage des données. Son activation est un prérequis pour obtenir une attestation de conformité.
2. Intégrité absolue (technologie blockchain) : les données sont enregistrées sous forme d’une table d’événements chaînés avec signature numérique. Il est impossible de modifier ou supprimer une entrée sans corrompre toute la chaîne.
3. Traçage des opérations critiques : création des factures, enregistrement des paiements (y compris partiels), impression/téléchargement et envoi par email des documents de facturation.
4. Archivage sécurisé : export du journal dans des fichiers protégés par mot de passe, conservation obligatoire pendant 7 ans. Important : l’activation de ce module est irréversible dès lors que les premières saisies sont effectuées.

# 4.12 Limites et précision

**Chemin** : ***Administration &gt; Configuration &gt; Limites et précision***<span style="white-space: pre-wrap;"> (/admin/limits.php) Cette page permet de définir le nombre de décimales utilisé par Keatic ERP lors des calculs et de l'affichage des prix, ainsi que la règle d'arrondi appliquée aux totaux. Une section d'exemples live permet de vérifier immédiatement l'impact de chaque réglage avant de valider.</span>

<table id="bkmrk-param%C3%A8treconstanted%C3%A9" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 236px;"></col><col style="width: 199px;"></col><col style="width: 97px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(44, 62, 80); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">Défaut

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th></tr><tr style="background-color: rgb(226, 230, 234);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Décimales prix unitaires

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAX\_DECIMALS\_UNIT

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">5

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Précision des prix unitaires (max 8)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Décimales prix totaux

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAX\_DECIMALS\_TOT

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">2

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Précision des prix totaux HT/TVA/TTC (max 8)

</td></tr><tr style="background-color: rgb(226, 230, 234);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Décimales affichées à l'écran

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAX\_DECIMALS\_SHOWN

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">8

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Décimales visibles par l'utilisateur

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Pas d'arrondi

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_ROUNDING\_RULE\_TOT

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">vide

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Pour les pays sans monnaie décimale en base 10

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

<p class="callout info">**Note :** <span style="white-space: pre-wrap;">La constante </span>**MAIN\_MAX\_DECIMALS\_SHOWN** accepte une valeur étendue sous la forme x... (ex. 2...). Dans ce cas, Keatic ERP affiche les x premières décimales puis remplace les suivantes par des points de suspension, indiquant que la valeur est tronquée pour l'affichage sans perte de précision interne.</p>

<span style="white-space: pre-wrap;">Contraintes de validation : - Aucune valeur ne peut être négative ni dépasser 8 - </span>**MAIN\_MAX\_DECIMALS\_SHOWN** <span style="white-space: pre-wrap;">ne peut pas être 0 - </span>**MAIN\_MAX\_DECIMALS\_SHOWN** <span style="white-space: pre-wrap;">doit être supérieur ou égal à </span>**MAIN\_MAX\_DECIMALS\_UNIT** <span style="white-space: pre-wrap;">et </span>**MAIN\_MAX\_DECIMALS\_TOT**

<p class="callout success">**Astuce :** Pour la France, les valeurs standard recommandées sont :</p>

<table id="bkmrk-constantevaleur-reco" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(44, 62, 80); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">Valeur recommandée

</th></tr><tr style="background-color: rgb(226, 230, 234);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAX\_DECIMALS\_UNIT

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">5

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAX\_DECIMALS\_TOT

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">2

</td></tr><tr style="background-color: rgb(226, 230, 234);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAX\_DECIMALS\_SHOWN

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">8 (ou 2...)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_ROUNDING\_RULE\_TOT

</td><td class="align-center" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: center;">vide

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

<p class="callout warning">**Avertissement :** Un mauvais réglage de ces paramètres peut provoquer des écarts d'arrondi sur les totaux de factures (ex. : total TTC ≠ HT + TVA). Vérifiez toujours les exemples affichés en bas de page après toute modification.</p>

**Support multidevise**<span style="white-space: pre-wrap;"> : lorsque le module Multi-devise est activé avec </span>**MULTICURRENCY\_USE\_LIMIT\_BY\_CURRENCY**<span style="white-space: pre-wrap;">, la page affiche un onglet par devise configurée. Les quatre constantes prennent alors un suffixe avec le code ISO de la devise (ex. </span>**MAIN\_MAX\_DECIMALS\_UNIT\_EUR**<span style="white-space: pre-wrap;">, </span>**MAIN\_MAX\_DECIMALS\_TOT\_USD**…).

# 4.13 PDF

**Chemin**<span style="white-space: pre-wrap;"> : </span>***Administration &gt; Configuration &gt; PDF***<span style="white-space: pre-wrap;"> (/admin/pdf.php)</span>  
Cette page regroupe tous les paramètres globaux de génération des documents PDF dans Keatic ERP. Elle est divisée en deux onglets.

<table id="bkmrk-ongleturldescription" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 207px;"></col><col style="width: 214px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(131, 96, 93); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Onglet

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">URL

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Paramètres globaux

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">/admin/pdf.php

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Options communes à tous les PDF générés

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Paramètres spécifiques

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">/admin/pdf\_other.php

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Options propres à chaque module

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

### **Onglet 1 – Paramètres globaux**

##### **Format papier et marges :**

<table id="bkmrk-param%C3%A8treconstanted%C3%A9" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(131, 96, 93); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Défaut

</th></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Format papier

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PDF\_FORMAT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">A4 (210×297 mm)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Marge gauche (mm)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PDF\_MARGIN\_LEFT

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

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Marge droite (mm)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PDF\_MARGIN\_RIGHT

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

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Marge haute (mm)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PDF\_MARGIN\_TOP

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

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Marge basse (mm)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PDF\_MARGIN\_BOTTOM

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

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

##### **Règles pour les sections Adresse :**

<table id="bkmrk-param%C3%A8treconstanted%C3%A9-1" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 362px;"></col><col style="width: 320px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(131, 96, 93); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Défaut

</th></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Masquer le numéro de TVA intracommunautaire

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_TVAINTRA\_NOT\_IN\_ADDRESS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher Id. prof. 1 (SIREN)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PROFID1\_IN\_ADDRESS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher Id. prof. 2 (SIRET)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PROFID2\_IN\_ADDRESS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher Id. prof. 3 (NAF/APE)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PROFID3\_IN\_ADDRESS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher Id. prof. 4 (RCS/RM)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PROFID4\_IN\_ADDRESS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher Id. prof. 5 (numéro EORI)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PROFID5\_IN\_ADDRESS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher Id. prof. 6 (numéro RNA)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PROFID6\_IN\_ADDRESS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher la forme juridique

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LEGALFORM\_IN\_ADDRESS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Masquer les bordures du cadre expéditeur

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PDF\_NO\_SENDER\_FRAME

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Masquer les bordures du cadre destinataire

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PDF\_NO\_RECIPIENT\_FRAME

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Inverser expéditeur et destinataire

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_INVERT\_SENDER\_RECIPIENT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Position standard française (La Poste)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PDF\_USE\_ISO\_LOCATION

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

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

##### **Règles TVA :**

<table id="bkmrk-param%C3%A8treconstanted%C3%A9-2" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 356px;"></col><col style="width: 323px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(131, 96, 93); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Défaut

</th></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Masquer toutes les informations TVA

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_GENERATE\_DOCUMENTS\_WITHOUT\_VAT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Masquer la taxe locale 1 (LT1)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PDF\_MAIN\_HIDE\_SECOND\_TAX

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Masquer la taxe locale 2 (LT2)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PDF\_MAIN\_HIDE\_THIRD\_TAX

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

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

##### **Autres options globales :**

<table id="bkmrk-param%C3%A8treconstanted%C3%A9-3" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 354px;"></col><col style="width: 334px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(131, 96, 93); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Défaut

</th></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher les libellés en 2 langues

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">PDF\_USE\_ALSO\_LANGUAGE\_CODE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">vide

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Hauteur du logo (mm)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DOCUMENTS\_LOGO\_HEIGHT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">20

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Cadres aux coins arrondis (0, 1, 2 ou 3)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PDF\_FRAME\_CORNER\_RADIUS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Cacher le code client

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_PDF\_HIDE\_CUSTOMER\_CODE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Cacher la référence des produits

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_GENERATE\_DOCUMENTS\_HIDE\_REF

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Cacher la description des produits

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_GENERATE\_DOCUMENTS\_HIDE\_DESC

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Cacher les détails des prix sur lignes

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_GENERATE\_DOCUMENTS\_HIDE\_DETAILS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Informations dans le pied de page (0/1/2/3)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_GENERATE\_DOCUMENTS\_SHOW\_FOOT\_DETAILS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Format des documents PDF (1.7 / PDF/A-1b / PDF/A-3b)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">PDF\_USE\_A

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">0

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

<p class="callout info">**Note :** Le format PDF/A-3b permet d'embarquer des pièces jointes XML (ex. : Factur-X pour la facturation électronique). La fonctionnalité de concaténation PDF (CGV en fin de document) nécessite la bibliothèque FPDI ou TCPDI.</p>

### **Onglet 2 – Paramètres spécifiques**

Chaque section n'apparaît que si le module correspondant est activé. Les principaux paramètres disponibles par type de document :

##### **Factures — options notables :**

<table id="bkmrk-param%C3%A8treconstanteaf" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(131, 96, 93); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher la colonne Prix TTC

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">PDF\_INVOICE\_SHOW\_PRICE\_INCL\_TAX

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher le code QR ZATCA (Arabie Saoudite)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_ADD\_ZATCA\_QR\_CODE

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher le code QR EPC (virement SEPA instantané)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_ADD\_EPC\_QR\_CODE

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher le QR-Bill suisse

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_ADD\_SWISS\_QR\_CODE

</td></tr><tr style="background-color: rgb(240, 230, 229);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Mention « catégorie d'opérations » (décret français 2022)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">INVOICE\_CATEGORY\_OF\_OPERATION

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

<p class="callout warning">**Avertissement :** Les QR codes ZATCA et Swiss QR sont mutuellement exclusifs : activer l'un désactive automatiquement l'autre.</p>

Chaque type de document (propositions, commandes clients, contrats, factures, commandes fournisseur, expéditions, réceptions) dispose de ses propres options : affichage du prix TTC, image des produits sur les lignes, adresse de livraison, et concaténation d'un PDF CGV en fin de document.

# 4.14 Emails

**Chemin** : ***Administration &gt; Configuration &gt; Emails***<span style="white-space: pre-wrap;"> (/admin/mails.php)</span>  
Cette page centralise la configuration de l'envoi et de la réception des emails dans Keatic ERP. Elle est divisée en cinq onglets.

<table id="bkmrk-ongleturldescription" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 261px;"></col><col style="width: 292px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(43, 87, 0); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Onglet

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">URL

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">E-mails sortants

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">/admin/mails.php

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Configuration principale du transport email

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Emails sortants (Réinitialisation mdp)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">/admin/mails\_passwordreset.php

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Transport dédié aux emails de réinitialisation

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Expéditeur des e-mails

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">/admin/mails\_senderprofile\_list.php

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Liste des profils expéditeurs réutilisables

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Modèles des courriels

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">/admin/mails\_templates.php

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Bibliothèque de modèles d'emails

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">E-mails entrants

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">/admin/mails\_ingoing.php

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Configuration de la réception (collecteur)

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

### **Onglet 1 – E-mails sortants**

<span style="white-space: pre-wrap;">Interrupteur global : </span>**MAIN\_DISABLE\_ALL\_MAILS** — bloque tous les envois d'emails. Utile pour les environnements de test.

##### **Méthodes d'envoi disponibles :**

<table id="bkmrk-m%C3%A9thodedescriptionph" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background-color: rgb(43, 87, 0); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Méthode

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">PHP mail function

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Fonction native PHP — non recommandée en production

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">SMTP/SMTPS socket library

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Connexion SMTP directe

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Swift Mailer socket library

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Bibliothèque Swift Mailer avec support DKIM

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

<p class="callout warning">**Avertissement :** La méthode PHP mail function est déconseillée en production car elle dépend de la configuration locale du serveur, peut être bloquée par les filtres antispam et ne supporte pas l'authentification SMTP. Keatic ERP affiche un avertissement si cette méthode est sélectionnée.</p>

##### **Paramètres de transport SMTP :**

<table id="bkmrk-param%C3%A8treconstanted%C3%A9" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 361px;"></col><col style="width: 336px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(43, 87, 0); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Défaut

</th></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Méthode d'envoi

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_SENDMODE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">mail

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Serveur SMTP

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_SMTP\_SERVER

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">(valeur php.ini)

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Port SMTP

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_SMTP\_PORT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">25

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Type d'authentification (NONE/LOGIN/PLAIN/XOAUTH2)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_SMTPS\_AUTH\_TYPE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">LOGIN

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Identifiant SMTP

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_SMTPS\_ID

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">vide

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Mot de passe SMTP

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_SMTPS\_PW

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">vide

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Service OAuth (si XOAUTH2)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_SMTPS\_OAUTH\_SERVICE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">vide

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Chiffrement TLS (port 465)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_EMAIL\_TLS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Chiffrement STARTTLS (port 587)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_EMAIL\_STARTTLS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Autoriser les certificats autosignés

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_EMAIL\_SMTP\_ALLOW\_SELF\_SIGNED

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Off

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

<p class="callout info">**Note :** TLS et STARTTLS sont mutuellement exclusifs : activer l'un désactive l'autre automatiquement. DKIM n'est disponible qu'avec la méthode Swift Mailer.</p>

##### **Options DKIM (uniquement avec Swift Mailer) :**

<table id="bkmrk-param%C3%A8treconstanteac" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 364px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(43, 87, 0); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Activer DKIM

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_EMAIL\_DKIM\_ENABLED

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Domaine DKIM

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_EMAIL\_DKIM\_DOMAIN

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Sélecteur DKIM

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_EMAIL\_DKIM\_SELECTOR

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Clé privée DKIM (format PEM)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_EMAIL\_DKIM\_PRIVATE\_KEY

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

##### **Autres options :**

<table id="bkmrk-param%C3%A8treconstanted%C3%A9-1" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 414px;"></col><col style="width: 274px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(43, 87, 0); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Paramètre

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Constante

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Défaut

</th></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Rediriger tous les emails vers une adresse test

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_FORCE\_SENDTO

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">vide

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">E-mail de l'expéditeur automatique

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_EMAIL\_FROM

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">robot@domain.com

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Expéditeur par défaut (user / company / profil)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_DEFAULT\_FROMTYPE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">user

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">E-mail pour les retours d'erreur (bounces)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_ERRORS\_TO

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">vide

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Copie cachée systématique (Bcc)

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAIL\_AUTOCOPY\_TO

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">vide

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

<p class="callout success">**Astuce :** <span style="white-space: pre-wrap;">Le bouton </span>**TESTER DISPONIBILITÉ SERVEUR** teste si le serveur SMTP est joignable (connexion TCP sur le port configuré). Les boutons **TESTER ENVOI**<span style="white-space: pre-wrap;"> et </span>**TESTER ENVOI HTML**<span style="white-space: pre-wrap;"> permettent d'envoyer un email de test. Un lien en bas de page permet de vérifier les enregistrements </span>**DNS SPF** <span style="white-space: pre-wrap;">et </span>**DMARC** des domaines utilisés.</p>

### **Onglet 2 – Emails de réinitialisation du mot de passe**

<span style="white-space: pre-wrap;">Permet de définir une configuration SMTP distincte utilisée exclusivement pour les emails de réinitialisation de mot de passe. Pratique pour utiliser un serveur transactionnel à haute délivrabilité pour ces emails critiques. Lorsque la méthode est default, Keatic ERP utilise la configuration de l'onglet principal. Les constantes sont identiques à l'onglet 1 avec le suffixe \_PASSWORDRESET (ex. </span>**MAIN\_MAIL\_SENDMODE\_PASSWORDRESET**<span style="white-space: pre-wrap;">, </span>**MAIN\_MAIL\_SMTP\_SERVER\_PASSWORDRESET**…).

### **Onglet 3 – Expéditeur des e-mails**

Gère la liste des profils expéditeurs de la table llx\_c\_email\_senderprofile. Chaque profil est une identité d'envoi réutilisable qui apparaît dans la liste déroulante de l'expéditeur lors de la composition d'un email.

<table id="bkmrk-colonnedescriptionli" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 283px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(43, 87, 0); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Colonne

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Libellé

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nom du profil (ex. « Service commercial », « Support »)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Email

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Adresse email de l'expéditeur

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Utilisateur

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Si renseigné, le profil est privé et réservé à cet utilisateur

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Position

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Ordre d'affichage dans la liste déroulante

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">État

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Actif / Inactif

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

Chaque profil peut inclure une signature HTML qui sera utilisée à la place de la signature personnelle de l'utilisateur lors de l'envoi avec ce profil.

### **Onglet 4 – Modèles des courriels**

<span style="white-space: pre-wrap;">Liste les modèles d'emails définis dans Keatic ERP, utilisés pour pré-remplir le sujet et le corps des emails envoyés depuis les différents modules. Les modèles peuvent utiliser des variables de substitution du type </span>**\_\_MAIN\_INFO\_SOCIETE\_NOM\_\_, \_\_REF\_\_, \_\_LASTNAME\_\_**… qui sont remplacées dynamiquement au moment de l'envoi.

<table id="bkmrk-colonnedescriptionli-1" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 282px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(43, 87, 0); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Colonne

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">Description

</th></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Libellé

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nom du modèle

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Langue

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Langue du modèle (vide = toutes langues)

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Type de modèle

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Type de document associé (Factures, Propositions…)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Propriétaire

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Utilisateur propriétaire si modèle privé

</td></tr><tr style="background-color: rgb(229, 236, 220);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Joindre le fichier

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Indique si le PDF lié doit être joint automatiquement

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Défaut

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Si activé, ce modèle est présélectionné par défaut

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

### **Onglet 5 – E-mails entrants**

La réception des emails est gérée par le module Collecteur de courrier électronique. Activez et configurez ce module si vous avez besoin de prendre en charge les messages entrants. Le module Collecteur permet de connecter Keatic ERP à une boîte IMAP/POP3 et de traiter automatiquement les emails entrants : création de tickets, liaison aux objets existants (commandes, factures…).

##### **Authentification SPF et DKIM :**

Pour éviter que les emails envoyés par Keatic ERP soient classés en spam, configurez les protocoles d'authentification. SPF (Sender Policy Framework) Ajoutez un enregistrement TXT dans votre zone DNS. Exemple pour Google Workspace :

<table id="bkmrk-v%3Dspf1-include%3A_spf." style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 13px; background-color: rgb(245, 245, 245);"><colgroup><col></col></colgroup><tbody><tr><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">v=spf1 include:\_spf.google.com ~all

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

DKIM (DomainKeys Identified Mail)

1. Activez la signature DKIM depuis votre service de messagerie (Google Workspace, Microsoft 365…)
2. Récupérez l'enregistrement DNS fourni (type TXT, avec sélecteur et clé publique)
3. Ajoutez-le dans la zone DNS de votre domaine

La valeur ressemble à :

<table id="bkmrk-v%3Ddkim1%3B-k%3Drsa%3B-p%3Dmi" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 13px; background-color: rgb(245, 245, 245);"><colgroup><col></col></colgroup><tbody><tr><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">v=DKIM1; k=rsa; p=MIGfM...

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

# 4.15 Dictionnaires

Définissez ici les données de référence. Vous pouvez compléter ou modifier les données prédéfinies. Seuls les éléments en rapport avec un module actif sont présentés. Cette page permet d'éditer les listes de valeurs des objets Keatic ERP :

<table id="bkmrk-cat%C3%A9gorieexemplesg%C3%A9o" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 126px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(31, 111, 120); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">**Catégorie**

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">**Exemples**

</th></tr><tr style="background-color: rgb(220, 234, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Géographie

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Monnaies, Pays, Régions, Départements/Provinces

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Tiers

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Formes juridiques, Types de tiers, Effectifs, Niveaux de prospection, Statuts de prospection, Titres de civilité, Types de contacts

</td></tr><tr style="background-color: rgb(220, 234, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Agenda

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Types d'événements

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Projets

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Statuts d'opportunités

</td></tr><tr style="background-color: rgb(220, 234, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Comptabilité

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Types de charges sociales/fiscales

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Commercial

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Conditions de règlement, Modes de paiement, Origines des propales, Méthodes de commandes

</td></tr><tr style="background-color: rgb(220, 234, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Logistique

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Méthodes d'expédition, Délais de livraison, Incoterms, Formats papier, Unités

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Fiscal

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Taux de TVA (et taxes de ventes US)

</td></tr><tr style="background-color: rgb(220, 234, 236);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Divers

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Types de déplacement, Types de ressource, Montants des timbres fiscaux

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

<p class="callout info">**Note :** Les entrées UltimatepdfLine et UltimatepdfTitle sont ajoutées par le module externe Ultimatepdf pour créer des lignes de texte spécifiques ou renommer des documents (ex. « Commande » → « Facture Proforma »).</p>

# 4.16 Utilisateurs

La dernière étape consiste à créer les utilisateurs et à leur attribuer des permissions. Presque tous les modules, même activés, ne sont accessibles que si les permissions correspondantes ont été accordées. Rendez-vous dans Accueil &gt; Utilisateurs &amp; Groupes.

<p class="callout danger">**Important :** Configurez les utilisateurs et leurs droits après avoir activé tous les modules souhaités — la liste des droits disponibles dépend des modules activés.</p>

Pour donner des droits à un utilisateur, allez sur sa fiche et cliquez sur l’onglet Permission.

Pour éviter de reconfigurer chaque nouvel utilisateur manuellement, définissez des permissions par défaut (dans Configuration &gt; Sécurité). Ces permissions sont automatiquement attribuées aux nouveaux utilisateurs créés ; elles n’affectent pas les utilisateurs existants.

<p class="callout warning">**Avertissement :** Les permissions qui apparaissent comme « héritées » sur la fiche d’un utilisateur proviennent d’un groupe auquel il appartient.</p>

# 4.17 Options cachées (constantes avancées)

<span style="white-space: pre-wrap;">Quelques options non visibles dans l'interface standard sont disponibles via des constantes à définir dans </span>***Accueil &gt; Configuration &gt; Divers***. Dans la plupart des cas, leur utilisation n'est pas nécessaire et peut rendre l'application instable.

<table id="bkmrk-constantedescription" style="border-collapse: collapse; width: 100%; font-family: Consolas, monospace; font-size: 14px;"><colgroup><col style="width: 326px;"></col><col></col></colgroup><tbody><tr style="background-color: rgb(91, 58, 142); color: rgb(255, 255, 255);"><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">**Constante**

</th><th class="align-left" style="border: 1px solid rgb(153, 153, 153); padding: 8px; text-align: left;">**Description**

</th></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">ADD\_UNSPLASH\_LOGIN\_BACKGROUND

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Image d'arrière-plan aléatoire (Unsplash) sur la page de connexion

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_FILESYSTEM\_ENCODING

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Forcer l'encodage du système de fichiers (utf-8 sur certains Windows)

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SHOW\_TECHNICAL\_ID

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher les identifiants techniques sur les fiches

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_COUNTRIES\_IN\_EEC

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Liste des pays dans la zone européenne (TVA)

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MAXTABS\_IN\_CARD

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Nombre maximum d'onglets visibles (les autres en liste déroulante)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_ONLY\_LOGIN\_ALLOWED

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Restreindre l'accès à un seul login (mode maintenance)

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_AUTO\_TIMESTAMP\_IN\_PUBLIC\_NOTES

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Horodatage automatique dans les notes publiques

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_AUTO\_TIMESTAMP\_IN\_PRIVATE\_NOTES

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Horodatage automatique dans les notes privées

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SECURITY\_CSRF\_WITH\_TOKEN

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Protection anti-CSRF renforcée par token (&gt;= v5.0)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DOC\_UPLOAD\_NOT\_RENAME\_BY\_DEFAULT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Désactiver le renommage automatique des fichiers uploadés

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LANGUAGES\_ALLOWED

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Restreindre les langues proposées (ex. fr\_FR,en\_US,de\_DE)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_APPLICATION\_TITLE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Changer le titre de l'application (attention : casse DoliDroid)

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_AUTOFILL\_DATE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Préremplir automatiquement les dates (fortement déconseillé)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DISABLE\_FULL\_SCANLIST

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Désactiver le comptage total pour la pagination (grands volumes)

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_FIRST\_TO\_UPPER

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Mettre en majuscule la première lettre des noms de tiers

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_ALL\_TO\_UPPER

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Mettre entièrement en majuscule les noms de tiers (v11.0)

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DONT\_KEEP\_NOTE\_ON\_CLONING

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Supprimer les notes lors du clonage (v11.0)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DOC\_SORT\_FIELD

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Champ de tri par défaut sur la page documents (v11.0)

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DOC\_SORT\_ORDER

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Ordre de tri par défaut (ASC ou DESC) sur la page documents (v11.0)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_ENABLE\_LOG\_TO\_HTML

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Activer les logs dans les pages via &amp;logtohtml=1 dans l'URL

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_USE\_HOURMIN\_IN\_DATE\_RANGE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Ajouter heure et minutes aux champs date début/fin des lignes

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_REMOVE\_INSTALL\_WARNING

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Supprimer les avertissements de sécurité post-installation

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_OPTIMIZE\_SPEED

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Activer les optimisations de performance

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_REPLACE\_TRANS\_xx\_XX

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Remplacer des chaînes de traduction pour une langue spécifique

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_REPEATCONTACTONEACHTAB

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher les contacts sur tous les onglets

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DISABLE\_JQUERY\_JNOTIFY

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Désactiver JNotify pour les messages de confirmation/erreur

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_USE\_JQUERY\_MULTISELECT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Activer le multiselect Ajax (multiselect, select2…)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_HELPCENTER\_LINKTOUSE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Lien personnalisé pour « J'ai besoin d'aide » sur la page de connexion

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MODULES\_FOR\_EXTERNAL

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Limiter les modules accessibles aux utilisateurs externes

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_SHOW\_TUNING\_INFO

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Afficher les informations de réglage dans la console JavaScript

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DOL\_SCRIPTS\_ROOT

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Répertoire contenant le dossier scripts

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_MIN\_NB\_ENABLED\_MODULE\_FOR\_WARNING

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Seuil d'avertissement si trop peu de modules sont activés

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_ADD\_SALE\_REP\_SIGNATURE\_IN\_NOTE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Ajouter la signature du commercial dans les notes publiques des documents

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DISABLE\_AJAX\_COMBOX

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Désactiver l'autocomplétion Ajax sur les listes de tiers/produits

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_FORCELANGDIR

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Chemin du répertoire langs personnalisé

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_DEFAULT\_LANGUAGE\_FILTER

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Masquer en\_US des listes déroulantes de langues

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_VAT\_DEFAULT\_IF\_AUTODETECT\_FAILS

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Taux de TVA par défaut si la détection automatique échoue (ex. 20)

</td></tr><tr style="background-color: rgb(255, 255, 255);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_HTML\_TITLE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Contrôler le formatage du titre HTML (noapp, thirdpartynameonly…)

</td></tr><tr style="background-color: rgb(236, 229, 244);"><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">MAIN\_LANDING\_PAGE

</td><td style="border: 1px solid rgb(153, 153, 153); padding: 8px;">Première page affichée après connexion (&gt;= v3.9)

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