0% ont trouvé ce document utile (0 vote)
21 vues6 pages

Automatisation des fiches de paie marocaines

Transféré par

Cmpt Bus1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
21 vues6 pages

Automatisation des fiches de paie marocaines

Transféré par

Cmpt Bus1
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Prompt rectifié pour génération automatique de fiches de paie

Contexte

Je suis un expert en paie marocaine et réglementation CNSS.


Je souhaite créer un script Python capable de remplir automatiquement une fiche de paie
Excel existante, en respectant toutes les règles légales, plafonds, priorités et le modèle fourni.

Objectifs principaux

1. Prioriser les primes non soumises à la CNSS.


2. Compléter avec les primes soumises si nécessaire pour atteindre le salaire net cible
fourni dans le fichier salaires_net_mensuel.
3. Assurer une rotation aléatoire mensuelle des primes éligibles pour chaque salarié.
4. Respecter strictement les cellules du modèle Excel, sans écraser les formules
intégrées.
5. Calculer automatiquement :
o Salaire brut
o Salaire brut imposable
o Salaire net imposable
o IR selon le barème 2025
o Retenu CNSS
o Retenu AMO
o IR
o Salaire Net = Salaire Brut - (Retenu CNSS + Retenu AMO + IR)

Base de données des primes

Cat1 :

Primes non soumises :

- prime d'outillage : 100

- prime de salissure : 200

- prime de panier : 250

- indemnité de transport : 500


Primes soumises :

- prime d'assiduité : (pas de plafond)

Cat2 :

Primes non soumises :

- prime d'outillage : 100

- prime de salissure : 200

- prime de panier : 250

- indemnité de caisse : 150

- indemnité de transport : 500

- prime de tournée : 1500

Primes soumises :

- prime d'assiduité : 650

- prime de rendement : 1400

- indemnité d'encadrement : 800

Cat3 :

Primes non soumises :

- prime de panier : 250

- indemnité de caisse : 150

- indemnité de transport : 500

- prime de tournée : 1500

Primes soumises :

- prime d'assiduité : 650


- prime de rendement : 1400

- indemnité de responsabilité : 1400

- indemnité de poste : 1200

- indemnité d'encadrement : 800

Cat4 :

Primes non soumises :

- indemnité de caisse : 150

- indemnité de transport : 500

- prime de tournée : 1500

- indemnité de représentation : 500

Primes soumises :

- prime de rendement : 1400

- indemnité de poste : 1200

- indemnité de responsabilité : 1400

- indemnité d'encadrement : 800

Prime d’ancienneté (soumise) :

Cette prime doit toujours être présente dans la fiche de paie, quelle que soit la
catégorie.

Elle est calculée en pourcentage du salaire de base, selon l’ancienneté de


l’employé :

Plus de 2 ans jusqu’à 5 ans : 5 % du salaire de base

De 5 ans jusqu’à 12 ans : 10 %


De 12 ans jusqu’à 20 ans : 15 %

De 20 ans jusqu’à 25 ans : 20 %

Plus de 25 ans : 25 %

Les primes doivent être sélectionnées aléatoirement chaque mois parmi celles éligibles au
categorie correspondante, priorité non soumise > soumise, en respectant plafonds et
conditions jusqu’à atteinte du salaire net cible.

Objectif :
1-generer les fiche de paie automatiquement en respectant strictement toutes les instructions
jusqu’à atteinte du salaire net cible.
2-Ce n’est pas obligatoire d’utiliser le plafond de la prime, on peut considerer seulement une
partie de montant au cas de besoin pour tomber dans le salaire net cible.
3-le salaire net generer doit etre +/-1 au maximum.

Formules de calcul

1. Salaire brut
Salaire_brut = Salaire_de_base + Σ(Primes non soumises + Primes
soumises)
le montant calculé doit etre stocké dans la cellule E32
2. Salaire brut imposable
Salaire_brut_imposable = Salaire_brut - Σ(Primes exonérées CNSS)
le montant calculé doit etre stocké dans la cellule C33
3. Salaire net imposable
Si Salaire_brut_imposable <= 6500 alors :
Salaire_net_imposable = Salaire_brut_imposable - (CNSS + AMO +
Abattement*41.66 + min(Salaire_brut*0.35, 2500))
Si Salaire_brut_imposable > 6500 alors :
Salaire_net_imposable = Salaire_brut_imposable - (CNSS + AMO +
Abattement*41.66 + min(Salaire_brut*0.25, 2500))
le montant calculé doit etre stocké dans la cellule C36
4. Retenu CNSS = Min (Salaire_brut_imposable ;6000)*0.0448
le montant calculé doit etre stocké dans la cellule F34
5. Retenu AMO = Salaire_brut_imposable * 0.026
le montant calculé doit etre stocké dans la cellule F35

6. IR
if 0 <= Salaire_net_imposable <= 3333:
IR = 0
elif 3334 <= Salaire_net_imposable <= 5000:
IR = Salaire_net_imposable*0.10 - 333.33
elif 5001 <= Salaire_net_imposable <= 6667:
IR = Salaire_net_imposable*0.20 - 833.33
elif 6668 <= Salaire_net_imposable <= 8333:
IR = Salaire_net_imposable*0.30 – 1500
elif 8334 <= Salaire_net_imposable <= 15000:
IR = Salaire_net_imposable*0.34 - 1833.33
else: # Salaire_net_imposable > 15000
IR = Salaire_net_imposable*0.37 - 2283.33

le montant IR calculé doit etre stocké dans la cellule F37


Salaire_net = Salaire_brut – (Retenu CNSS + Retenu AMO + IR)

le montant Salaire net calculé qui doit étre impérativement egal au salaire cible ou +/-1
et doit etre stocké dans la cellule E38

Remplissage strict du modèle Excel

Cellule Contenu / Valeur

E3 Mois et année en cours, format "Month Year"

A6 Matricule salarié

B6 Nom et prénom concaténés

E6 Poste

F6 Lieu d'affectation

B10 Date d'embauche "dd/mm/yyyy"

C10 Situation familiale

D10 Abattement

E10 Numéro C.I.N.

F10 Numéro C.N.S.S.

C12 Salaire de base

D12 Nombre de jours travaillés


Cellule Contenu / Valeur

D13 Nombre de jours fériés

D14 Nombre de jours de congé

D15 Taux d’ancienneté

C40 Mode de paiement

⚠️Les formules existantes dans le modèle doivent rester intactes. Le script doit remplir
uniquement les valeurs.

Fonctionnalités Python attendues

 Classe GenerateurFichePaie avec méthodes :


o calculer_plafond_prime()
o verifier_conditions()
o optimiser_primes() → ajuste automatiquement les primes pour
atteindre le salaire net cible fourni dans la base
o remplir_excel_modele()
 Rotation aléatoire des primes éligibles chaque mois
 Calcul complet CNSS, AMO, abattement, IR 2025
 Remplissage exact des cellules du modèle Excel
 Export d’une fiche de paie Excel pour chaque salarié portant le nom et prénom
 Toutes les fiches stockées dans un dossier fiche_de_paie_<periode_de_la_paie>

Résultat attendu

 Fiche de paie remplie exactement comme le modèle, avec toutes les primes et
indemnités calculées.
 Respect des priorités légales, plafonds et conditions.
 Rotation aléatoire mensuelle des primes.
 Calcul correct : salaire brut, brut imposable, net imposable, IR 2025 et salaire net
final.
 Le script atteint le salaire net cible pour chaque salarié via l’ajustement des primes.

Vous aimerez peut-être aussi