Dato og klokke¶
Kortet Dato / klokke på fanen Generelt i Portalinnstillinger samler valideringsregler og standardverdier som styrer hvordan klokkeslett og overtidsvinduer brukes i timeregistrering. Innstillingene gjelder hele tenanten og påvirker både timeskjema (fra/til-klokkeslett, matpausetrekk) og overtidshåndtering (forhåndsvalgte lønnsarter).
Tidligere versjoner av denne siden beskrev datoformat, tidsformat, tidssone, ukestart, månedstart og regionalt format som tenant-innstillinger. Disse finnes ikke i koden — datoformat hentes fra i18n (General.datePickerFormat), tidssone håndteres applikasjonsglobalt og uker følger norsk konvensjon (mandag) hardkodet. Siden er rewritten til å beskrive feltene som faktisk finnes på dette kortet.
Tilgang¶
| Hvem | Hva trengs |
|---|---|
| Rolle | Administrator (admin-tilgang verifiseres mot moduleID 99) |
| Modul | Portalinnstillinger — moduleId: 99 på ruten |
Tilgangen sjekkes både i ruteguard (ModuleGuard) og i komponenten via checkAdminAccess() mot lagret bruker i localStorage. Se portal-setting.component.ts:197-208.
Innstillinger på kortet¶
Feltrekkefølgen nedenfor følger malen i HTML-templaten portal-setting.component.html:215-446.
| Felt | Type | FormControl | Funksjon |
|---|---|---|---|
| Benytt dato kontroll | Bryter | opt1 |
Aktiverer en alternativ datokontroll i timeregistreringen |
| Lønnsarter for overtidsvindu | Flervalg (ng-select) | wagetypesForOvertimePopup |
Hvilke lønnsarter som vises i overtidsvinduet |
| Forhåndsvalgt lønnsart for overtidsvindu | Enkeltvalg (ng-select) | defaultWagetypeOvertime |
Lønnsarten som er forvalgt når overtidsvinduet åpnes |
| Validering av antall arbeidstimer | Bryter | validateSumHours |
Validerer at sumtimer per registrering ligger innenfor regelen |
| Validering 24 timer/døgn | Bryter | validate24HoursDaily |
Validerer at en bruker ikke registrerer mer enn 24 t per dag |
| Deaktiver validering klokkeslett | Bryter + tt:mm-felt | disableValidationTime + disableValidationTimeValue |
Slår av klokkeslett-validering fra et gitt tidspunkt |
| Antall timer før aktivering av matpause | Bryter + tall (timer) | enableLunchTimeAfterXHours + enableLunchTimeAfterXHoursValue |
Antall timer som må være jobbet før matpausen automatisk regnes inn |
| Benytt fra/til tt:mm | Bryter | showStartEnd |
Vis fra/til-klokkeslettkolonne i timeregistrering |
| Vis fra/til tt:mm ved overtid | Bryter | clockOT |
Krev/aktiver fra/til-felter ved overtid |
| Påkrev fra/til tt:mm ved overtid | Bryter | clockOTReq |
Gjør fra/til-felter obligatoriske ved overtid (aktiveres når clockOT er på) |
| OpenNIS startdato | Dato (ngb-datepicker) | startDate |
Startdato for OpenNIS-integrasjonen |
| Arbeidstid fra kl. | tt:mm | startTime |
Normal arbeidstid start (brukes i utregning) |
| Arbeidstid til kl. | tt:mm | endTime |
Normal arbeidstid slutt (brukes i utregning) |
| Trekk fra matpause (0.5t) | Bryter | opt3 |
Trekker automatisk 30 min matpause fra utregnet arbeidstid mellom start og slutt |
Form-skjema og bygging: portal-setting.component.ts:250-298.
Bunnen av kortet viser en forklarende kursiv-tekst som beskriver effekten av "Trekk fra matpause" — se i18n-nøklene PortalSetting.isActive og PortalSetting.example (portal-setting.component.html:434-444).
Validering¶
Sjekkene under kjøres når brukeren trykker Lagre på fanen Generelt. Implementasjon: validateHoursGeneralSettings() i portal-setting.component.ts:542-678.
| Sjekk | Feilmelding (i18n) | Når den fyrer |
|---|---|---|
startTime har gyldig tt:mm-format |
PortalSetting.startTimeFormatIncorrect |
Maske ikke fylt ut komplett |
startTime innenfor 00:00–23:59 |
PortalSetting.startTimeNotExceed |
Timer > 23 eller minutter > 59 |
endTime har gyldig tt:mm-format |
PortalSetting.endTimeFormatIncorrect |
Maske ikke fylt ut komplett |
endTime innenfor 00:00–23:59 |
PortalSetting.endTimeNotExceed |
Timer > 23 eller minutter > 59 |
Hvis endTime er satt må startTime også være satt |
PortalSetting.startTimeRequired |
Bare slutt utfylt |
Hvis startTime er satt må endTime også være satt |
PortalSetting.endTimeRequired |
Bare start utfylt |
startTime < endTime |
PortalSetting.startTimenNotExceedEndTime |
Start senere enn slutt |
Når disableValidationTime er på må disableValidationTimeValue ha gyldig tt:mm |
PortalSetting.deactivationIncorrect / PortalSetting.deactivationExceed / PortalSetting.timeMandatory |
Bryteren er på men feltet er tomt/ugyldig |
Når enableLunchTimeAfterXHours er på må verdien være > 0 |
PortalSetting.lunchMandatory / PortalSetting.valueAboveZero |
Bryteren er på men feltet er tomt eller ≤ 0 |
Ved feil vises en samlet toast via ToastService.show (type error) med alle feilene som linjeobjekter.
Lagring og effekt¶
- Lagre sender hele formet til
SettingService.saveGeneralSetting(...)(portal-setting.component.ts:438-515). - På suksess oppdateres
localStorage(StorageKeys.TimeConfig) og enStorageEventdispatches manuelt for at andre faner i samme nettleser skal plukke opp endringen. - Toast
PortalSetting.savedOKvises ved suksess;PortalSetting.dataMisMatchedvises hvis backend rapporterervalidate == false.
clockOTReq og disableValidationTimeValue og enableLunchTimeAfterXHoursValue styres dynamisk — de er deaktivert (disabled) inntil sin tilhørende bryter slås på (se checkedClockOT, checkedDisableValidationTime, checkedLunchTimeAfterXHours).
Slik endrer du innstillingene¶
- Åpne Innstillinger → Portalinnstillinger.
- Velg fanen Generelt.
- Bla til kortet Dato / klokke i venstre kolonne.
- Endre ønskede brytere/felter.
- Klikk Lagre nederst på fanen.
- Hvis valideringen feiler, vises en toast med konkrete feilmeldinger — rett opp og lagre på nytt.
Vanlige problemer¶
"Validering" trigges når brukere registrerer over 24 timer¶
Bryteren Validering 24 timer/døgn (validate24HoursDaily) er på. Slå den av hvis tenanten har skiftbaserte registreringer hvor det er legitimt å overskride 24 t per registrering (sjelden, men forekommer).
Fra/til-klokkeslett er obligatoriske selv ved vanlige registreringer¶
Sjekk at Påkrev fra/til tt:mm ved overtid (clockOTReq) ikke står på når tenanten ikke ønsker det. Bryteren aktiveres bare når Vis fra/til tt:mm ved overtid (clockOT) først er slått på.
Lagre svarer med "Antall arbeidstimer per uke er obligatorisk"¶
Feltet weekDays (på et annet kort i samme fane) er tomt. Valideringen kjøres for hele Generelt-fanen samtidig, så feilen kan stamme fra et felt utenfor Dato / klokke. Se Arbeidstider for weekDays-feltet.
Matpausefeltet aksepteres ikke¶
Verdien må være > 0. Negative tall og null gir feilen PortalSetting.valueAboveZero. Feltet bruker <input type="number"> med min="0" og step="0.5".
Relaterte sider¶
- Arbeidstider — normaltidsfelt (
weekDays,dutyDays, m.fl.) på samme fane - Låsing av perioder — dato-basert låsing finnes på fanen Periode i samme komponent
- Innstillinger — oversikt


