Introduktion
I Odoo definierar modeller hur data struktureras och lagras i databasen. Varje bit affärsdata du arbetar med, från försäljningsorder till fakturor till anställda, finns i en modell.
Att förstå Odoo-modeller är avgörande för både utvecklare och funktionella konsulter. Modeller är grunden för Odoo:s dataarkitektur. De definierar fält, relationer och affärslogik.
Denna artikel fokuserar på en av kärnmodellerna i HR-modulen: hr.employee. Oavsett om du bygger anpassade HR-arbetsflöden, integrerar lönehanteringssystem eller konfigurerar närvaro och ledighet, kommer du att arbeta med denna modell.
Vad är hr.employee-modellen
Modellen hr.employee representerar anställda i Odoo. Det är den centrala platsen där all personalinformation lagras.
Denna Odoo-modell är en del av HR (Human Resources) appen. Den används inom närvaro, ledighet, kontrakt, löner och tidrapporter.
Den installeras när du aktiverar appen Anställda. Andra moduler utökar den genom Odoo-modellärv. hr_contract lägger till fält för kontrakt. hr_attendance lägger till in- och utcheckning. hr_leave lägger till ledighet. Varje modul lägger till vad den behöver utan att duplicera den grundläggande strukturen.
Odoo tillhandahåller också hr.employee.public, en begränsad vy av samma data för användare som behöver begränsad synlighet av anställda. Detta är ett exempel på hur Odoo använder abstrakta modellmönster och modellärv för att kontrollera åtkomst.
Nyckelfält i modellen
Här är de viktigaste Odoo-fälten i modellen hr.employee. Att förstå dessa kommer att hjälpa dig att arbeta effektivt med anställdas register.
1. namn
Typ: Char. Detta fält lagrar anställdas namn. Det visas vanligtvis i många Odoo-vyer och är den primära identifieraren för anställdas register.
2. create_date
Typ: Datetime. Lagrar datum och tid när posten skapades. Hanteras automatiskt av Odoo. Användbart för rapportering och revision.
3. write_date
Typ: Datetime. Lagrar datum och tid för den senaste ändringen. Hanteras också automatiskt. Hjälper till att spåra när data senast uppdaterades.
4. aktiv
Typ: Boolean. Mjuk raderingsflagga. När den är False arkiveras posten och döljs från standardvyer. Använd detta när en anställd slutar. Poster raderas inte fysiskt.
5. company_id
Typ: Many2one (res.company). I flerföretagsinställningar anger detta vilken Odoo-företag den anställde tillhör. Krävs för de flesta anställdas poster.
6. user_id
Typ: Many2one (res.users). Kopplar den anställde till en Odoo-användare. När den är inställd kan den anställde logga in och använda Odoo. Används för portalåtkomst, tidrapporter och godkännanden.
7. work_email
Typ: Char. Arbets-e-postadress. Används för intern kommunikation och meddelanden.
8. work_phone
Typ: Char. Arbets telefonnummer. Visas i anställdas formulär och används för kontaktarbetsflöden.
9. mobile_phone
Typ: Char. Arbets mobilnummer. Används ofta för SMS eller brådskande meddelanden.
10. department_id
Typ: Many2one (hr.department). Den avdelning som medarbetaren tillhör. Används för organisationsdiagram, rapportering och godkännande arbetsflöden.
11. job_id
Typ: Many2one (hr.job). Jobbpositionen. Länkar till hr.job-modellen som definierar jobbtitlar och öppna positioner.
12. job_title
Typ: Char. Fritekst jobbtitel. Kan användas när job_id inte är inställt eller för anpassade titlar.
13. parent_id
Typ: Many2one (hr.employee). Chefen. Möjliggör hierarkin av medarbetare. Används för godkännandekedjor och organisationsstruktur.
14. coach_id
Typ: Many2one (hr.employee). Coach för denna medarbetare. Används för prestation och utveckling. Coachen har inga specifika rättigheter som standard.
15. resource_id
Typ: Many2one (resource.resource). Länkar till resursmodellen. Används för schemaläggning, kapacitetsplanering och kalenderintegration.
16. work_contact_id
Typ: Many2one (res.partner). Arbetskontakt. Länkar till partnerposten som används för arbetsrelaterad kommunikation och dokument.
17. address_id
Typ: Many2one (res.partner). Arbetsadress. Länkar till en res.partner-post för kontoret eller arbetsplatsen.
18. address_home_id
Typ: Many2one (res.partner). Privat adress. Medarbetarens hemadress, inte kontoret. Används för löneutbetalningar och nödkontakter.
19. resource_calendar_id
Typ: Many2one (resource.calendar). Arbetsschema. Definierar arbetstider och dagar. Används för närvaro, ledighet och planering.
20. employee_type
Typ: Val. Anställningstyp: Anställd, Frilansare eller Praktikant. Obligatorisk. Påverkar kontrakthistorik: endast Anställd-typ ska vara under kontrakt.
21. barcode
Typ: Char. ID-kort. Används för medarbetaridentifiering i närvarokiosken och annan streckkodsskanning.
22. pin
Typ: Char. PIN som används för in- och utcheckning i Kiosk-läget av närvaroanvändningen. Används också för att byta kassör i försäljningsstället.
23. födelsedag
Typ: Datum. Födelsedatum. Används för HR-register och valfria födelsedagspåminnelser.
24. identifikations_id
Typ: Char. Nationellt identifikationsnummer. Används för HR- och löneöverensstämmelse.
25. pass_id
Typ: Char. Passnummer. Används för rese- och arbetstillståndsspårning.
26. bankkontonummer_id
Typ: Many2one (res.partner.bank). Anställdas bankkonto för löneutbetalningar.
27. privat_e-post
Typ: Char. Den anställdes personliga e-post. Används när arbets-e-post inte är tillgänglig.
28. telefon
Typ: Char. Privat telefonnummer. Annan än arbetskontaktuppgifter.
29. contract_id
Typ: Many2one (hr.contract). Nuvarande kontrakt. Referens till det aktiva kontraktet.
30. contract_ids
Typ: One2many (hr.contract). Alla kontrakt kopplade till denna anställd. Kontrakthistorik.
31. image_1920
Typ: Binär. Anställdas foto eller avatar. Odoo lagrar flera storlekar. Används i formulär, rapporter och katalogen.
32. related_partner_id
Typ: Many2one (res.partner). Kontakten kopplad till denna anställd. Kopplar anställdas data till partnermodellen för CRM och andra moduler.
33. leave_manager_id
Typ: Many2one (res.users). Användare ansvarig för att godkänna ledighet. Om tom, går godkännandet till en administratör eller godkännare.
34. expense_manager_id
Typ: Many2one (res.users). Användare som ansvarar för att godkänna utgifter. Om tom, går godkännandet till en administratör eller godkännare.
35. timesheet_manager_id
Typ: Many2one (res.users). Användare som ansvarar för att godkänna tidrapporter. Om tom, går godkännandet till en tidrapportsadministratör eller användare.
Hur denna modell används i affärsarbetsflöden
1. Anställderegister och introduktion
När HR skapar en ny anställd fyller de i hr.employee-posten. Namn, avdelning, jobb, chef och kontaktuppgifter. user_id-länken sätts när den anställde får Odoo-åtkomst.
2. Närvaro och tidsregistrering
Anställda checkar in och ut via Närvaro-appen. In- och utcheckningstiderna lagras i hr.attendance, kopplade till hr.employee. Streckkod- och pin-fälten möjliggör kiosk-läge.
3. Ledighet och semester
Ledighetsansökningar refererar till den anställde. leave_manager_id och resource_calendar_id styr vem som godkänner och hur många dagar som tilldelas.
4. Lön och kontrakt
Lön använder hr.employee för lönestruktur, bankkonto och kontraktsdata. contract_id länkar till det aktuella kontraktet. contract_ids håller hela historiken.
5. Tidrapporter och projektallokering
När anställda loggar tid på projekt, länkar tidrapporten till hr.employee. Tidrapportens manager_id kontrollerar godkännande. resource_id länkar till planerings- och schemaläggningsverktygen.
Hur utvecklare utökar denna modell
Utvecklare utökar hr.employee med flera mönster. Odoo-modellarv är den huvudsakliga mekanismen.
Modellarv
Använd _inherit = 'hr.employee' för att utöka modellen. Lägg till nya fält, åsidosätt metoder eller lägg till begränsningar. Den ärvda modellen i Odoo håller dina ändringar i en separat modul för enkla uppgraderingar.
Lägga till fält
Definiera nya Odoo-fält i din ärvda modell. Använd rätt fälttyp: Char, Many2one, Boolean, Integer, Text, Selection. Tänk på företagsberoende fält för flera företag.
Python-tillägg
Åsidosätt create, write eller unlink för att lägga till logik. Använd super() för att anropa den ursprungliga. Var försiktig med beräknade fält och deras beroenden.
Odoo Studio
Odoo Studio låter dig lägga till fält utan kod. Bra för snabba anpassningar. För komplex logik eller uppgraderingar är anpassade moduler mer underhållbara.
Bästa praxis
- Ställ in user_id endast när den anställde behöver Odoo-åtkomst. Inte alla anställda behöver ett användarkonto.
- Använd parent_id-hierarkin korrekt. Bygg organisationsstrukturen uppifrån och ner.
- Ställ in resource_calendar_id för konsekventa arbetstider och beräkningar av ledighet.
- När du bygger API-integrationer, använd XML-RPC eller JSON-RPC API. Modellen hr.employee i Odoo är helt exponerad som en API-modell. Kartlägg externa ID noggrant.
- För anpassade fält, använd
x_prefix eller ett modulprefix för att undvika konflikter med framtida Odoo-versioner. - Fält som är begränsade till hr.group_hr_user bör inte förhämtas för användare utan HR-åtkomst. Använd grupper på fältdefinitioner.
Vanliga misstag
- Skapa dubblettanställningsposter istället för att söka efter befintliga. Använd work_email eller identification_id för deduplicering.
- Blanda ihop user_id och related_partner_id. user_id är för Odoo-inloggning. related_partner_id är kontaktposten.
- Glömma att ställa in employee_type. Det är obligatoriskt och påverkar kontraktsbeteende.
- Överskrida kärnmetoder utan att kalla super(). Detta kan bryta andra moduler eller framtida uppgraderingar.
- Lägga till obligatoriska anpassade fält utan standardvärden. Befintliga poster kommer att misslyckas med validering vid uppgradering.
- Exponera känsliga HR-fält för användare utan hr.group_hr_user. Använd grupper på fält som innehåller privat data.
Slutsats
Modellen hr.employee är central för Odoo HR. Den lagrar anställdas data, länkar till kontrakt, närvaro och ledighet. Att förstå dess fält och hur moduler utökar den kommer att hjälpa dig att konfigurera, anpassa och integrera Odoo effektivt.
Oavsett om du är en funktionell konsult som kartlägger HR-processer eller en utvecklare som bygger anpassade moduler, kommer en solid förståelse av hr.employee att spara tid och förhindra fel.
Behöver du hjälp med din Odoo-implementering?
Dasolo hjälper företag att implementera, anpassa och optimera Odoo. Vi specialiserar oss på API-integrationer och Odoo-utveckling. Vårt team har djup erfarenhet av Odoo:s dataarkitektur och modeller som hr.employee.
Om du behöver hjälp med din Odoo-implementering, anpassade HR-moduler eller integrationer, är vi här för att hjälpa till. Boka en demo för att diskutera ditt projekt.