Passa al contenuto
Odoo Menu
  • Accedi
  • Provalo gratis
  • App
    Finanze
    • Contabilità
    • Fatturazione
    • Note spese
    • Fogli di calcolo (BI)
    • Documenti
    • Firma
    Vendite
    • CRM
    • Vendite
    • Punto vendita Negozio
    • Punto vendita Ristorante
    • Abbonamenti
    • Noleggi
    Siti web
    • Configuratore sito web
    • E-commerce
    • Blog
    • Forum
    • Live chat
    • E-learning
    Supply chain
    • Magazzino
    • Produzione
    • PLM
    • Acquisti
    • Manutenzione
    • Qualità
    Risorse umane
    • Dipendenti
    • Assunzioni
    • Ferie
    • Valutazioni
    • Referral dipendenti
    • Parco veicoli
    Marketing
    • Social marketing
    • E-mail marketing
    • SMS marketing
    • Eventi
    • Marketing automation
    • Sondaggi
    Servizi
    • Progetti
    • Fogli ore
    • Assistenza sul campo
    • Helpdesk
    • Pianificazione
    • Appuntamenti
    Produttività
    • Comunicazioni
    • Intelligenza artificiale
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    App di terze parti Odoo Studio Piattaforma cloud Odoo
  • Settori
    Retail
    • Libreria
    • Negozio di abbigliamento
    • Negozio di arredamento
    • Alimentari
    • Ferramenta
    • Negozio di giocattoli
    Cibo e ospitalità
    • Bar e pub
    • Ristorante
    • Fast food
    • Pensione
    • Grossista di bevande
    • Hotel
    Agenzia immobiliare
    • Agenzia immobiliare
    • Studio di architettura
    • Edilizia
    • Gestione immobiliare
    • Impresa di giardinaggio
    • Associazione di proprietari immobiliari
    Consulenza
    • Società di contabilità
    • Partner Odoo
    • Agenzia di marketing
    • Studio legale
    • Selezione del personale
    • Audit e certificazione
    Produzione
    • Tessile
    • Metallo
    • Arredamenti
    • Alimentare
    • Birrificio
    • Ditta di regalistica aziendale
    Benessere e sport
    • Club sportivo
    • Negozio di ottica
    • Centro fitness
    • Centro benessere
    • Farmacia
    • Parrucchiere
    Commercio
    • Tuttofare
    • Hardware e assistenza IT
    • Ditta di installazione di pannelli solari
    • Calzolaio
    • Servizi di pulizia
    • Servizi di climatizzazione
    Altro
    • Organizzazione non profit
    • Ente per la tutela ambientale
    • Agenzia di cartellonistica pubblicitaria
    • Studio fotografico
    • Punto noleggio di biciclette
    • Rivenditore di software
    Carica tutti i settori
  • Community
    Apprendimento
    • Tutorial
    • Documentazione
    • Certificazioni 
    • Formazione
    • Blog
    • Podcast
    Potenzia la tua formazione
    • Programma educativo
    • Scale Up! Business Game
    • Visita Odoo
    Ottieni il software
    • Scarica
    • Versioni a confronto
    • Note di versione
    Collabora
    • Github
    • Forum
    • Eventi
    • Traduzioni
    • Diventa nostro partner
    • Servizi per partner
    • Registra la tua società di contabilità
    Ottieni servizi
    • Trova un partner
    • Trova un contabile
    • Incontra un esperto
    • Servizi di implementazione
    • Testimonianze dei clienti
    • Supporto
    • Aggiornamenti
    GitHub Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Richiedi una demo
  • Prezzi
  • Aiuto
È necessario essere registrati per interagire con la community.
Tutti gli articoli Persone Badge
Etichette (Mostra tutto)
odoo accounting v14 pos v15
Sul forum
È necessario essere registrati per interagire con la community.
Tutti gli articoli Persone Badge
Etichette (Mostra tutto)
odoo accounting v14 pos v15
Sul forum
Assistenza

Payroll rule python code

Iscriviti

Ricevi una notifica quando c'è un'attività per questo post

La domanda è stata contrassegnata
enterprise19.2
5 Risposte
161 Visualizzazioni
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
Abbandona
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
Risposta migliore

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

0
Avatar
Abbandona
Avatar
Siddharth More
Risposta migliore

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
Abbandona
Avatar
Siddharth More
Risposta migliore

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
Abbandona
Avatar
Siddharth More
Risposta migliore

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
Abbandona
Avatar
Siddharth More
Risposta migliore

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
Abbandona
Ti stai godendo la conversazione? Non leggere soltanto, partecipa anche tu!

Crea un account oggi per scoprire funzionalità esclusive ed entrare a far parte della nostra fantastica community!

Registrati
Post correlati Risposte Visualizzazioni Attività
How to set up sales taxes in Odoo 19.2
19.2
Avatar
1
mag 26
524
How to create OT work entries in Odoo 19.2 (new Payroll app)
19.2
Avatar
Avatar
1
mag 26
645
Create customer users without incurring enterprise fees for all
enterprise
Avatar
Avatar
1
apr 23
7691
why would Odoo 14 enterprise server reboot every 5 - 10 minutes ?.
enterprise
Avatar
0
giu 21
3556
How to access new version of Odoo studio Risolto
enterprise
Avatar
Avatar
1
mar 17
10341
Community
  • Tutorial
  • Documentazione
  • Forum
Open source
  • Scarica
  • Github
  • Runbot
  • Traduzioni
Servizi
  • Hosting Odoo.sh
  • Supporto
  • Aggiornamenti
  • Sviluppi personalizzati
  • Formazione
  • Trova un contabile
  • Trova un partner
  • Diventa nostro partner
Chi siamo
  • La nostra azienda
  • Branding
  • Contattaci
  • Lavora con noi
  • Eventi
  • Podcast
  • Blog
  • Clienti
  • Note legali • Privacy
  • Sicurezza
الْعَرَبيّة 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 è un gestionale di applicazioni aziendali open source pensato per coprire tutte le esigenze della tua azienda: CRM, Vendite, E-commerce, Magazzino, Produzione, Fatturazione elettronica, Project Management e molto altro.

Il punto di forza di Odoo è quello di offrire un ecosistema unico di app facili da usare, intuitive e completamente integrate tra loro.

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