Flyt: Plukk → utfør → faktura (arbeidsordre)¶
Arbeidsordrens livsløp. Den følger samme statusmekanikk som
bulkordre-flyten (Ord.Gr12), men
med to forskjeller: timeprodukter føres til lønnsgrunnlaget, og det skrives
ikke beholdningstransaksjon for rene timelinjer.
Hovedflyt¶
flowchart TD
A[Tekniker: PLUKK] --> B[ÅPNE work-order-details]
B --> C[Registrer produkter,<br/>timer og materiell]
C --> D{FERDIGMELD}
D --> E[Connect API:<br/>SetOrderAsCompleted]
E --> F[SetOrderStatus → Gr12]
E --> G[HandleWorkOrderTimesheet<br/>timelinjer → lønnsgrunnlag]
E --> H[vbs.SetWorkOrderAsCompleted<br/>Ord/OrdLn oppdateres]
F --> I{Godkjenning?}
I -- ja --> J[Leder godkjenner]
I -- nei --> K[Klar for fakturering]
J --> K
classDef tek fill:#cfe2ff,stroke:#3b6db5
classDef sys fill:#f8d7da,stroke:#b53b46
class A,B,C,D tek
class E,F,G,H,K sys
Ingen beholdningstransaksjon for timer
I OrderController.SetOrderAsCompleted kjøres AddOrderDeliveredTransaction
bare når ordretypen ikke er Workorder. For arbeidsordrer kalles i stedet
HandleWorkOrderTimesheet + vbs.SetWorkOrderAsCompleted. Materiell med
fysisk uttak føres som vanlig; rene timelinjer påvirker ikke FreeInf2.
Tilstander¶
Som bulk — statusen ligger i Ord.Gr12:
Gr12 |
Tilstand | Settes når |
|---|---|---|
0 |
Åpen | Arbeidsordren ikke ferdigmeldt |
2 |
Levert i bil | Ferdigmeldt uten merknader/godkjenningsflyt |
3 |
Til godkjenning | Ferdigmeldt med kommentar/tilleggsprodukter |
4 |
Connect-godkjenning | Selskapet har godkjenningsflyt for arbeidsordre |
1 |
Klar for fakturering | Godkjent |
Overgangstabell¶
| Fra | Handling | Til | Utføres av | Teknisk effekt |
|---|---|---|---|---|
| Åpen | PLUKK | Åpen (tildelt) | Tekniker | AssignOrderToDriver |
| Åpen (tildelt) | LAGRE | Åpen | Tekniker | DoNotConfirmOrder = true — kun feltoppdatering |
| Åpen (tildelt) | UTSETT | Åpen, neste dag | Tekniker | Leveringsdato +1 |
| Åpen (tildelt) | FERDIGMELD | Gr12 2/3/4 | Tekniker → system | SetOrderStatus + timeføring + OrdLn.NoFin |
| Gr12 2/3/4 | Godkjenning | Gr12 = 1 | Godkjenner (nivå ≤ 1) | OrderApproval |
Samspill bruker ↔ system¶
sequenceDiagram
autonumber
actor T as Tekniker
participant App as Connect-app
participant API as Connect API
participant V as jhlVismaAPI
participant DB as Visma
T->>App: FERDIGMELD + bekreft
App->>API: POST /User/SetOrderAsCompleted
API->>V: Order.SetOrderAsCompleted (Workorder)
V->>V: SetOrderStatus → Gr12
V->>V: HandleWorkOrderTimesheet (timelinjer)
V->>DB: UPDATE Ord (Gr12, bekreftet dato)
V->>DB: UPDATE OrdLn (NoFin = utført antall, pris)
DB-->>V: OK
API-->>App: 200 OK
Datalag¶
| Tabell.felt | Innhold |
|---|---|
Ord.Gr12 |
Status (se tilstandstabellen) |
OrdLn.NoFin (FinishNow) |
Utført antall per linje |
| Timeprodukter | Føres til lønnsgrunnlaget via HandleWorkOrderTimesheet (lønnsart fra TimesheetCode) |
Actor |
GPS-posisjon ved ferdigmelding (gyldige koordinater) |
Godkjenningskøen bruker samme StrFVar-styring som bulk
(GodkjenningOrdre/GodkjenningOrdreBulk).
Avvik og reversering¶
| Situasjon | Håndtering |
|---|---|
| Feil utført antall | Leder avviser/korrigerer i godkjenningskøen før fakturering |
| Timene kom ikke på lønn | Linjen var ikke et timeprodukt (mangler TimesheetCode) |
| Ordre «forsvant» etter ferdigmelding | Ligger i godkjenningskøen (/workorder-approval) |
(Verifisert i jhlVismaAPI OrderController.SetOrderAsCompleted (Workorder-grenen),
work-order-details.ts.)
Relaterte sider¶
- Arbeidsordre · Prosessflyter
- Bulk-ordreflyt (samme statusløp)
- Aktivitetsregistrering