Introduktion
I Odoo definerer modeller, hvordan data er struktureret og gemt i databasen. Hver enkelt del af forretningsdata, du arbejder med, fra salgsordrer til fakturaer til medarbejdere, findes i en model.
At forstå Odoo-modeller er essentielt for både udviklere og funktionelle konsulenter. Modellerne er fundamentet for Odoo's dataarkitektur. De definerer felter, relationer og forretningslogik.
Denne artikel fokuserer på en af de centrale modeller i HR-modulet: hr.employee. Uanset om du bygger tilpassede HR-arbejdsgange, integrerer lønsystemer eller konfigurerer tilstedeværelse og ferie, vil du arbejde med denne model.
Hvad er hr.employee-modellen
Modellen hr.employee repræsenterer medarbejdere i Odoo. Det er det centrale sted, hvor alle personaledata opbevares.
Denne Odoo-model er en del af HR (Human Resources) appen. Den bruges på tværs af attendance, leave, contracts, payroll og timesheets.
Den installeres, når du aktiverer Employees appen. Andre moduler udvider den gennem Odoo modelarv. hr_contract tilføjer kontraktfelter. hr_attendance tilføjer check-in og check-out. hr_leave tilføjer fri. Hvert modul tilføjer det, det har brug for, uden at duplikerer den grundlæggende struktur.
Odoo tilbyder også hr.employee.public, en begrænset visning af de samme data for brugere, der har brug for begrænset medarbejdersynlighed. Dette er et eksempel på, hvordan Odoo bruger abstrakte modelmønstre og modelarv til at kontrollere adgang.
Nøglefelter i modellen
Her er de vigtigste Odoo-felter i hr.employee modellen. At forstå disse vil hjælpe dig med at arbejde effektivt med medarbejderoptegnelser.
1. navn
Type: Char. Dette felt gemmer medarbejderens navn. Det vises typisk i mange Odoo-visninger og er den primære identifikator for medarbejderoptegnelsen.
2. create_date
Type: Datetime. Gemmer datoen og tidspunktet for, hvornår optegnelsen blev oprettet. Administreres automatisk af Odoo. Nyttig til rapportering og revision.
3. write_date
Type: Datetime. Gemmer datoen og tidspunktet for den seneste ændring. Også administreret automatisk. Hjælper med at spore, hvornår data sidst blev opdateret.
4. aktiv
Type: Boolean. Soft delete flag. When False, the record is archived and hidden from default views. Use this when an employee leaves. Records are not physically deleted.
5. company_id
Type: Many2one (res.company). I multi-company opsætninger angiver dette, hvilken Odoo virksomhed medarbejderen tilhører. Påkrævet for de fleste medarbejderoptegnelser.
6. user_id
Type: Many2one (res.users). Knytter medarbejderen til en Odoo-bruger. Når den er indstillet, kan medarbejderen logge ind og bruge Odoo. Bruges til portaladgang, tidsregistrering og godkendelser.
7. work_email
Type: Char. Arbejdsmailadressen. Bruges til interne kommunikationer og meddelelser.
8. work_phone
Type: Char. Arbejdstelefonnummeret. Vist i medarbejderformularer og brugt til kontaktarbejdsgange.
9. mobile_phone
Type: Char. Arbejdsmobilnummer. Bruges ofte til SMS eller presserende meddelelser.
10. department_id
Type: Many2one (hr.department). Den afdeling, som medarbejderen tilhører. Bruges til organisationsdiagrammer, rapportering og godkendelsesarbejdsgange.
11. job_id
Type: Many2one (hr.job). Jobpositionen. Linker til hr.job-modellen, som definerer jobtitler og åbne stillinger.
12. job_title
Type: Char. Fritekst jobtitel. Kan bruges, når job_id ikke er angivet, eller til brugerdefinerede titler.
13. parent_id
Type: Many2one (hr.employee). Lederen. Muliggør hierarkiet af medarbejdere. Bruges til godkendelseskæder og organisationsstruktur.
14. coach_id
Type: Many2one (hr.employee). Coach for denne medarbejder. Bruges til præstation og udvikling. Coach'en har som standard ingen specifikke rettigheder.
15. resource_id
Type: Many2one (resource.resource). Linker til ressource-modellen. Bruges til planlægning, kapacitetsplanlægning og kalenderintegration.
16. work_contact_id
Type: Many2one (res.partner). Arbejdskontakt. Linker til partnerposten, der bruges til arbejdsrelateret kommunikation og dokumenter.
17. address_id
Type: Many2one (res.partner). Arbejdsadresse. Linker til en res.partner-post for kontoret eller arbejdsstedet.
18. address_home_id
Type: Many2one (res.partner). Privat adresse. Medarbejderens hjemmeadresse, ikke kontoret. Bruges til løn og nødoplysninger.
19. resource_calendar_id
Type: Many2one (resource.calendar). Arbejdsschema. Definerer arbejdstimer og dage. Bruges til tilstedeværelse, ferie og planlægning.
20. employee_type
Type: Selection. Medarbejdertype: Medarbejder, Freelancer eller Praktikant. Påkrævet. Påvirker kontrakthistorik: kun medarbejdertype forventes at være under kontrakt.
21. barcode
Type: Char. Badge ID. Bruges til medarbejderidentifikation i tilstedeværelseskiosk og andre stregkodescanninger.
22. pin
Type: Char. PIN brugt til at tjekke ind og ud i Kiosk-tilstand i Attendance-appen. Også brugt til at skifte kasserer i Point of Sale.
23. fødselsdag
Type: Dato. Fødselsdato. Bruges til HR-optegnelser og valgfrie fødselsdagspåmindelser.
24. identifikations_id
Type: Char. Nationalt identifikationsnummer. Bruges til HR- og lønkompliance.
25. pas_id
Type: Char. Pasnummer. Bruges til rejse- og arbejdstilladelsessporing.
26. bank_konto_id
Type: Many2one (res.partner.bank). Medarbejderens bankkonto til lønudbetalinger.
27. privat_email
Type: Char. Medarbejderens personlige email. Bruges når arbejds-email ikke er tilgængelig.
28. telefon
Type: Char. Privat telefonnummer. Forskellig fra arbejds kontaktoplysninger.
29. contract_id
Type: Many2one (hr.contract). Nuværende kontrakt. Reference til den aktive kontrakt.
30. contract_ids
Type: One2many (hr.contract). Alle kontrakter knyttet til denne medarbejder. Kontrakt historie.
31. image_1920
Type: Binary. Medarbejderfoto eller avatar. Odoo gemmer flere størrelser. Bruges i formularer, rapporter og kataloget.
32. related_partner_id
Type: Many2one (res.partner). Kontakten knyttet til denne medarbejder. Forbinder medarbejderdata til partner modellen for CRM og andre moduler.
33. leave_manager_id
Type: Many2one (res.users). Bruger ansvarlig for godkendelse af fravær. Hvis tom, går godkendelsen til en administrator eller godkender.
34. expense_manager_id
Type: Many2one (res.users). Bruger ansvarlig for godkendelse af udgifter. Hvis tom, går godkendelsen til en administrator eller godkender.
35. timesheet_manager_id
Type: Many2one (res.users). Bruger ansvarlig for godkendelse af timesedler. Hvis tom, går godkendelsen til en timesedelsadministrator eller bruger.
Hvordan denne model bruges i forretningsarbejdsgange
1. Medarbejderdirectory og onboarding
Når HR opretter en ny medarbejder, udfylder de hr.employee-posten. Navn, afdeling, job, leder og kontaktoplysninger. user_id-linket sættes, når medarbejderen får Odoo-adgang.
2. Tilstedeværelse og tidsregistrering
Medarbejdere tjekker ind og ud via Tilstedeværelse-appen. Ind- og udtjekningstiderne gemmes i hr.attendance, som er knyttet til hr.employee. Stregkode- og pin-felterne muliggør kiosktilstand.
3. Fravær og orlov
Orlovsanmodninger refererer til medarbejderen. leave_manager_id og resource_calendar_id bestemmer, hvem der godkender, og hvor mange dage der tildeles.
4. Løn og kontrakter
Løn bruger hr.employee til lønstruktur, bankkonto og kontraktdata. contract_id linker til den aktuelle kontrakt. contract_ids indeholder den fulde historie.
5. Timesedler og projektallokering
Når medarbejdere logger tid på projekter, linker timesedlen til hr.employee. timesheet_manager_id kontrollerer godkendelse. resource_id linker til planlægnings- og tidsplanlægningsværktøjerne.
Hvordan udviklere udvider denne model
Udviklere udvider hr.employee ved hjælp af flere mønstre. Odoo modelarv er den primære mekanisme.
Modelarv
Brug _inherit = 'hr.employee' til at udvide modellen. Tilføj nye felter, overskriv metoder eller tilføj begrænsninger. Den arvede model i Odoo holder dine ændringer i et separat modul for nem opgradering.
Tilføjelse af felter
Definer nye Odoo-felter i din arvede model. Brug den rigtige felttype: Char, Many2one, Boolean, Integer, Text, Selection. Overvej virksomhedafhængige felter til multivirksomhed.
Python-udvidelser
Overskriv create, write eller unlink for at tilføje logik. Brug super() til at kalde den oprindelige. Vær forsigtig med beregnede felter og deres afhængigheder.
Odoo Studio
Odoo Studio lader dig tilføje felter uden kode. Godt til hurtige tilpasninger. For kompleks logik eller opgraderinger er brugerdefinerede moduler mere vedligeholdelige.
Bedste praksis
- Sæt user_id kun, når medarbejderen har brug for Odoo-adgang. Ikke alle medarbejdere har brug for en brugerkonto.
- Brug parent_id-hierarkiet korrekt. Byg organisationsstrukturen fra toppen og ned.
- Indstil resource_calendar_id for konsistente arbejdstimer og fraværsberegninger.
- Når du bygger API-integrationer, skal du bruge XML-RPC eller JSON-RPC API. hr.employee-modellen i Odoo er fuldt eksponeret som en API-model. Kortlæg eksterne ID'er omhyggeligt.
- For brugerdefinerede felter, brug
x_præfikset eller et modulpræfiks for at undgå konflikter med fremtidige Odoo-versioner. - Felter, der er begrænset til hr.group_hr_user, bør ikke forudindlæses for brugere uden HR-adgang. Brug grupper på feltd definitioner.
Almindelige fejl
- Opretter duplikerede medarbejderposter i stedet for at søge efter eksisterende. Brug work_email eller identification_id til deduplisering.
- Forveksler user_id og related_partner_id. user_id er til Odoo-login. related_partner_id er kontaktoptegnelsen.
- Glemmer at indstille employee_type. Det er påkrævet og påvirker kontraktadfærden.
- Overskriver kerne metoder uden at kalde super(). Dette kan bryde andre moduler eller fremtidige opgraderinger.
- Tilføjer påkrævede brugerdefinerede felter uden standardværdier. Eksisterende poster vil fejle validering ved opgradering.
- Udsætter følsomme HR-felter for brugere uden hr.group_hr_user. Brug grupper på felter, der indeholder private data.
Konklusion
hr.employee-modellen er central for Odoo HR. Den gemmer medarbejderdata, linker til kontrakter, tilstedeværelse og fravær. At forstå dens felter og hvordan moduler udvider den vil hjælpe dig med at konfigurere, tilpasse og integrere Odoo effektivt.
Uanset om du er en funktionel konsulent, der kortlægger HR-processer, eller en udvikler, der bygger brugerdefinerede moduler, vil en solid forståelse af hr.employee spare tid og forhindre fejl.
Har du brug for hjælp til din Odoo-implementering?
Dasolo hjælper virksomheder med at implementere, tilpasse og optimere Odoo. Vi specialiserer os i API-integrationer og Odoo-udvikling. Vores team har dyb erfaring med Odoo's dataarkitektur og modeller som hr.employee.
Hvis du har brug for hjælp til din Odoo-implementering, tilpassede HR-moduler eller integrationer, er vi her for at hjælpe. Book en demo for at diskutere dit projekt.