Waffapo · Odoo 18 Enterprise · Guide administrateur

Configurer la paie Madagascar en un clic

Installer le module waffapo_hr_payroll_setup, lancer l'assistant, migrer une base existante et vérifier le résultat.

Pour : administrateur Odoo, intégrateurDurée : 20 minutesVersion du module : 18.0.1.0.0Novembre 2026

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.

Structure prêteType « Madagascar : salarié » et structure « Madagascar : salaire mensuel », avec 28 règles dans le bon ordre.
Cotisations et IRSA justesCNaPS, OSTIE, FMFP, base imposable, IRSA par tranches avec réduction par enfant et minimum de perception.
Modules Waffapo branchésHeures supplémentaires, avance sur salaire, avance spéciale (prêt) et paiement en espèces fonctionnent ensemble.
Paramètres datésTaux, plafonds et barème se changent sans toucher au code, avec une date d'effet.
Comptes posésChaque règle a ses comptes : l'écriture de paie est équilibrée, le net reste lettrable.
Sans risqueSimulation avant écriture, relançable sans doublon, archive au lieu de supprimer, ne touche jamais aux bulletins terminés.

Ordre de calcul d'un bulletin

Salaire de base→Heures supp. et majorées→Primes imposables→Brut→CNaPS / OSTIE→Base imposable→IRSA→Retenues et avances→Net à payer

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émentDétail
Odoo18.0 Enterprise avec Paie et Comptabilité
Plan comptableMadagascar (l10n_mg_account), société en Ariary (MGA)
Modules Waffapomg_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.
DroitsGroupe Paie / Administrateur pour lancer l'assistant
SauvegardeUne 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

  1. Copiez le dossier waffapo_hr_payroll_setup dans le dossier des modules (dépôt Waffapo Odoo-18).
  2. Ouvrez Applications › Mettre à jour la liste des applications.
  3. Cherchez « Configuration de la paie Madagascar », puis cliquez sur Activer.
Module dans Applications
Applications : le module « Waffapo - Configuration de la paie Madagascar », une fois installé.

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 Paie › Configuration › Salaire › Configurer la paie Madagascar.

Menu
Accès : l'assistant est en tête du groupe « Salaire » du menu Configuration.
Assistant
L'assistant : les comptes sont proposés d'après le plan comptable malgache. Vous pouvez les changer avant de lancer.

Les champs

ChampRôleProposé par défaut
StructureLa structure à configurerMadagascar : salaire mensuel
Journal des salairesJournal des écritures de paieJournal de l'ancienne structure, sinon SLR
Régler les heures supplémentairesRemplit uniquement les réglages vides des heures supp.Coché
Salaires (débit du brut)Charge du salaire brut, de l'allocation familiale et des remboursements641100
Charges sociales patronalesCharge CNaPS et OSTIE employeur645000
Charge FMFPCharge du FMFP631000
Rémunérations dues (net)Crédit du net à payer. Doit être lettrable (paiement en espèces).421000
CNaPS · OSTIE / SMIE · FMFP à payerDettes envers les organismes (parts salariales et patronales)431000 · 432000 · 447000
IRSA à verserDette d'IRSA retenue446000 (sinon 442000)
Saisies, cessions, autres retenuesSaisie sur salaire, cession, pension alimentaire, autre retenue467000
Avances au personnelCré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.

Migration
Migration : le type de structure des contrats actuels (« Employee ») est proposé automatiquement.
Ce que fait la migrationCe 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 Paie › Configuration › Règles. Elle peut être désarchivée à tout moment.

6Simuler, puis appliquer

  1. Cliquez sur Simuler. L'assistant fait tout le travail puis l'annule : rien n'est enregistré. Le rapport liste ce qui sera changé.
  2. Lisez le rapport. Vérifiez le nombre de contrats, la présence des comptes et les éventuels avertissements.
  3. Cliquez sur Appliquer, puis confirmez avec Ok.
Simulation
Simulation sur la copie de la base Odex : 19 contrats migrés, 3 bulletins non terminés à recalculer, 5 bulletins terminés laissés intacts, 19 anciennes règles archivées.
Confirmation
Confirmation avant écriture.
Appliqué
Configuration appliquée : le rapport final.

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

Paie › Configuration › Structures › Madagascar : salaire mensuel, onglet Règles salariales.

Structure
Structure : 28 règles. Celles des heures supp. (1200 à 1207) et de l'avance spéciale viennent des modules Waffapo, qui ne sont pas recopiés.

Les contrats

Contrat
Contrat migré : type de structure « Madagascar : salarié ». Le changement est tracé dans l'historique.

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 retenue719 700
Idem, avec une saisie sur salaire de 50 000669 700
Idem, avec une avance spéciale de 100 000 (échéance du mois)619 700
Idem, avec une avance sur salaire de 100 000619 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 0001 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

Paie › Configuration › Paramètres de la règle, recherche « Madagascar ».

Paramètres
Les 11 paramètres utilisés par les règles.
Paramètre (code waffapo_mg_…)Valeur au 01/01/2024
Taux CNaPS salarié / employeur1 % / 13 %
Taux OSTIE / SMIE salarié / employeur1 % / 5 %
Taux FMFP employeur1 %
Plafond mensuel CNaPS (sert aussi au FMFP) · OSTIE0 = 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 IRSA3 000 Ar
Réduction IRSA par enfant à charge2 000 Ar
Allocation familiale par enfant11 000 Ar

Changer une valeur (nouvelle loi de finances, nouveau plafond…)

  1. Ouvrez le paramètre, par exemple « barème IRSA mensuel ».
  2. Dans Versions, cliquez sur Ajouter une ligne.
  3. Indiquez la date d'effet (par exemple 01/01/2027) et la nouvelle valeur, puis enregistrez.
Barème IRSA
Barème IRSA : une liste de tranches (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.CodeRègleCatégorieCalcul
1BASICSalaire de baseBaseSalaire payé (prorata des absences non payées)
20–27MG_HS…, MG_HM…Heures supp. et majoréesMG_HSNI / MG_HSI / MG_HMheures × salaire ÷ 173,33 × taux (module heures supp.)
30MG_PRIMEPrime ou indemnité imposableAllocationEntrée du bulletin
40ALCAllocation familialeNon soumisenfants × 11 000
45REIMBURSEMENTRemboursementNon soumisEntrée du bulletin
100GROSSSalaire brutBrutbase + allocations (heures supp. et primes comprises)
110 / 115CNAPS / OSTIEParts salarialesRetenue− brut plafonné × 1 %
120–130CNAPS13, OSTIE5, FMFPParts patronalesContribution sociétébrut plafonné × 13 % / 5 % / 1 %
150MG_IMPBase imposable IRSAisolée (hors totaux)brut − heures supp. non imposables − CNaPS − OSTIE, arrondi à la centaine inférieure
160IRSAIRSARetenue− max(barème − enfants × 2 000 ; 3 000)
174CHILD_SUPPORT, ATTACH_SALARY, ASSIG_SALARYPension, saisie, cessionRetenue− entrée du bulletin
190SAR / MG_ASPAvance sur salaire / avance spécialeRetenue− entrée du bulletin (ajoutée automatiquement)
198DEDUCTIONAutre retenueRetenue− entrée du bulletin
200NETSalaire netNetbase + allocations + non soumis + retenues
Règle IRSA
Règle IRSA : la formule lit le barème, la réduction par enfant et le minimum dans les paramètres datés. Aucun montant n'est écrit en dur.

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

Paie › Configuration › Paramètres.

Réglages HS
Heures supplémentaires : base de 173,33 h, seuil de 130 % à 8 h par mois, 20 h non imposables par mois, taux légaux. L'assistant ne remplit que les réglages vides.
Réglages avances spéciales
Avances spéciales : plafonds (0 = sans limite), nombre maximal d'échéances (12) et une seule avance active par employé.

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

Écriture de paie
Écriture du bulletin d'octobre (copie Odex) : équilibrée à 2 188 821,91 Ar. Les lignes « Avance sur salaire » (411100) et « Salaire net » (421000) portent le contact de l'employé.
RègleDébitCrédit
Brut, allocation familiale, remboursement641100
CNaPS / OSTIE salarié431000 / 432000
CNaPS / OSTIE employeur645000431000 / 432000
FMFP631000447000
IRSA446000
Saisie, cession, pension, autre retenue467000
Avance sur salaire, avance spéciale411100 (contact de l'employé)
Net à payer421000 (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ômeCause 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 pasLa 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 retenueL'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'ajustementUn compte manque sur une règle. Relancez l'assistant avec tous les comptes.
« Validez d'abord l'écriture comptable » au paiement en espècesL'écriture du bulletin est en brouillon. Le comptable doit la comptabiliser.
Un bulletin migré a encore les anciennes lignesIl faut le recalculer : bouton Calculer la feuille.
IRSA à 3 000 Ar pour un petit salaireC'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).