<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dolibarr.org/index.php?action=history&amp;feed=atom&amp;title=Odoo_Payroll_FR</id>
	<title>Odoo Payroll FR - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dolibarr.org/index.php?action=history&amp;feed=atom&amp;title=Odoo_Payroll_FR"/>
	<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Odoo_Payroll_FR&amp;action=history"/>
	<updated>2026-10-23T06:48:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Odoo_Payroll_FR&amp;diff=67486&amp;oldid=prev</id>
		<title>Abahfir: module odoo payroll fr</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Odoo_Payroll_FR&amp;diff=67486&amp;oldid=prev"/>
		<updated>2026-09-29T16:26:08Z</updated>

		<summary type="html">&lt;p&gt;module odoo payroll fr&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Odoo Payroll — Paie pour Dolibarr&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Résumé :&amp;lt;/strong&amp;gt; gestion des règles et structures salariales, contrats de paie et bulletins pour les utilisateurs internes de Dolibarr.&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Version du module :&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Version minimale de Dolibarr déclarée :&amp;lt;/strong&amp;gt; 18.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Version minimale de PHP déclarée :&amp;lt;/strong&amp;gt; 7.4&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Versions effectivement vérifiées :&amp;lt;/strong&amp;gt; aucune version de Dolibarr ou PHP n’a été testée pendant cette vérification documentaire.&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Dernière vérification :&amp;lt;/strong&amp;gt; 2026-09-29&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Site officiel de l’éditeur :&amp;lt;/strong&amp;gt; [https://01consulting.eu 01 Consulting]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Vidéo de démonstration :&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot;&amp;gt;aeqG94iA8yQ&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;1. Présentation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Odoo Payroll est un module de paie natif pour Dolibarr, développé par 01 Consulting. Malgré son nom, il s’installe dans Dolibarr et ne nécessite pas d’instance Odoo. Il permet de configurer les catégories et règles de salaire, de les réunir dans des structures, de rattacher ces structures à des contrats d’employés et de calculer des bulletins de paie.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le moteur fournit un cadre de calcul configurable ; il ne fournit pas une garantie de conformité à une législation, à une convention collective ou à un barème fiscal ou social. Les règles CNAS, IRG et autres obligations applicables doivent être conçues et approuvées par un spécialiste de la paie avant utilisation en production.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;2. Fonctionnalités&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Catégories de règles salariales, éventuellement hiérarchisées.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Structures salariales composées de règles et pouvant hériter d’une structure parente.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Règles conditionnelles à montant fixe, en pourcentage ou exprimées par une formule arithmétique contrôlée.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contrats associés aux utilisateurs Dolibarr, avec salaire, heures hebdomadaires, période, type et département.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Calcul des lignes de bulletin, du brut et du net, avec validation et états de suivi.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Création individuelle de bulletins et génération en série à partir d’un lot.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Retour d’un bulletin validé au brouillon, annulation des bulletins validés et actions de masse, selon les permissions et réglages.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Génération d’un PDF de bulletin et association avec le paiement de salaire natif de Dolibarr.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Onglet Paie dans la fiche utilisateur, profils d’import et filtrage des données par entité active.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;3. Prérequis et compatibilité&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Dolibarr :&amp;lt;/strong&amp;gt; le descripteur déclare Dolibarr 18.0 comme version minimale. La version réellement vérifiée dans le cadre de ce wiki est « aucune ».&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;PHP :&amp;lt;/strong&amp;gt; le descripteur déclare PHP 7.4 comme version minimale ; aucune exécution n’a été testée pendant la rédaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Modules Dolibarr requis :&amp;lt;/strong&amp;gt; Utilisateurs (&amp;lt;code&amp;gt;modUser&amp;lt;/code&amp;gt;) et Salaires (&amp;lt;code&amp;gt;modSalaries&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Base de données :&amp;lt;/strong&amp;gt; l’initialisation crée des triggers avec une syntaxe MySQL/MariaDB. La compatibilité des triggers avec d’autres moteurs SQL n’est pas établie. Le compte de base de données doit pouvoir créer et supprimer des triggers.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Documents :&amp;lt;/strong&amp;gt; le processus de génération doit pouvoir créer des fichiers dans le répertoire de sortie du module sous les documents Dolibarr.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;4. Installation, mise à jour et désactivation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.1. Installation et activation&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Vérifier que les modules Dolibarr &amp;lt;strong&amp;gt;Utilisateurs&amp;lt;/strong&amp;gt; et &amp;lt;strong&amp;gt;Salaires&amp;lt;/strong&amp;gt; sont disponibles.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installer le dossier du module dans &amp;lt;code&amp;gt;htdocs/custom/payroll&amp;lt;/code&amp;gt; ou dans le répertoire personnalisé configuré pour les modules externes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans Dolibarr, ouvrir &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;, rechercher &amp;lt;strong&amp;gt;Payroll&amp;lt;/strong&amp;gt; ou &amp;lt;strong&amp;gt;Paie&amp;lt;/strong&amp;gt;, puis activer le module.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;À l’activation, le module charge ses tables SQL, complète certaines colonnes de contrat manquantes, ajoute le champ supplémentaire de liaison bulletin-salaire et tente de créer trois triggers sur les tables de salaires.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Vérifier que le menu &amp;lt;strong&amp;gt;RH &amp;amp;gt; Paie&amp;lt;/strong&amp;gt; apparaît et que la page de configuration s’ouvre. Avant un traitement réel, réaliser un calcul complet avec des données de test et vérifier les PDF ainsi que les triggers de paiement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;L’activation met également en place les menus, les droits et les profils d’import. Si la création des triggers échoue, les changements d’état automatiques liés au paiement ne fonctionneront pas correctement ; consulter l’erreur de base de données et les journaux Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4.2. Mise à jour&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Sauvegarder la base Dolibarr et les documents avant de remplacer les fichiers du module.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installer les fichiers de la nouvelle version. Réactiver le module si l’initialisation des tables, des colonnes supplémentaires ou des triggers doit être rejouée.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contrôler les catégories, règles, contrats et bulletins existants ainsi que les triggers sur les tables de salaires.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Générer un bulletin de test, ouvrir son PDF et vérifier le chemin d’enregistrement et les permissions utilisateur.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le script d’activation vérifie et ajoute certaines colonnes de contrat et rend obligatoire la catégorie des règles après avoir essayé d’affecter une catégorie aux règles orphelines. Les migrations détaillées dépendent de la version précédente et du schéma déjà installé ; une sauvegarde est nécessaire avant l’opération.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4.3. Désactivation et suppression&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;La désactivation masque le champ supplémentaire de liaison sur les salaires et supprime les trois triggers créés par le module. Le traitement de désactivation ne supprime pas les tables de paie. Le comportement d’une suppression manuelle des tables ou du dossier du module n’est pas établi ; ne pas supprimer ces données sans sauvegarde et procédure de migration définie.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;5. Configuration&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Ouvrir la page &amp;lt;strong&amp;gt;Configuration&amp;lt;/strong&amp;gt; du module depuis Dolibarr. L’accès est réservé aux administrateurs ou aux utilisateurs disposant du droit &amp;lt;code&amp;gt;payroll-&amp;amp;gt;setup&amp;lt;/code&amp;gt;. Les valeurs indiquées ci-dessous sont les valeurs initiales déclarées par le module ou les replis utilisés par l’écran ; une valeur déjà enregistrée dans une entité peut être différente.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Réglage&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Initialisation ou repli&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Effet&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Numérotation des bulletins&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Modèle standard ; masque déclaré &amp;lt;code&amp;gt;PSL{00000}&amp;lt;/code&amp;gt;. L’écran utilise &amp;lt;code&amp;gt;PAY{00000}&amp;lt;/code&amp;gt; comme valeur de repli si aucun masque n’est enregistré.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Définit la référence générée pour les bulletins. Contrôler la valeur dans l’écran après installation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Numérotation des contrats&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Modèle standard, masque &amp;lt;code&amp;gt;CTR{00000}&amp;lt;/code&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Définit la référence des contrats.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;PAYROLL_ALLOW_CANCEL_CONFIRMED_PAYSLIPS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Désactivé (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;).&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Autorise le retour au brouillon et l’annulation d’un bulletin validé.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;PAYROLL_CONFIRM_PAYSLIPS_WITHOUT_RECOMPUTING&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Activé (&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;).&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Empêche le recalcul automatique lors de la validation. Quand l’option est désactivée, la validation recalcule le bulletin.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;PAYROLL_ALLOW_EDIT_PAYSLIP_LINES&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Désactivé (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;).&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Autorise, si activé, la modification manuelle de certains champs des lignes d’un brouillon.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Compte bancaire par défaut&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Aucun.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Valeur proposée dans le parcours de paiement ; le réglage est affiché si le module Banque est activé.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Mode de paiement par défaut&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Aucun.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Mode proposé dans le parcours de paiement des salaires.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Types de contrat et départements&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Dictionnaires gérés dans la configuration.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Ajoutez des codes et libellés actifs ; une entrée utilisée par un contrat ne peut pas être supprimée.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les masques de référence doivent contenir au moins quatre zéros entre accolades, par exemple &amp;lt;code&amp;gt;PAY{00000}&amp;lt;/code&amp;gt;. Les modèles de numérotation disponibles peuvent être sélectionnés dans l’écran. Les constantes de configuration sont enregistrées pour l’entité Dolibarr courante.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;6. Préparer la configuration de paie&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;6.1. Catégories&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans &amp;lt;strong&amp;gt;RH &amp;amp;gt; Paie &amp;amp;gt; Catégories de règles salariales&amp;lt;/strong&amp;gt;, créer une catégorie avec un code et un libellé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choisir éventuellement une catégorie parente pour organiser la hiérarchie.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activer ou désactiver la catégorie selon son usage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les codes sont utilisés dans les formules comme des variables de total préfixées par &amp;lt;code&amp;gt;CAT_&amp;lt;/code&amp;gt;, par exemple &amp;lt;code&amp;gt;CAT_BASIC&amp;lt;/code&amp;gt;. Un code utilisable dans une formule doit suivre les caractères acceptés par l’écran et les profils d’import.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;6.2. Structures salariales&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans &amp;lt;strong&amp;gt;Structures&amp;lt;/strong&amp;gt;, créer une structure avec une référence et un libellé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Associer les règles à la structure et définir leur ordre de séquence.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Si nécessaire, choisir une structure parente. Le moteur récupère les règles liées à la structure et à sa chaîne de structures parentes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enregistrer la structure, puis l’affecter à un contrat.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Une structure référencée par un contrat ou par une structure enfant est protégée contre la suppression par les contrôles du module.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;6.3. Règles de salaire et calcul&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Une règle possède un code, un libellé, une catégorie, un numéro de séquence, une condition et un type de calcul. Seules les règles actives liées à la structure sont chargées. Le calcul s’effectue par séquence croissante ; les règles déjà calculées sont accessibles sous leur code dans les règles suivantes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Condition toujours vraie :&amp;lt;/strong&amp;gt; applique la règle sans condition supplémentaire.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Plage :&amp;lt;/strong&amp;gt; compare le salaire aux bornes minimale et maximale configurées ; les bornes sont inclusives.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Expression :&amp;lt;/strong&amp;gt; évalue une condition comme &amp;lt;code&amp;gt;WAGE &amp;amp;gt;= 90000&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Montant fixe :&amp;lt;/strong&amp;gt; montant configuré multiplié par l’expression de quantité ; la quantité par défaut dans les données du modèle est &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Pourcentage :&amp;lt;/strong&amp;gt; applique un taux à une expression de base ; un pourcentage négatif peut représenter une retenue.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Formule :&amp;lt;/strong&amp;gt; évalue une expression arithmétique configurée.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Afficher sur le bulletin :&amp;lt;/strong&amp;gt; détermine si la ligne correspondante apparaît sur le PDF.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le moteur accepte les nombres, variables, parenthèses et opérateurs &amp;lt;code&amp;gt;+ - * /&amp;lt;/code&amp;gt;. Les opérateurs de comparaison &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;gt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; sont acceptés dans une condition. Il n’exécute ni PHP ni Python ni des fonctions arbitraires. Une variable inconnue, un opérateur invalide ou une division par zéro interrompt le calcul avec une erreur.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Variable&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Valeur utilisée&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Exemple&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Salaire du contrat associé au bulletin.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WORK_HOURS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Heures hebdomadaires du contrat.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE / WORK_HOURS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WORKED_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de jours travaillés indiqué sur le bulletin.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE * WORKED_DAYS / MONTH_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;MONTH_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de jours du lundi au vendredi dans la période du bulletin.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WORKED_DAYS / MONTH_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Codes de règles antérieures&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Montant calculé par une règle précédente dans l’ordre de séquence.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;BASIC + PRIME&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CAT_CODE&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Total calculé pour une catégorie ; un total vide commence à zéro.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CAT_BASIC + CAT_ALW + CAT_DED&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;MONTH_DAYS&amp;lt;/code&amp;gt; ne retire pas les jours fériés : seuls les samedis et dimanches sont exclus. Les exemples de formules sont des exemples de syntaxe et ne constituent pas des recommandations de barème.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le brut et le net sont alimentés à partir des règles portant les codes &amp;lt;code&amp;gt;GROSS&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;NET&amp;lt;/code&amp;gt;. Si ces règles ne fournissent pas les totaux, le moteur utilise les catégories portant ces codes comme solution de repli.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;6.4. Contrats&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans &amp;lt;strong&amp;gt;Contrats&amp;lt;/strong&amp;gt;, créer un contrat pour un utilisateur interne Dolibarr.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Renseigner la structure, le salaire, le nombre d’heures hebdomadaires, la date de début et, si applicable, la date de fin.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choisir éventuellement un type de contrat et un département dans les dictionnaires configurés.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enregistrer et activer le contrat lorsqu’il doit être proposé pour la génération d’un lot.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Un contrat doit avoir un employé et une date de début. Les formulaires et classes du module empêchent de supprimer certains objets encore référencés, notamment un contrat associé à des bulletins.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;7. Gérer les bulletins de paie&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;7.1. Créer et calculer un bulletin individuel&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ouvrir &amp;lt;strong&amp;gt;RH &amp;amp;gt; Paie &amp;amp;gt; Bulletins salariés&amp;lt;/strong&amp;gt;, puis créer un bulletin.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Sélectionner l’employé, son contrat, la période et le nombre de jours travaillés. La création d’un bulletin nécessite le droit &amp;lt;code&amp;gt;payroll-&amp;amp;gt;write&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enregistrer le bulletin ; il commence au statut &amp;lt;strong&amp;gt;Brouillon&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Calculer&amp;lt;/strong&amp;gt;. Le calcul exige un contrat et une structure salariale disponible. Si la structure n’est pas encore enregistrée sur le bulletin, celle du contrat lui est affectée.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contrôler les lignes, le brut et le net. Tant que le bulletin est brouillon, corriger la configuration ou les données, puis recalculer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Valider avec un utilisateur disposant du droit &amp;lt;code&amp;gt;payroll-&amp;amp;gt;validate&amp;lt;/code&amp;gt;. Vérifier le résultat avant validation, car le réglage initial empêche le recalcul pendant cette étape.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;En cas de période inversée, de contrat ou structure manquant, de variable inconnue ou d’expression invalide, le calcul affiche une erreur et ne doit pas être considéré comme terminé.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;7.2. Générer des bulletins par lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ouvrir &amp;lt;strong&amp;gt;RH &amp;amp;gt; Paie &amp;amp;gt; Lots de bulletins&amp;lt;/strong&amp;gt; et créer un lot avec un libellé et une période valide.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Sur la fiche du lot, lancer &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;. Le module sélectionne les contrats actifs ayant une structure, dont les dates couvrent tout ou partie de la période du lot, et pour lesquels le lot ne contient pas encore de bulletin.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Le module crée un brouillon par contrat éligible avec &amp;lt;strong&amp;gt;22 jours travaillés&amp;lt;/strong&amp;gt;, puis tente de calculer les bulletins brouillons du lot. Vérifier et corriger les jours travaillés lorsque la situation réelle diffère.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Examiner les erreurs de calcul et corriger les contrats, structures ou règles concernés avant de valider.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Valider les bulletins du lot. L’action est refusée si aucun brouillon n’est présent ou si un brouillon n’a aucune ligne calculée. Lorsque la validation réussit, le lot passe à l’état fermé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Une génération répétée dans le même lot n’ajoute pas un second bulletin pour un contrat déjà présent dans ce lot. Cette vérification porte sur le contrat et le lot ; elle ne constitue pas une protection générale contre deux lots couvrant la même période.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;7.3. États, retour au brouillon et annulation&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Brouillon (0) :&amp;lt;/strong&amp;gt; calculable et supprimable individuellement ; les lignes peuvent être modifiées si &amp;lt;code&amp;gt;PAYROLL_ALLOW_EDIT_PAYSLIP_LINES&amp;lt;/code&amp;gt; est activé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Validé (1) :&amp;lt;/strong&amp;gt; état obtenu après validation. L’action de validation peut recalculer ou non selon le réglage mentionné ci-dessus.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Payé (2) :&amp;lt;/strong&amp;gt; état associé au paiement Dolibarr lorsque le bulletin est relié au salaire correspondant.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Annulé (9) :&amp;lt;/strong&amp;gt; état de bulletin annulé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Avec &amp;lt;code&amp;gt;PAYROLL_ALLOW_CANCEL_CONFIRMED_PAYSLIPS&amp;lt;/code&amp;gt; activé, un utilisateur ayant le droit de validation peut ramener un bulletin validé au brouillon, l’annuler, et utiliser l’action de masse &amp;lt;strong&amp;gt;Retourner au brouillon&amp;lt;/strong&amp;gt; dans la liste des bulletins. L’action de masse ne traite que les bulletins validés sélectionnés. Le code de l’action individuelle ne vérifie que le droit et le réglage avant de changer l’état ; contrôler le bulletin et son éventuel salaire lié avant de l’utiliser.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Un bulletin payé ne doit pas être traité comme un bulletin validé ordinaire : la synchronisation du salaire peut modifier son état et le lot ne peut pas être rouvert ou supprimé s’il contient des bulletins payés. La suppression individuelle d’un bulletin est réservée aux brouillons et supprime aussi ses lignes de calcul.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;7.4. Rouvrir ou supprimer un lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Un lot fermé peut être rouvert par un utilisateur ayant le droit de validation si aucun de ses bulletins n’est payé. La réouverture remet les bulletins validés du lot au brouillon. La suppression d’un lot par un utilisateur ayant le droit de suppression supprime le lot, ses bulletins et leurs lignes ; elle est refusée en présence d’un bulletin payé. Cette suppression est définitive : vérifier la liste affichée dans la confirmation avant de poursuivre.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;8. Fiche employé, paiement et PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;8.1. Onglet Paie de l’employé&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le module ajoute un onglet &amp;lt;strong&amp;gt;Paie&amp;lt;/strong&amp;gt; à la fiche utilisateur. Un utilisateur ayant le droit de lecture Paie peut consulter l’onglet ; l’employé peut également ouvrir sa propre fiche. L’onglet liste ses contrats et bulletins. Les boutons de création sont conditionnés par le droit d’écriture &amp;lt;code&amp;gt;payroll-&amp;amp;gt;write&amp;lt;/code&amp;gt;. La page applique le filtrage de l’entité Dolibarr courante.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;8.2. Lier un bulletin au paiement natif Dolibarr&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Lors de l’activation, le module ajoute un champ supplémentaire au salaire Dolibarr pour sélectionner un bulletin payé du même employé. Une contrainte empêche de rattacher le même bulletin à plusieurs salaires. Le trigger SQL synchronise l’état du bulletin lié lorsque la valeur « payé » du salaire change : il passe le bulletin validé à payé lorsque le salaire est marqué payé, et le remet à validé lorsque le salaire est marqué non payé.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le trigger Dolibarr associé à la création d’un paiement de salaire met également le bulletin lié au statut payé. Ces automatismes dépendent de la présence du champ supplémentaire, du lien sélectionné et des triggers installés avec succès.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;8.3. Générer et consulter le PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ouvrir la fiche du bulletin et lancer la génération du document.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Le module produit un PDF A4 qui présente la société, l’employé, le statut, le contrat, la structure, la période, les jours travaillés, les lignes visibles et les totaux brut/net.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Les règles marquées « afficher sur le bulletin » sont incluses ; les autres règles sont omises du tableau détaillé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Le PDF est enregistré sous le répertoire de sortie du module pour l’entité courante, ou, à défaut, dans &amp;lt;code&amp;gt;DOL_DATA_ROOT/payroll&amp;lt;/code&amp;gt;, dans un dossier portant la référence du bulletin. La fiche permet ensuite de l’afficher ou de le télécharger.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Une nouvelle génération écrit le PDF à la même référence de bulletin. Les documents existants ne sont pas automatiquement supprimés lors des changements d’état.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;9. Menus, permissions et visibilité&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Droit Dolibarr&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Usage&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;read&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Consulter le tableau de bord, les bulletins, lots et documents, accéder à l’aide ; permet l’accès en lecture à plusieurs listes.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;setup&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Configurer les catégories, règles, structures, contrats et paramètres. Les administrateurs ont également accès à la configuration.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;write&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Créer et modifier les bulletins, contrats et lots selon les contrôles de chaque écran ; lancer des calculs.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;validate&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Valider les bulletins ; selon le réglage, remettre en brouillon ou annuler les bulletins validés ; valider/réouvrir les lots.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;delete&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Supprimer les enregistrements autorisés par leur état et leurs dépendances.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les menus de catégories, règles, structures et contrats sont rattachés au menu &amp;lt;strong&amp;gt;RH &amp;amp;gt; Paie&amp;lt;/strong&amp;gt; et conditionnés au droit de configuration. Les accès aux bulletins et lots requièrent la lecture ; la création est réservée aux droits correspondants. Les droits natifs Dolibarr sur les utilisateurs et salaires restent également pertinents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;10. Données, imports, triggers et journaux&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Données stockées :&amp;lt;/strong&amp;gt; catégories, règles, structures, associations entre structures et règles, contrats, bulletins, lignes de calcul et lots dans des tables propres au module ; liaison du bulletin sur l’extrafield de l’objet Salaire.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Imports :&amp;lt;/strong&amp;gt; des profils d’import sont déclarés pour les catégories, règles, structures et associations structure-règle. Les contrats et bulletins ne figurent pas parmi les profils déclarés dans le descripteur.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Triggers SQL :&amp;lt;/strong&amp;gt; un trigger synchronise certains changements de statut entre le salaire payé et le bulletin lié. Deux autres triggers empêchent l’affectation d’un même bulletin à des salaires différents.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Trigger Dolibarr :&amp;lt;/strong&amp;gt; à la création du paiement d’un salaire, le module met le bulletin relié au statut payé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Journal technique observé :&amp;lt;/strong&amp;gt; le trigger de paiement écrit dans &amp;lt;code&amp;gt;/tmp/payroll_debug.log&amp;lt;/code&amp;gt; des horodatages, identifiants de salaires, résultats SQL et messages d’erreur. La rotation, la durée de conservation et les permissions de ce fichier ne sont pas gérées par le module ; l’administrateur du serveur doit les contrôler.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Fichiers :&amp;lt;/strong&amp;gt; les PDF générés sont écrits sous le répertoire de documents de sortie du module décrit dans la section PDF. Aucune tâche planifiée ou règle de purge des PDF et données de paie n’est déclarée par le module.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Multi-entité :&amp;lt;/strong&amp;gt; les opérations et listes sont filtrées sur l’entité Dolibarr active ; les constantes de configuration sont enregistrées avec cette entité.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;11. Dépannage&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Symptôme&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérifications&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le menu ou une page Paie n’est pas accessible.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérifier que le module est activé, que le rôle possède le droit Paie requis et que les modules Dolibarr Utilisateurs et Salaires sont activés.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le calcul ne démarre pas ou retourne une erreur.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérifier l’employé, le contrat, la structure, les dates, les règles actives, les séquences et la syntaxe des expressions. Une variable inconnue ou une division par zéro interrompt le calcul.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;La validation ne met pas à jour les montants.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le réglage initial désactive le recalcul lors de la validation. Recalculer le brouillon avant validation ou modifier cette option selon la procédure de paie.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le lot ne génère aucun bulletin.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérifier la période du lot et l’existence de contrats actifs, associés à une structure et chevauchant la période. Vérifier aussi si un bulletin du contrat existe déjà dans ce lot.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;La validation du lot est refusée.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Chaque brouillon doit avoir au moins une ligne de calcul. Recalculer ou corriger les bulletins signalés avant de relancer la validation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le champ de sélection du bulletin est absent du salaire.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérifier l’activation du module et l’existence/activation de l’extrafield ajouté à l’objet Salaire. Réactiver le module si nécessaire, avec les droits SQL adéquats.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le statut payé ne suit pas le paiement Dolibarr.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérifier que le bulletin est lié au bon salaire, que les triggers sont installés et consulter les journaux Dolibarr ainsi que &amp;lt;code&amp;gt;/tmp/payroll_debug.log&amp;lt;/code&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le PDF est absent ou ne peut pas être ouvert.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Contrôler les droits d’écriture du serveur sur le répertoire de sortie et l’existence du document. Examiner le message d’erreur et les journaux Dolibarr.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;12. Limites et précautions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Faire valider toutes les formules de paie par un spécialiste connaissant la législation applicable avant de traiter des salaires réels.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Le calcul de &amp;lt;code&amp;gt;MONTH_DAYS&amp;lt;/code&amp;gt; exclut les samedis et dimanches mais conserve les jours fériés ; il ne lit pas un calendrier de congés.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;La validation d’un bulletin ne recalcule pas les montants avec la configuration initiale. Vérifier les lignes et recalculer explicitement avant confirmation si les données ont changé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;La génération par lot utilise initialement 22 jours travaillés pour chaque bulletin créé. Adapter cette valeur à la situation réelle avant validation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Le retour au brouillon et l’annulation dépendent d’un réglage désactivé par défaut. Une modification d’état d’un bulletin relié à un salaire doit être coordonnée avec le suivi comptable et le paiement Dolibarr.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;La suppression d’un lot supprime les bulletins et calculs qu’il contient, sauf si la présence d’un bulletin payé bloque la suppression. Cette opération doit être vérifiée avant confirmation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;La synchronisation automatique des statuts dépend de triggers MySQL/MariaDB et des permissions de création de triggers ; la compatibilité avec les autres moteurs de base de données reste à confirmer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;13. Assistance&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Pour signaler un problème, fournir la version du module, les versions de Dolibarr et PHP, l’entité concernée, les étapes de reproduction et le message d’erreur expurgé des noms, salaires et autres données personnelles. Le module est édité par [https://01consulting.eu 01 Consulting]. Aucun courriel de support n’est indiqué dans les fichiers du module consultés.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[en:Odoo_Payroll]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
</feed>