Se rendre au contenu
Odoo Menu
  • Se connecter
  • Essai gratuit
  • Applications
    Finance
    • Comptabilité
    • Facturation
    • Notes de frais
    • Feuilles de calcul (BI)
    • Documents
    • Signature
    Ventes
    • CRM
    • Ventes
    • PdV Boutique
    • PdV Restaurant
    • Abonnements
    • Location
    Sites web
    • Site Web
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Chaîne d'approvisionnement
    • Inventaire
    • Fabrication
    • PLM
    • Achats
    • Maintenance
    • Qualité
    Ressources Humaines
    • Employés
    • Recrutement
    • Congés
    • Évaluations
    • Recommandations
    • Parc automobile
    Marketing
    • Marketing Social
    • E-mail Marketing
    • SMS Marketing
    • Événements
    • Marketing Automation
    • Sondages
    Services
    • Projet
    • Feuilles de temps
    • Services sur Site
    • Assistance
    • Planification
    • Rendez-vous
    Productivité
    • Discussion
    • Intelligence artificielle
    • Internet des Objets
    • VoIP
    • Connaissances
    • WhatsApp
    Applications tierces Odoo Studio Plateforme Cloud d'Odoo
  • Industries
    Commerce de détail
    • Librairie
    • Magasin de vêtements
    • Magasin de meubles
    • Supermarché
    • Quincaillerie
    • Magasin de jouets
    Restauration & Hôtellerie
    • Bar et Pub
    • Restaurant
    • Fast-food
    • Maison d’hôtes
    • Distributeur de boissons
    • Hôtel
    Immobilier
    • Agence immobilière
    • Cabinet d'architecture
    • Construction
    • Gestion immobilière
    • Jardinage
    • Association de copropriétaires
    Consultance
    • Cabinet d'expertise comptable
    • Partenaire Odoo
    • Agence Marketing
    • Cabinet d'avocats
    • Aquisition de talents
    • Audit & Certification
    Fabrication
    • Textile
    • Métal
    • Meubles
    • Alimentation
    • Brasserie
    • Cadeaux d'entreprise
    Santé & Fitness
    • Club de sports
    • Opticien
    • Salle de fitness
    • Praticiens bien-être
    • Pharmacie
    • Salon de coiffure
    Commerce
    • Homme à tout faire
    • Matériel informatique & support
    • Systèmes photovoltaïques
    • Cordonnier
    • Services de nettoyage
    • Services CVC
    Autres
    • Organisation à but non lucratif
    • Agence environnementale
    • Location de panneaux d'affichage
    • Photographie
    • Leasing de vélos
    • Revendeur de logiciel
    Parcourir toutes les industries
  • Communauté
    Apprenez
    • Tutoriels
    • Documentation
    • Certifications
    • Formation
    • Blog
    • Podcast
    Renforcer l'éducation
    • Programme éducatif
    • Business Game Scale-Up!
    • Rendez-nous visite
    Obtenir le logiciel
    • Téléchargement
    • Comparez les éditions
    • Versions
    Collaborer
    • Github
    • Forum
    • Événements
    • Traductions
    • Devenir partenaire
    • Services pour partenaires
    • Enregistrer votre cabinet comptable
    Nos Services
    • Trouver un partenaire
    • Trouver un comptable
    • Rencontrer un conseiller
    • Services de mise en œuvre
    • Références clients
    • Assistance
    • Mises à niveau
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Obtenir une démonstration
  • Tarification
  • Aide
Vous devez être inscrit pour interagir avec la communauté.
Toutes les publications Personnes Badges
Étiquettes (Voir toutl)
odoo accounting v14 pos v15
À propos de ce forum
Vous devez être inscrit pour interagir avec la communauté.
Toutes les publications Personnes Badges
Étiquettes (Voir toutl)
odoo accounting v14 pos v15
À propos de ce forum
Aide

Payroll rule python code

S'inscrire

Recevez une notification lorsqu'il y a de l'activité sur ce poste

Cette question a été signalée
enterprise19.2
5 Réponses
149 Vues
Avatar
SwiftTrading, Nabil Abouelnaser
  • In basic salary rule, I need to access total wage in employee contract:
  • I used contract.wage but it gives error as name object is not defined.

  • I need to access the total unpaid days in payslip object

 

0
Avatar
Ignorer
Odoobot
Dear Codesphere

It works, appreciate your reply.

How can I find a list of all attributes / dictionary key  for available object

Best Regards
Nabil

On Mon, Jun 15, 2026 at 3:45 PM Codesphere Tech <notifications@mail.odoo.com> wrote:
A new answer on Payroll rule python code has been posted. Click here to access the post : See post ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​ ͏ ​

A new answer on Payroll rule python code has been posted. Click here to access the post :

See post

--

Lakhan Vachhani

Avatar
Codesphere Tech
Meilleure réponse

Hello,
In earlier Odoo versions, hr.contract was replaced by hr.version.
You can try using:
version.wage
Hope this helps.
Thanks.

0
Avatar
Ignorer
Avatar
Siddharth More
Meilleure réponse

Great question! In Odoo Payroll salary rules, the available objects are predefined. Here's how to correctly access contract wage and unpaid days:

Available Objects in Salary Rule Python Code:

  • payslip – the current payslip object
  • employee – the employee record
  • contract – the active contract
  • rules – computed salary rules
  • categories – salary rule categories
To access Contract Wage:
result = contract.wage

Common Fix: Ensure your rule's Condition Type is set to "Python Expression" and the Amount Type is "Python Code" — otherwise contract won't be in scope.

To access Total Unpaid Days:
unpaid_days = payslip.worked_days_line_ids.filtered(lambda x: x.code == 'UNPAID')
result = unpaid_days[0].number_of_days if unpaid_days else 0

Make sure the UNPAID work entry type code matches your configuration exactly.

Hope this helps! For professional Odoo implementation in India, feel free to reach out to Alligator Infosoft at alligatorinfosoft.com
0
Avatar
Ignorer
Avatar
Siddharth More
Meilleure réponse

Great question! In Odoo Payroll, salary rule Python code runs in a specific context with predefined variables.

Available variables in salary rule code:

  • contract – employee contract object
  • payslip – current payslip object
  • employee – employee object
  • categories – salary rule categories
  • worked_days – worked days object
  • inputs – input lines object
To access contract wage:
result = contract.wage

To access unpaid/leave days from payslip:
unpaid = worked_days.UNPAID.number_of_days if worked_days.UNPAID else 0.0

Common fix for "name not defined" error:
Make sure your rule's Condition is set to Python Expression and the Amount Type is set to Python Code — not fixed amount or percentage.

Also verify the work entry type code matches exactly (e.g., UNPAID, WORK100) under Payroll → Configuration → Work Entry Types.

Hope this helps! For professional Odoo implementation in India, feel free to reach out to Alligator Infosoft at alligatorinfosoft.com
0
Avatar
Ignorer
Avatar
Siddharth More
Meilleure réponse

Great question! In Odoo payroll salary rules, the available objects in the Python code context are predefined.

Available objects in Salary Rule Python Code:

  • employee – Employee record
  • contract – Employee contract (use this for wage)
  • payslip – Current payslip record
  • worked_days – Worked days object
  • inputs – Input lines
  • categories – Salary categories
To access contract wage:
result = contract.wage

To access total unpaid/leave days from payslip:
unpaid = worked_days.UNPAID.number_of_days if hasattr(worked_days, 'UNPAID') else 0.0
result = unpaid


Common Fix: If you get "name not defined", ensure your rule Condition is set to Python Expression and the Amount Type is set to Python Code — not fixed amount.

Also verify the work entry type code matches exactly (e.g., UNPAID, LEAVE90, etc.) as defined in your configuration.

Hope this helps! For professional Odoo implementation in India, feel free to reach out to Alligator Infosoft at alligatorinfosoft.com
0
Avatar
Ignorer
Avatar
Siddharth More
Meilleure réponse

Great question! In Odoo payroll salary rules, the available predefined variables are limited — you cannot use arbitrary Python variable names directly.

To access Contract Wage:
Use contract.wage — but make sure your rule's Condition and Python Code fields are set correctly. The correct syntax is:

  1. Set rule type to "Python Code"
  2. In the code field, use:
    result = contract.wage
Available predefined objects in salary rules:
  • contract — employee contract
  • payslip — current payslip object
  • employee — employee record
  • worked_days — worked days lines
  • inputs — input lines
To access unpaid days:
worked_days.UNPAID and worked_days.UNPAID.number_of_days or 0

The error "name object is not defined" usually means the rule is not in Python Code mode or there's a syntax issue in your expression field.

Hope this helps! For professional Odoo implementation in India, feel free to reach out to Alligator Infosoft at alligatorinfosoft.com
0
Avatar
Ignorer
Vous appréciez la discussion ? Ne vous contentez pas de lire, rejoignez-nous !

Créez un compte dès aujourd'hui pour profiter de fonctionnalités exclusives et échanger avec notre formidable communauté !

S'inscrire
Publications associées Réponses Vues Activité
How to set up sales taxes in Odoo 19.2
19.2
Avatar
1
mai 26
518
How to create OT work entries in Odoo 19.2 (new Payroll app)
19.2
Avatar
Avatar
1
mai 26
642
Create customer users without incurring enterprise fees for all
enterprise
Avatar
Avatar
1
avr. 23
7688
why would Odoo 14 enterprise server reboot every 5 - 10 minutes ?.
enterprise
Avatar
0
juin 21
3555
How to access new version of Odoo studio Résolu
enterprise
Avatar
Avatar
1
mars 17
10341
Communauté
  • Tutoriels
  • Documentation
  • Forum
Open Source
  • Téléchargement
  • Github
  • Runbot
  • Traductions
Services
  • Hébergement Odoo.sh
  • Assistance
  • Migration
  • Développements personnalisés
  • Éducation
  • Trouver un comptable
  • Trouver un partenaire
  • Devenir partenaire
À propos
  • Notre société
  • Actifs de la marque
  • Contactez-nous
  • Emplois
  • Événements
  • Podcast
  • Blog
  • Clients
  • Informations légales • Confidentialité
  • Sécurité.
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk Slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo est une suite d'applications open source couvrant tous les besoins de votre entreprise : CRM, eCommerce, Comptabilité, Inventaire, Point de Vente, Gestion de Projet, etc.

Le positionnement unique d'Odoo est d'être à la fois très facile à utiliser et totalement intégré.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now