1Ce que fait le module
Une structure salariale malgache complète et cohérente, prête à l'emploi, au lieu de règles écrites à la main.
Ordre de calcul d'un bulletin
Convention de signe Odoo : toutes les retenues sont négatives et le net vaut BASIC + ALW + MG_NS + DED. L'ancienne configuration d'Odex mélangeait les signes, si bien qu'une saisie sur salaire ou une avance augmentait le net. Ce module corrige ce défaut.
2Prérequis
| Élément | Détail |
|---|---|
| Odoo | 18.0 Enterprise avec Paie et Comptabilité |
| Plan comptable | Madagascar (l10n_mg_account), société en Ariary (MGA) |
| Modules Waffapo | mg_hr_overtime (heures supp.), mg_hr_special_advance (avance spéciale), nx_ent_salary_advance (avance sur salaire), waffapo_hr_payroll_cash (paiement en espèces). Ils sont installés automatiquement comme dépendances. |
| Droits | Groupe Paie / Administrateur pour lancer l'assistant |
| Sauvegarde | Une sauvegarde de la base avant l'installation en production |
En production, installez d'abord sur une copie de la base, contrôlez un ou deux bulletins, puis seulement installez sur la vraie base.
3Installation
- Copiez le dossier
waffapo_hr_payroll_setupdans le dossier des modules (dépôt WaffapoOdoo-18). - Ouvrez .
- Cherchez « Configuration de la paie Madagascar », puis cliquez sur Activer.
En ligne de commande :
odoo -c /etc/odoo/odoo.conf -d <base> -i waffapo_hr_payroll_setup --stop-after-init
L'installation crée la structure, les catégories MG_NS (non soumis) et MG_IMP (base imposable), les 11 paramètres datés et les 28 règles. Elle ne modifie rien d'autre : contrats, anciennes règles, comptes et réglages restent tels quels tant que l'assistant n'a pas été appliqué.
4L'assistant « Configurer la paie Madagascar »
Menu .
Les champs
| Champ | Rôle | Proposé par défaut |
|---|---|---|
| Structure | La structure à configurer | Madagascar : salaire mensuel |
| Journal des salaires | Journal des écritures de paie | Journal de l'ancienne structure, sinon SLR |
| Régler les heures supplémentaires | Remplit uniquement les réglages vides des heures supp. | Coché |
| Salaires (débit du brut) | Charge du salaire brut, de l'allocation familiale et des remboursements | 641100 |
| Charges sociales patronales | Charge CNaPS et OSTIE employeur | 645000 |
| Charge FMFP | Charge du FMFP | 631000 |
| Rémunérations dues (net) | Crédit du net à payer. Doit être lettrable (paiement en espèces). | 421000 |
| CNaPS · OSTIE / SMIE · FMFP à payer | Dettes envers les organismes (parts salariales et patronales) | 431000 · 432000 · 447000 |
| IRSA à verser | Dette d'IRSA retenue | 446000 (sinon 442000) |
| Saisies, cessions, autres retenues | Saisie sur salaire, cession, pension alimentaire, autre retenue | 467000 |
| Avances au personnel | Crédit des remboursements d'avance (avance sur salaire et avance spéciale) | 411100 |
Avances au personnel : les deux modules d'avance débitent, au décaissement, le compte client du contact de l'employé. Pour que l'avance et sa retenue se lettrent, choisissez ici ce même compte. Le module ajoute aussi le contact de l'employé sur la ligne de retenue.
5Migrer une base existante
Si la société fait déjà sa paie dans Odoo (Odex : structure « Salaire ordinaire »), cochez Migrer les contrats existants.
| Ce que fait la migration | Ce qu'elle ne fait jamais |
|---|---|
|
• passe les contrats Nouveau et En cours des types choisis sur « Madagascar : salarié » ; • passe les bulletins Brouillon et En attente sur la nouvelle structure (à recalculer) ; • archive les règles de l'ancienne structure (option). |
• supprimer une règle, une structure ou un bulletin ; • modifier un bulletin Terminé ou Payé, ni ses lignes, ni son écriture ; • toucher aux contrats expirés ou annulés. |
Une règle archivée se retrouve avec le filtre Archivé dans . Elle peut être désarchivée à tout moment.
6Simuler, puis appliquer
- Cliquez sur Simuler. L'assistant fait tout le travail puis l'annule : rien n'est enregistré. Le rapport liste ce qui sera changé.
- Lisez le rapport. Vérifiez le nombre de contrats, la présence des comptes et les éventuels avertissements.
- Cliquez sur Appliquer, puis confirmez avec Ok.
L'assistant est idempotent : vous pouvez le relancer autant de fois que nécessaire, par exemple pour changer un compte ou réparer une règle modifiée par erreur. Il met à jour les règles existantes et n'en crée jamais en double.
Si le rapport annonce « comptes non renseignés », l'écriture de paie sera déséquilibrée et Odoo ajoutera une ligne d'ajustement. Complétez les comptes et relancez l'assistant.
7Vérifier le résultat
La structure et ses règles
, onglet Règles salariales.
Les contrats
Un bulletin de test
Recalculez un bulletin connu (voir le Guide du responsable RH) et comparez-le aux chiffres attendus :
| Cas de contrôle (octobre 2026) | Net attendu |
|---|---|
| Salaire 800 000 Ar, 0 enfant, sans retenue | 719 700 |
| Idem, avec une saisie sur salaire de 50 000 | 669 700 |
| Idem, avec une avance spéciale de 100 000 (échéance du mois) | 619 700 |
| Idem, avec une avance sur salaire de 100 000 | 619 700 |
| Salaire 300 000 Ar, 3 enfants : IRSA = minimum 3 000 (jamais négatif) | 324 000 |
| Salaire 1 407 525,51 Ar, 2 enfants, 35 h d'heures supp., avance 400 000 | 1 192 181,56 |
Ces six cas sont aussi des tests automatiques du module (tests/test_payroll_setup.py). Ils passent tous sur Odoo 18.
8Taux, plafonds et barème : les paramètres datés
, recherche « Madagascar ».
Paramètre (code waffapo_mg_…) | Valeur au 01/01/2024 |
|---|---|
| Taux CNaPS salarié / employeur | 1 % / 13 % |
| Taux OSTIE / SMIE salarié / employeur | 1 % / 5 % |
| Taux FMFP employeur | 1 % |
| Plafond mensuel CNaPS (sert aussi au FMFP) · OSTIE | 0 = pas de plafond |
| Barème IRSA (tranches) | 0 % ≤ 350 000 · 5 % ≤ 400 000 · 10 % ≤ 500 000 · 15 % ≤ 600 000 · 20 % ≤ 4 000 000 · 25 % au-delà |
| Minimum de perception IRSA | 3 000 Ar |
| Réduction IRSA par enfant à charge | 2 000 Ar |
| Allocation familiale par enfant | 11 000 Ar |
Changer une valeur (nouvelle loi de finances, nouveau plafond…)
- Ouvrez le paramètre, par exemple « barème IRSA mensuel ».
- Dans Versions, cliquez sur Ajouter une ligne.
- Indiquez la date d'effet (par exemple 01/01/2027) et la nouvelle valeur, puis enregistrez.
(plafond de la tranche, taux %). La dernière tranche a le plafond None.Ne modifiez pas une version existante : ajoutez-en une nouvelle. Les bulletins utilisent la version en vigueur à la date de fin de leur période, et les anciens bulletins restent ainsi justes s'ils sont recalculés. Les valeurs sont protégées : une mise à jour du module ne les écrase pas.
9Les règles salariales
| Séq. | Code | Règle | Catégorie | Calcul |
|---|---|---|---|---|
| 1 | BASIC | Salaire de base | Base | Salaire payé (prorata des absences non payées) |
| 20–27 | MG_HS…, MG_HM… | Heures supp. et majorées | MG_HSNI / MG_HSI / MG_HM | heures × salaire ÷ 173,33 × taux (module heures supp.) |
| 30 | MG_PRIME | Prime ou indemnité imposable | Allocation | Entrée du bulletin |
| 40 | ALC | Allocation familiale | Non soumis | enfants × 11 000 |
| 45 | REIMBURSEMENT | Remboursement | Non soumis | Entrée du bulletin |
| 100 | GROSS | Salaire brut | Brut | base + allocations (heures supp. et primes comprises) |
| 110 / 115 | CNAPS / OSTIE | Parts salariales | Retenue | − brut plafonné × 1 % |
| 120–130 | CNAPS13, OSTIE5, FMFP | Parts patronales | Contribution société | brut plafonné × 13 % / 5 % / 1 % |
| 150 | MG_IMP | Base imposable IRSA | isolée (hors totaux) | brut − heures supp. non imposables − CNaPS − OSTIE, arrondi à la centaine inférieure |
| 160 | IRSA | IRSA | Retenue | − max(barème − enfants × 2 000 ; 3 000) |
| 174 | CHILD_SUPPORT, ATTACH_SALARY, ASSIG_SALARY | Pension, saisie, cession | Retenue | − entrée du bulletin |
| 190 | SAR / MG_ASP | Avance sur salaire / avance spéciale | Retenue | − entrée du bulletin (ajoutée automatiquement) |
| 198 | DEDUCTION | Autre retenue | Retenue | − entrée du bulletin |
| 200 | NET | Salaire net | Net | base + allocations + non soumis + retenues |
Si vous modifiez une règle à la main, relancer l'assistant remet la formule du module. Pour une règle propre à un client, créez une nouvelle règle avec un autre code plutôt que de modifier une règle du module.
10Réglages des heures supplémentaires et des avances
.
L'avance sur salaire se règle sur la structure (onglet de la structure) : au plus 50 % du salaire, et une demande au moins 15 jours après le début du bulletin du mois précédent.
11L'écriture comptable de paie
| Règle | Débit | Crédit |
|---|---|---|
| Brut, allocation familiale, remboursement | 641100 | |
| CNaPS / OSTIE salarié | 431000 / 432000 | |
| CNaPS / OSTIE employeur | 645000 | 431000 / 432000 |
| FMFP | 631000 | 447000 |
| IRSA | 446000 | |
| Saisie, cession, pension, autre retenue | 467000 | |
| Avance sur salaire, avance spéciale | 411100 (contact de l'employé) | |
| Net à payer | 421000 (lettrable) |
12Mises à jour et désinstallation
odoo -c /etc/odoo/odoo.conf -d <base> -u waffapo_hr_payroll_setup --stop-after-init
- Une mise à jour ne change ni les paramètres datés, ni la structure, ni les comptes. Les règles sont mises à jour par l'assistant, pas par la mise à jour du module.
- Tests automatiques :
odoo -d <base_de_test> -u waffapo_hr_payroll_setup --test-enable --test-tags /waffapo_hr_payroll_setup --stop-after-init - Désinstaller le module supprime sa structure et ses règles. Il faut d'abord désarchiver les anciennes règles et remettre les contrats sur l'ancien type. À éviter dès que des bulletins ont été validés.
13Dépannage
| Symptôme | Cause et solution |
|---|---|
| « No rule parameter with code waffapo_mg_… » | Aucune version du paramètre n'est en vigueur à la date du bulletin. Ajoutez une version avec une date d'effet plus ancienne. |
| Les heures supp. n'apparaissent pas | La fiche d'heures n'est pas Validée, ou sa période ne couvre pas celle du bulletin. Validez-la puis cliquez sur Calculer la feuille. |
| L'avance spéciale n'est pas retenue | L'avance doit être décaissée (état « En remboursement ») et avoir une échéance à la date du bulletin ou avant. |
| L'écriture contient une ligne d'ajustement | Un compte manque sur une règle. Relancez l'assistant avec tous les comptes. |
| « Validez d'abord l'écriture comptable » au paiement en espèces | L'écriture du bulletin est en brouillon. Le comptable doit la comptabiliser. |
| Un bulletin migré a encore les anciennes lignes | Il faut le recalculer : bouton Calculer la feuille. |
| IRSA à 3 000 Ar pour un petit salaire | C'est le minimum de perception, appliqué dès que la base imposable est positive. |
14À faire valider par le comptable
Les valeurs par défaut reprennent celles d'Odex en novembre 2026. Avant la première paie réelle, faites confirmer :
- le barème IRSA, le minimum de perception et la réduction par enfant ;
- les plafonds CNaPS et OSTIE (laissés à 0, c'est-à-dire sans plafond) et le taux FMFP ;
- le régime de l'allocation familiale (11 000 Ar par enfant, traitée comme non soumise) ;
- les comptes de chaque règle, en particulier IRSA (446000 ou 442000) et avances (411100).