Introduksjon
I Odoo definerer modeller hvordan data er strukturert og lagret i databasen. Hver bit av forretningsdata du jobber med, fra salgsordrer til fakturaer til ansatte, lever i en modell.
Å forstå Odoo-modeller er essensielt for både utviklere og funksjonelle konsulenter. Modeller er grunnlaget for Odoo-databasearkitekturen. De definerer felt, relasjoner og forretningslogikk.
Denne artikkelen fokuserer på en av kjerne modellene i HR-modulen: hr.employee. Enten du bygger tilpassede HR-arbeidsflyter, integrerer lønnssystemer, eller konfigurerer oppmøte og permisjon, vil du jobbe med denne modellen.
Hva er hr.employee-modellen
Modellen hr.employee representerer ansatte i Odoo. Det er det sentrale stedet hvor all personalinformasjon lagres.
Denne Odoo-modellen er en del av HR (Human Resources) appen. Den brukes på tvers av oppmøte, permisjoner, kontrakter, lønn og timelister.
Den installeres når du aktiverer Ansatte-appen. Andre moduler utvider den gjennom Odoo-modellarv. hr_contract legger til kontraktsfelt. hr_attendance legger til inn- og utstempling. hr_leave legger til fri. Hver modul legger til det den trenger uten å duplisere kjerne-strukturen.
Odoo tilbyr også hr.employee.public, en begrenset visning av de samme dataene for brukere som trenger begrenset synlighet på ansatte. Dette er et eksempel på hvordan Odoo bruker abstrakte modellmønstre og modellarv for å kontrollere tilgang.
Nøkkelfelt i modellen
Her er de viktigste Odoo-feltene i hr.employee-modellen. Å forstå disse vil hjelpe deg å jobbe effektivt med ansattregistre.
1. navn
Type: Char. Dette feltet lagrer ansattens navn. Det vises vanligvis i mange Odoo-visninger og er den primære identifikatoren for ansattregisteret.
2. create_date
Type: Datetime. Lagrer dato og tid når posten ble opprettet. Administreres automatisk av Odoo. Nyttig for rapportering og revisjon.
3. write_date
Type: Datetime. Lagrer dato og tid for den siste modifikasjonen. Også administrert automatisk. Hjelper med å spore når data sist ble oppdatert.
4. aktiv
Type: Boolean. Myk slettingsflagg. Når False, blir posten arkivert og skjult fra standardvisninger. Bruk dette når en ansatt slutter. Poster blir ikke fysisk slettet.
5. company_id
Type: Many2one (res.company). I flerbedriftsoppsett indikerer dette hvilken Odoo-bedrift den ansatte tilhører. Påkrevd for de fleste ansattposter.
6. user_id
Type: Many2one (res.users). Knytter den ansatte til en Odoo-bruker. Når den er satt, kan den ansatte logge inn og bruke Odoo. Brukes for portaltilgang, timelister og godkjenninger.
7. work_email
Type: Char. Arbeidsepostadressen. Brukes for intern kommunikasjon og varsler.
8. work_phone
Type: Char. Arbeidstelefonnummeret. Vist i ansattskjemaer og brukt for kontaktarbeidsflyter.
9. mobile_phone
Type: Char. Arbeidsmobilnummer. Brukes ofte for SMS eller presserende varsler.
10. department_id
Type: Many2one (hr.department). Avdelingen som ansatte tilhører. Brukes for organisasjonskart, rapportering og godkjenningsarbeidsflyter.
11. job_id
Type: Many2one (hr.job). Stillingen. Knytter seg til hr.job-modellen som definerer stillingstitler og åpne stillinger.
12. job_title
Type: Char. Fritekst stillingstittel. Kan brukes når job_id ikke er satt eller for tilpassede titler.
13. parent_id
Type: Many2one (hr.employee). Lederen. Muliggjør hierarkiet av ansatte. Brukes for godkjenningskjeder og organisasjonsstruktur.
14. coach_id
Type: Many2one (hr.employee). Coach for denne ansatte. Brukes for ytelse og utvikling. Coachen har ingen spesifikke rettigheter som standard.
15. resource_id
Type: Many2one (resource.resource). Knytter seg til ressursmodellen. Brukes for planlegging, kapasitetsplanlegging og kalenderintegrasjon.
16. work_contact_id
Type: Many2one (res.partner). Arbeidskontakt. Knytter seg til partnerposten som brukes for arbeidsrelaterte kommunikasjoner og dokumenter.
17. address_id
Type: Many2one (res.partner). Arbeidsadresse. Knytter seg til en res.partner-post for kontoret eller arbeidsstedet.
18. address_home_id
Type: Many2one (res.partner). Privat adresse. Ansattes hjemmeadresse, ikke kontoret. Brukes for lønn og nødnumre.
19. resource_calendar_id
Type: Many2one (resource.calendar). Arbeidsskjema. Definerer arbeidstimer og dager. Brukes for tilstedeværelse, permisjon og planlegging.
20. employee_type
Type: Selection. Ansattype: Ansatt, Frilanser eller Praktikant. Obligatorisk. Påvirker kontrakthistorikk: kun Ansatt-type skal være under kontrakt.
21. barcode
Type: Char. ID-kort. Brukes for ansattidentifikasjon i tilstedeværelseskiosk og annen strekkodeskanning.
22. pin
Type: Char. PIN brukt for innsjekking og utsjekking i Kiosk-modus i Attendance-appen. Også brukt for å endre kasserer i Point of Sale.
23. bursdag
Type: Date. Fødselsdato. Brukt for HR-poster og valgfrie bursdagspåminnelser.
24. identifikasjonsnummer
Type: Char. Nasjonalt identifikasjonsnummer. Brukt for HR- og lønnsoverholdelse.
25. passnummer
Type: Char. Passnummer. Brukt for reise- og arbeidstillatelsessporing.
26. bankkontonummer
Type: Many2one (res.partner.bank). Ansattes bankkonto for lønnsutbetalinger.
27. privat e-post
Type: Char. Ansattes personlige e-post. Brukt når arbeids-e-post ikke er tilgjengelig.
28. telefon
Type: Char. Privat telefonnummer. Ulike fra arbeidskontaktopplysninger.
29. contract_id
Type: Many2one (hr.contract). Nåværende kontrakt. Referanse til den aktive kontrakten.
30. contract_ids
Type: One2many (hr.contract). Alle kontrakter knyttet til denne ansatte. Kontrakthistorikk.
31. image_1920
Type: Binary. Ansattbilde eller avatar. Odoo lagrer flere størrelser. Brukes i skjemaer, rapporter og katalogen.
32. related_partner_id
Type: Many2one (res.partner). Kontakten knyttet til denne ansatte. Knytter ansattdata til partnermodellen for CRM og andre moduler.
33. leave_manager_id
Type: Many2one (res.users). Bruker ansvarlig for å godkjenne fri. Hvis tom, går godkjenningen til en administrator eller godkjenner.
34. expense_manager_id
Type: Many2one (res.users). Bruker ansvarlig for å godkjenne utgifter. Hvis tom, går godkjenningen til en Administrator eller Godkjenner.
35. timesheet_manager_id
Type: Many2one (res.users). Bruker ansvarlig for å godkjenne timelister. Hvis tom, går godkjenningen til en Timeliste Administrator eller Bruker.
Hvordan denne modellen brukes i forretningsarbeidsflyter
1. Ansattkatalog og Onboarding
Når HR oppretter en ny ansatt, fyller de ut hr.employee-posten. Navn, avdeling, jobb, leder og kontaktinformasjon. user_id-lenken settes når den ansatte får Odoo-tilgang.
2. Tilstedeværelse og Tidsregistrering
Ansatte sjekker inn og ut via Tilstedeværelse-appen. Inn- og ut-tidene lagres i hr.attendance, knyttet til hr.employee. Strekode- og pin-feltene muliggjør kioskmodus.
3. Permisjon og Fravær
Permisjonsforespørselene refererer til den ansatte. leave_manager_id og resource_calendar_id bestemmer hvem som godkjenner og hvor mange dager som tildeles.
4. Lønn og Kontrakter
Lønn bruker hr.employee for lønnsstruktur, bankkonto og kontraktsdata. contract_id lenker til den nåværende kontrakten. contract_ids holder full historikk.
5. Timelister og Prosjektallokering
Når ansatte logger tid på prosjekter, lenker timeseddelen til hr.employee. timesheet_manager_id kontrollerer godkjenning. resource_id lenker til planleggings- og tidsplanleggingsverktøyene.
Hvordan utviklere utvider denne modellen
Utviklere utvider hr.employee ved å bruke flere mønstre. Odoo-modellarv er hovedmekanismen.
Modellarv
Bruk _inherit = 'hr.employee' for å utvide modellen. Legg til nye felt, overskriv metoder, eller legg til begrensninger. Den arvede modellen i Odoo holder endringene dine i en egen modul for enkle oppgraderinger.
Legge til felt
Definer nye Odoo-felt i den arvede modellen. Bruk riktig felttype: Char, Many2one, Boolean, Integer, Text, Selection. Vurder selskapsavhengige felt for flere selskaper.
Python-utvidelser
Overskriv create, write, eller unlink for å legge til logikk. Bruk super() for å kalle den originale. Vær forsiktig med beregnede felt og deres avhengigheter.
Odoo Studio
Odoo Studio lar deg legge til felt uten kode. Bra for raske tilpasninger. For kompleks logikk eller oppgraderinger er tilpassede moduler mer vedlikeholdbare.
Beste praksis
- Sett user_id kun når den ansatte trenger Odoo-tilgang. Ikke alle ansatte trenger en brukerkonto.
- Bruk parent_id-hierarkiet riktig. Bygg organisasjonsstrukturen fra toppen og ned.
- Sett resource_calendar_id for konsistente arbeidstimer og beregning av fravær.
- Når du bygger API-integrasjoner, bruk XML-RPC eller JSON-RPC API. hr.employee-modellen i Odoo er fullt eksponert som en API-modell. Kartlegg eksterne ID-er nøye.
- For tilpassede felt, bruk
x_-prefikset eller et modulprefiks for å unngå konflikter med fremtidige Odoo-versjoner. - Felter begrenset til hr.group_hr_user bør ikke forhentes for brukere uten HR-tilgang. Bruk grupper på feltdokumentasjon.
Vanlige feil
- Opprette dupliserte ansattregistre i stedet for å søke etter eksisterende. Bruk work_email eller identification_id for deduplisering.
- Blande sammen user_id og related_partner_id. user_id er for Odoo-pålogging. related_partner_id er kontaktoppføringen.
- Glemme å sette employee_type. Det er påkrevd og påvirker kontraktsatferd.
- Overstyre kjernefunksjoner uten å kalle super(). Dette kan bryte andre moduler eller fremtidige oppgraderinger.
- Legge til nødvendige tilpassede felt uten standardverdier. Eksisterende poster vil mislykkes i validering ved oppgradering.
- Eksponere sensitive HR-felt for brukere uten hr.group_hr_user. Bruk grupper på felt som inneholder private data.
Konklusjon
hr.employee-modellen er sentral for Odoo HR. Den lagrer ansattdata, lenker til kontrakter, oppmøte og fravær. Å forstå feltene dens og hvordan moduler utvider den vil hjelpe deg med å konfigurere, tilpasse og integrere Odoo effektivt.
Enten du er en funksjonell konsulent som kartlegger HR-prosesser eller en utvikler som bygger tilpassede moduler, vil en solid forståelse av hr.employee spare tid og forhindre feil.
Trenger du hjelp med din Odoo-implementering?
Dasolo hjelper selskaper med å implementere, tilpasse og optimalisere Odoo. Vi spesialiserer oss på API-integrasjoner og Odoo-utvikling. Vårt team har dyp erfaring med Odoo-databasearkitekturen og modeller som hr.employee.
Hvis du trenger hjelp med din Odoo-implementering, tilpassede HR-moduler eller integrasjoner, er vi her for å hjelpe. Bestill en demo for å diskutere prosjektet ditt.