Arbeidstider¶
Arbeidstider definerer normal arbeidsdag for tenanten — antall timer per dag, antall arbeidsdager i uka, samt typisk dagstart og dagslutt. Verdiene lagres i wv_Time_Config og brukes som referanse for timeregistrering og avviksberegninger.
Innstillingene finnes på Innstillinger → Portalinnstillinger → Generelt (fanen generally). Klokkeslett for dagstart/dagslutt ligger i kortet Dato / klokke på samme side.
Merk om uke- og månedsnormer: Det finnes ingen egen innstilling for "Timer per uke" eller "Timer per måned" i denne versjonen av portalen. Ukentlig normaltid kan utledes av
Timer per dag × Arbeidsuke (dager), men denne utregningen lagres ikke som en egen verdi.
Tilgang¶
| Hvem | Hva trengs |
|---|---|
| Rolle | Bruker med tilgang til /settings/portal-setting (administrator) |
| Modul | Portalinnstillinger — moduleId: 99 (setting-routing.module.ts:30) |
| Effekt på hvem | Alle ansatte i tenanten som registrerer timer (med mindre overstyrt på ansattnivå) |
Ruten er beskyttet av ActivateService og ModuleGuard (setting-routing.module.ts:30).
Innstillinger¶
Disse feltene finnes faktisk i UI-et i dag:
| Innstilling | Felt (TS) | Type / mask | Lagres i kolonne | Plassering på siden |
|---|---|---|---|---|
| Arbeidstimer per dag | hourDay |
Tekst, mask 9,9 (portal-setting.component.ts:235) |
wv_Time_Config.tcHourDay (char(4)) |
Kort «Generelt» |
| Arbeidsuke (dager) | weekDays |
Tall, min=0, max=7 (portal-setting.component.html:164) |
wv_Time_Config.tcWeekDays (char(4)) |
Kort «Generelt» |
| Arbeidstid fra kl. (dagstart) | startTime |
Klokkeslett, mask 99:99 (portal-setting.component.ts:237) |
wv_Time_Config.tcStartTime (char(4)) |
Kort «Dato / klokke» |
| Arbeidstid til kl. (dagslutt) | endTime |
Klokkeslett, mask 99:99 (portal-setting.component.ts:238) |
wv_Time_Config.tcEndTime (char(4)) |
Kort «Dato / klokke» |
Tabellen wv_Time_Config er definert i dbscript.sql:1842. Det finnes ingen kolonner tcHourWeek eller tcHourMonth.
Detaljert beskrivelse per innstilling¶
Arbeidstimer per dag (hourDay)¶
Betydning. Antall timer som regnes som normal arbeidsdag for en heltidsansatt.
Inntastingsformat. Maskert som 9,9 — én siffer for timer, komma, én desimal (f.eks. 7,5). Sett av createMask('9,9') i portal-setting.component.ts:235.
Automatisk korrigering ved lagring. I portal-setting.component.ts:430 konverteres verdien slik før den sendes til backend:
- Tom verdi eller verdi ≤ 1 → settes til
"1.0". - Komma erstattes med punktum.
- Understreker (placeholdere fra masken) erstattes med
0.
Lagring. wv_Time_Config.tcHourDay.
Hvem kan endre. Administrator med tilgang til Portalinnstillinger.
Arbeidsuke (dager) (weekDays)¶
Betydning. Antall dager per uke som anses som ordinære arbeidsdager.
Inntastingsformat. Tallfelt med min="0" og max="7" (portal-setting.component.html:164). keyUpEvent klamper verdier over max og setter verdier under min til null (portal-setting.component.ts:517-523).
Obligatorisk. Lagring feiler med feilmeldingen PortalSetting.weekDaysMandatory ("Arbeidsuke (dager) er obligatorisk") dersom feltet er tomt (portal-setting.component.ts:635-638).
Lagring. wv_Time_Config.tcWeekDays.
Hvem kan endre. Administrator.
Arbeidstid fra kl. / Arbeidstid til kl. (startTime / endTime)¶
Betydning. Klokkeslett som markerer typisk start og slutt på normalarbeidsdag.
Inntastingsformat. Maskert som 99:99 (timer:minutter). Sett av createMask({ mask: '99:99', keepStatic: true }) i portal-setting.component.ts:237-238.
Validering ved lagring (portal-setting.component.ts:546-591):
| Regel | Feilmelding (i18n-nøkkel) |
|---|---|
Format må være HH:mm med 4 sifre |
PortalSetting.startTimeFormatIncorrect / PortalSetting.endTimeFormatIncorrect |
| Timer ≤ 23, minutter ≤ 59 | PortalSetting.startTimeNotExceed / PortalSetting.endTimeNotExceed |
| Hvis bare det ene er fylt ut, kreves det andre | PortalSetting.startTimeRequired / PortalSetting.endTimeRequired |
startTime må være ≤ endTime |
PortalSetting.startTimenNotExceedEndTime |
Begge feltene kan stå tomme — da fjernes valideringen (portal-setting.component.ts:593-596).
Lagring. Verdien strippes for kolon og understreker før den sendes til backend (portal-setting.component.ts:483-484), og lagres som 4-tegns streng i wv_Time_Config.tcStartTime og tcEndTime.
Hvem kan endre. Administrator.
Slik endrer du arbeidstider¶
- Åpne Innstillinger → Portalinnstillinger.
- Klikk fanen Generelt. Standardfanen ved åpning er Periode (
currentTab = "period"), så velg Generelt for arbeidstidsfeltene (portal-setting.component.ts:39). - I kortet Generelt: juster Arbeidstimer per dag (f.eks.
7,5) og Arbeidsuke (dager) (f.eks.5). - I kortet Dato / klokke lenger ned: juster Arbeidstid fra kl. og Arbeidstid til kl. hvis ønskelig.
- Klikk Lagre. Ved suksess vises bekreftelsen
PortalSetting.savedOK(portal-setting.component.ts:504). - Ny verdi for
timeConfigskrives også tillocalStorageslik at andre faner ser oppdateringen umiddelbart (portal-setting.component.ts:491-500).
Vanlige problemer¶
«Arbeidsuke (dager) er obligatorisk»¶
Feltet weekDays er tomt. Sett en verdi mellom 0 og 7 og prøv igjen. Meldingen kommer fra PortalSetting.weekDaysMandatory i no.json:956.
Arbeidstimer per dag ble plutselig satt til 1.0 ved lagring¶
Hvis du sender inn tom verdi eller en verdi ≤ 1, normaliserer portalen verdien til "1.0" før den lagres (portal-setting.component.ts:430). Legg inn ønsket verdi (f.eks. 7,5) og lagre på nytt.
«Start tid kan ikke overskride slutt tid» / PortalSetting.startTimenNotExceedEndTime¶
Dagstart må være tidligere enn dagslutt. Sjekk at f.eks. 08:00 → 16:00, ikke omvendt.
Bare ett av dagstart/dagslutt er fylt ut¶
Backenden krever begge eller ingen. Tøm begge feltene hvis du ikke ønsker å bruke dem, ellers fyll begge.
«Timer per uke» / «Timer per måned» finnes ikke i UI-et¶
Det stemmer — disse er ikke egne innstillinger i denne versjonen. Bare Arbeidstimer per dag og Arbeidsuke (dager) finnes som lagrede verdier i wv_Time_Config. Hvis du trenger en ukenorm, beregn den selv: hourDay × weekDays.
Tekniske detaljer¶
- Tabell:
wv_Time_Config(dbscript.sql:1842) - Hovedkolonner:
tcHourDay,tcWeekDays,tcStartTime,tcEndTime(allechar(4)og nullable) - Lastes via:
settingService.loadTimeConfigData()(portal-setting.component.ts:215) - Lagres via:
settingService.saveGeneralSetting(...)(portal-setting.component.ts:488) - Cache-nøkkel:
AppSettings.StorageKeys.TimeConfigilocalStorage - Brukes av SP: bl.a.
wv_Time_Config.tcHourDayleses i lagrede prosedyrer (dbscript.sql:249)
Relaterte sider¶
- Dato og tid — andre felter i kortet «Dato / klokke» på samme side
- Kalender — helligdager og fridager
- Arbeidstidsreguleringer — egen modul for AML-grenser
- Innstillinger — oversikt



