Passa al contenuto

Modello hr.employee: Guida all’architettura Employee di Odoo

Guida completa al modello dipendente di Odoo: tutto quello che devono sapere HR, sviluppatori e consulenti funzionali
11 marzo 2026 di
Modello hr.employee: Guida all’architettura Employee di Odoo
Dasolo
| Ancora nessun commento

Introduzione


In Odoo, i modelli definiscono la struttura dei dati e il modo in cui vengono persistiti nel database. Ogni elemento rilevante per l'attività — ordini, fatture, dipendenti — è rappresentato da un modello che organizza campi, relazioni e regole.


Per chi lavora con Odoo, sia dal punto di vista funzionale che tecnico, comprendere i modelli è fondamentale. Sono la spina dorsale dell'architettura dei dati: stabiliscono campi, legami tra record e la logica di business che li governa.


Questo contenuto si concentra su uno dei modelli centrali nell'area HR: hr.employee. Che tu stia impostando workflow per le risorse umane, collegando gestionali paghe o configurando presenze e permessi, lo incontrerai spesso.

Cos'è il modello hr.employee


Il modello hr.employee rappresenta i dipendenti all'interno di Odoo: è il punto unico dove si raccolgono le informazioni anagrafiche e lavorative di una persona nell'azienda.


Fa parte dell'app Risorse Umane e viene sfruttato trasversalmente da moduli come presenze, ferie, contratti, stipendio e timesheet.


Il modello viene installato attivando l'app "Dipendenti" e poi ampliato da altri moduli tramite ereditarietà dei modelli. Ad esempio, hr_contract inserisce i dati del contratto, hr_attendance aggiunge timestamp di ingresso/uscita e hr_leave gestisce le assenze: ciascun modulo estende il nucleo senza duplicarne la struttura.


Odoo fornisce anche una vista limitata dei dipendenti, hr.employee.public, pensata per utenti con visibilità ridotta: è un esempio di come l'ereditarietà e i pattern astratti dei modelli vengano usati per controllare l'accesso ai dati.

Campi chiave del modello


Di seguito trovi i campi più importanti del modello hr.employee — conoscerli ti aiuta a gestire correttamente le anagrafiche e a integrare i processi HR.


1. name

Tipo: Char. Contiene il nome visualizzato del dipendente. È il campo principale con cui viene identificato il record nelle viste e nei report.


2. create_date

Tipo: Datetime. Data e ora di creazione del record. Gestito automaticamente da Odoo, utile per audit e reportistica.


3. write_date

Tipo: Datetime. Data e ora dell'ultima modifica. Sempre gestito automaticamente e utile per tracciare aggiornamenti.


4. active

Tipo: Boolean. Flag di archiviazione (soft delete). Se impostato a False il dipendente viene nascosto dalle viste predefinite senza essere cancellato definitivamente.


5. company_id

Tipo: Many2one (res.company). Indica a quale azienda, nelle configurazioni multi-company, il dipendente appartiene; è fondamentale per la maggior parte dei record.


6. user_id

Tipo: Many2one (res.users). Collega il dipendente a un utente di sistema. Se impostato, il dipendente può accedere a Odoo e partecipare a flussi che richiedono login.


7. work_email

Tipo: Char. L'indirizzo email aziendale usato per comunicazioni interne e notifiche.


8. work_phone

Tipo: Char. Il numero telefonico aziendale, visibile nei form e usato nei flussi di contatto.


9. mobile_phone

Tipo: Char. Il numero di cellulare di lavoro, utile per SMS o comunicazioni urgenti.


10. department_id

Tipo: Many2one (hr.department). Il reparto di appartenenza; serve per organigrammi, report e flussi di approvazione.


11. job_id

Tipo: Many2one (hr.job). La posizione lavorativa collegata al modello hr.job, che descrive ruoli e posizioni aperte.


12. job_title

Tipo: Char. Titolo del ruolo in forma libera, utile quando non si utilizza job_id o si vuole una dicitura personalizzata.


13. parent_id

Tipo: Many2one (hr.employee). Il responsabile diretto; costruisce la gerarchia aziendale e supporta catene di approvazione e organigrammi.


14. coach_id

Tipo: Many2one (hr.employee). Il coach o mentor della risorsa, impiegato nei processi di valutazione e sviluppo; non conferisce automaticamente privilegi speciali.


15. resource_id

Tipo: Many2one (resource.resource). Collegamento al modulo risorse usato per pianificazione, disponibilità e integrazione con il calendario.


16. work_contact_id

Tipo: Many2one (res.partner). Il contatto aziendale associato per comunicazioni e documenti di lavoro.


17. address_id

Tipo: Many2one (res.partner). Indirizzo lavorativo collegato a un partner, utile per uffici e sedi.


18. address_home_id

Tipo: Many2one (res.partner). Indirizzo personale del dipendente, importante per buste paga, emergenze e comunicazioni private.


19. resource_calendar_id

Tipo: Many2one (resource.calendar). Calendario di lavoro che definisce orari e giorni utili per presenze, ferie e pianificazione.


20. employee_type

Tipo: Selection. Tipologia di rapporto (dipendente, libero professionista, stagista). Influenza la gestione dei contratti e la cronologia contrattuale.


21. barcode

Tipo: Char. Identificativo badge per registrare presenze tramite scansione barcode in app come Kiosk.


22. pin

Tipo: Char. Codice PIN usato per il check-in/out in Kiosk e per alcune operazioni al punto cassa.


23. birthday

Tipo: Date. Data di nascita, usata per registri HR e promemoria opzionali.


24. identification_id

Tipo: Char. Numero di identificazione nazionale, necessario per obblighi legali e paghe.


25. passport_id

Tipo: Char. Numero del passaporto, utile per trasferte e permessi di lavoro.


26. bank_account_id

Tipo: Many2one (res.partner.bank). Conto bancario su cui vengono accreditati gli stipendi.


27. private_email

Tipo: Char. Email personale del dipendente, alternativa alla mail di lavoro.


28. phone

Tipo: Char. Numero telefonico privato, distinto dai contatti aziendali.


29. contract_id

Tipo: Many2one (hr.contract). Contratto attuale del dipendente; riferimento al contratto in corso.


30. contract_ids

Tipo: One2many (hr.contract). Storico dei contratti collegati al dipendente.


31. image_1920

Tipo: Binary. Foto o avatar del dipendente; Odoo conserva diverse risoluzioni per form, report e directory.


32. related_partner_id

Tipo: Many2one (res.partner). Contatto collegato al dipendente che permette integrazioni con CRM e altre aree funzionali.


33. leave_manager_id

Tipo: Many2one (res.users). Utente responsabile dell'approvazione ferie; se vuoto l'approvazione ricade su amministratori o approvatori configurati.


34. expense_manager_id

Tipo: Many2one (res.users). Utente che approva le spese; se non impostato si applicano regole di fallback aziendali.


35. timesheet_manager_id

Tipo: Many2one (res.users). Utente responsabile di approvare i timesheet; utile per il controllo qualità delle registrazioni orarie.

Come questo modello entra nei processi aziendali


1. Rubrica dipendenti e onboarding

Durante l'inserimento di un nuovo collaboratore, l'HR compila la scheda hr.employee: nome, reparto, ruolo, referente e dati di contatto. Si collega user_id solo quando serve consentire l'accesso a Odoo.


2. Presenze e tracciamento orario

Le timbrature vengono registrate dall'app Presenze e collegate al modello hr.attendance, che a sua volta fa riferimento a hr.employee. Barcode e PIN abilitano modalità kiosk o tornelli.


3. Ferie e permessi

Le richieste di assenza puntano al record del dipendente; leave_manager_id e resource_calendar_id determinano chi approva e come calcolare i giorni disponibili.


4. Paghe e contratti

Il modulo Paghe utilizza hr.employee per dati su retribuzione, conto corrente e riferimento contrattuale. contract_id indica il contratto attivo, mentre contract_ids conserva lo storico.


5. Timesheet e assegnazione progetti

I fogli presenza collegano le ore al dipendente; il timesheet_manager_id gestisce le approvazioni e resource_id connette la risorsa agli strumenti di pianificazione.

Come gli sviluppatori estendono questo modello


Gli sviluppatori estendono hr.employee con diversi approcci, avvalendosi principalmente dell'ereditarietà dei modelli di Odoo.


Ereditarietà dei modelli

Dichiarando _inherit = 'hr.employee' in un modulo personalizzato puoi aggiungere campi, sovrascrivere metodi o aggiungere vincoli. Questo mantiene le modifiche isolate e facilita gli aggiornamenti.


Aggiunta di campi

Nella classe ereditata si definiscono nuovi fields scegliendo il tipo più adatto (Char, Many2one, Boolean, Integer, Text, Selection). Valuta i campi dipendenti dall'azienda in scenari multi-company.


Estensioni in Python

Puoi ridefinire create, write o unlink per inserire logica aggiuntiva: ricorda di chiamare super() per preservare il comportamento originale. Fai attenzione alle dipendenze dei campi calcolati.


Odoo Studio

Odoo Studio permette di aggiungere campi e semplici personalizzazioni senza scrivere codice: ottimo per prototipi rapidi, mentre per logiche complesse o manutenzione a lungo termine è preferibile un modulo custom.

Buone pratiche


  • Assegna user_id solo ai dipendenti che devono accedere a Odoo. Non tutti i collaboratori necessitano di un account di sistema.
  • Costruisci la gerarchia usando parent_id in modo coerente: partire dai livelli alti facilita la gestione delle approvazioni e dell'organigramma.
  • Configura resource_calendar_id per uniformare orari e garantire calcoli corretti di presenze e permessi.
  • Per integrazioni esterne usa XML-RPC o JSON-RPC: hr.employee è disponibile via API. Mappa gli identificativi esterni con attenzione per evitare incoerenze.
  • Per campi personalizzati utilizza il prefisso x_ o un prefisso legato al modulo per ridurre il rischio di collisioni con future versioni di Odoo.
  • Campi sensibili dovrebbero avere restrizioni basate sui gruppi (es. hr.group_hr_user) per evitare che utenti senza diritti HR vedano informazioni private.

Errori frequenti


  • Creare record duplicati invece di cercare esistenti è un errore comune. Usa work_email o identification_id per deduplicare durante import e integrazioni.
  • Non confondere user_id con related_partner_id: il primo rappresenta l'accesso a Odoo, il secondo il contatto partner collegato al dipendente.
  • Non dimenticare di impostare employee_type: è obbligatorio e influisce sul comportamento relativo ai contratti.
  • Non sovrascrivere metodi core senza invocare super(): ciò può compromettere la compatibilità con altri moduli e futuri aggiornamenti.
  • Evitare di aggiungere campi obbligatori senza prevedere valori di default: le vecchie registrazioni potrebbero fallire i controlli di validazione durante l'upgrade.
  • Non esporre campi HR sensibili a utenti non autorizzati: applica gruppi di accesso sui campi che contengono dati riservati.

Conclusione


Il modello hr.employee è il fulcro delle Risorse Umane in Odoo: centralizza informazioni anagrafiche, contrattuali e di presenza e funge da collegamento con moduli come contratti, presenze e ferie. Capirne i campi e le estensioni facilita configurazioni, personalizzazioni e integrazioni affidabili.


Sia che tu stia mappando processi HR come consulente funzionale, sia che tu stia sviluppando moduli personalizzati, una buona conoscenza di hr.employee ti farà risparmiare tempo e ridurre gli errori.

Hai bisogno di supporto per la tua implementazione Odoo?


Dasolo accompagna le aziende nell'implementazione, personalizzazione e ottimizzazione di Odoo. Siamo specializzati in integrazioni API e sviluppo Odoo, con esperienza approfondita nella struttura dati e nei modelli come hr.employee.


Se ti serve supporto per implementazioni Odoo, moduli HR custom o integrazioni, possiamo aiutarti. Prenota una demo per parlare del tuo progetto.

Modello hr.employee: Guida all’architettura Employee di Odoo
Dasolo 11 marzo 2026
Condividi articolo
Accedi per lasciare un commento