Timebank — saldo, uttak og godkjenning¶
Timebank viser beregnet saldo og lar brukeren opprette et uttak. Uttaket blir en ny time-rad og må gjennom samme kontroll og godkjenning som andre timer.
Prosess¶
sequenceDiagram
autonumber
actor Employee as Ansatt
participant UI as Timebank
participant API as TimeBankController
participant Limit as wv_Time_Bank_LimitCheck
participant Save as wv_Time_Bank_ins
participant DB as Klientdatabase
Employee->>UI: Åpne timebank
UI->>API: Hent saldo
API->>Limit: Beregn saldo og grense
Limit->>DB: Les bevegelser og regler
DB-->>UI: Tilgjengelig saldo
Employee->>UI: Velg dato, lønnsart og antall
alt Innenfor saldo
UI->>API: Opprett uttak
API->>Save: Lagre bevegelse
Save->>DB: Opprett time-rad og timebankrad
DB-->>UI: Timer overført
else Over saldo
UI-->>Employee: Reduser antallet
end
Systemeffekter¶
| Steg | Effekt |
|---|---|
| Hent saldo | wv_Time_Bank_LimitCheck summerer timebankbevegelser og leser btMaxSum |
| Opprett uttak | Det opprettes en rad i wv_Time_WageReg med ukontrollert/ugodkjent status |
| Knytt bevegelse | wv_Time_Bank kobles til time-raden med wrID |
| Kontroller og godkjenn | Uttaket følger den ordinære godkjenningsflyten |
| Angre godkjenning | Approval rollback kan fjerne den tilknyttede timebankraden |
Saldoen beregnes ved oppslag. Det finnes ikke en egen materialisert kolonne for «nåværende saldo».
Avvik¶
| Situasjon | Videre handling | Kontroller |
|---|---|---|
| Uttaket overstiger saldo | Reduser antallet | wv_Time_Bank_LimitCheck, btMaxSum og lønnsart |
| Uttaket vises ikke i saldoen | Kontroller godkjenningsstatus | Time-rad, timebankrad og koblet wrID |
| Godkjenning er reversert | Last saldo på nytt | At rollback fjernet riktig bankbevegelse |