Gå til innhold

Flyt: Plukk → levering → fakturagrunnlag

Denne siden beskriver hele livsløpet til en bulkordre — fra den dukker opp i appen til fakturagrunnlaget står klart i Visma Business — helt ned til hvilke tabeller og felt som skrives.

Hovedflyt

flowchart TD
    K1[Ordre opprettes:<br/>app, Visma, EnergiApp eller AutoOrder] --> A
    A[Ordre synlig i ordrelisten] --> B{Sjåfør trykker PLUKK}
    B --> C[Ordren tildeles sjåføren]
    C --> D[Sjåfør åpner ordren<br/>og registrerer levert antall]
    D --> E{FERDIGMELD}
    E --> F[Volum omregnes til standardliter]
    F --> G[Ordre og linjer oppdateres i Visma]
    F --> H[Beholdningstransaksjon:<br/>− levert mengde fra bilen]
    G --> I{Godkjenningsflyt<br/>aktiv for selskapet?}
    I -- Ja --> J[Leder kontrollerer i godkjenningskø]
    J --> L[Godkjent: status Klar for fakturering]
    I -- Nei --> L
    L --> M[Fakturering i Visma Business]

    classDef sjafor fill:#cfe2ff,stroke:#3b6db5
    classDef leder fill:#fff3cd,stroke:#b59a3b
    classDef system fill:#f8d7da,stroke:#b53b46
    class B,C,D,E sjafor
    class J leder
    class F,G,H,L,M system

Blått = sjåfør, gult = leder/godkjenner, rødt = automatikk i systemet.

Tilstander

Ordrestatusen lagres i feltet Gr12 på ordren i Visma (Ord-tabellen). Hvilken kolonne som brukes er konfigurerbar via VismaOrderStatus i API-ets Web.config — standardoppsettet er Gr12.

stateDiagram-v2
    [*] --> Åpen : Ordre opprettet
    Åpen --> LevertIBil : FERDIGMELD uten merknader
    Åpen --> TilGodkjenning : FERDIGMELD med kommentar /<br/>tilleggsprodukter
    Åpen --> ConnectGodkjenning : FERDIGMELD når selskapet<br/>har godkjenningsflyt
    TilGodkjenning --> KlarForFaktura : Leder godkjenner
    ConnectGodkjenning --> KlarForFaktura : Leder godkjenner
    LevertIBil --> KlarForFaktura : Behandles i Visma
    KlarForFaktura --> [*] : Fakturert
Ord.Gr12 Tilstand Settes når
0 Åpen Ordren er opprettet, ikke levert
1 Klar for fakturering / godkjent Ordren er godkjent eller klar for fakturering
2 Levert i bil Hele ordren levert, ingen merknader, ingen godkjenningsflyt
3 Levert — til godkjenning Levert med kommentar, internkommentar eller tilleggsprodukter
4 Levert — Connect-godkjenning Selskapet har godkjenningsflyt aktivert for ordretypen
9 Nullsumordre Ordresum er 0 (UPDATE Ord SET Gr12 = 9 WHERE OrdSumT = 0)

Standardverdiene for status ved levering kan overstyres med API-innstillingene OrderStatusWhenCompleted (standard 2) og OrderStatusWhenCompletedNeedApproval (standard 3).

Om en ordretype har godkjenningsflyt styres per selskap i Visma-tabellen StrFVar (NmSp = 'ConnectApp'):

Variabel (StrFVar.VarNm) Gjelder Effekt når Val1 = '1'
GodkjenningOrdre Ordinære ordrer Leverte ordrer går til Connect-godkjenning (Gr12 = 4)
GodkjenningOrdreBulk Bulkordrer (Ord.Gr11 = 4) Samme, for bulk

Samlet overgangstabell

Fra Handling / vilkår Til Utføres av Teknisk effekt
Ordre opprettes (app NY ORDRE, Visma, EnergiApp-synk, AutoOrder) Åpen Sjåfør / kontor / ConnectMonitor INSERT i Ord + OrdLn
Åpen PLUKK Åpen (tildelt) Sjåfør POST /User/AssignOrderToDriver → sjåfør-ID lagres på ordren
Åpen (tildelt) FRIGI Åpen (utildelt) Sjåfør POST /User/UnassignOrder → tildeling fjernes
Åpen (tildelt) UTSETT Åpen, neste dag Sjåfør POST /User/MoveOrderToNextDay → leveringsdato +1 dag
Åpen (tildelt) LAGRE (utkast) Åpen Sjåfør SetOrderAsCompleted med DoNotConfirmOrder = true → kun feltoppdatering, ingen statusendring
Åpen (tildelt) FERDIGMELD, hele ordren levert, godkjenningsflyt aktiv Gr12 = 4 Sjåfør → system Se sekvensen under
Åpen (tildelt) FERDIGMELD, med kommentar/tilleggsprodukt Gr12 = 3 Sjåfør → system Se sekvensen under
Åpen (tildelt) FERDIGMELD, uten merknader Gr12 = 2 Sjåfør → system Se sekvensen under
Gr12 = 2/3/9 eller 4 Godkjenning i godkjenningskøen Gr12 = 1 Leder/godkjenner POST /User/OrderApproval
Gr12 = 1 Fakturering Fakturert Visma Business Ordinær Visma-fakturarutine

Samspill mellom bruker og system

sequenceDiagram
    autonumber
    actor S as Sjåfør
    participant App as Connect-app
    participant API as Connect API
    participant V as jhlVismaAPI
    participant DB as Visma Business DB

    S->>App: FERDIGMELD + BEKREFT LEVERING
    App->>API: POST /User/SetOrderAsCompleted<br/>(OrderNo, linjer, levert antall, temp, GPS)
    API->>V: CalculateVol2Std(produkt, antall, temp, bil)
    V->>DB: SELECT faktor fra Vol2Std-tabell
    DB-->>V: faktor
    V-->>API: standardliter
    API->>API: Generer leveringskvittering (PDF)<br/>og send e-post til kunde
    API->>V: Order.SetOrderAsCompleted(ordre)
    V->>V: SetOrderStatus → Gr12 = 2/3/4
    V->>DB: UPDATE Actor (GPS-posisjon på leveringssted)
    V->>DB: INSERT FreeInf2<br/>(Gr = 20, Val1 = −levert std.liter, R9 = bil)
    V->>DB: UPDATE Ord (Gr12, bekreftet lev.dato)<br/>UPDATE OrdLn (FinishNow = levert, lev.dato, pris)
    DB-->>V: OK
    V-->>API: ResultValue
    API-->>App: 200 OK
    App-->>S: Ordre ferdigmeldt

Datalag: tabeller og felt

Ord (ordrehode)

Felt Skrives ved Innhold
Gr12 Ferdigmelding / godkjenning Ordrestatus (se tilstandstabellen)
Gr11 Opprettelse Intern ordretype (bulk = 4)
Bekreftet leveringsdato Ferdigmelding Faktisk leveringsdato fra appen
OrdSumT Visma Ordresum — nullsumordrer settes til Gr12 = 9

OrdLn (ordrelinjer)

Felt Skrives ved Innhold
FinishNow (levér nå) Ferdigmelding Levert antall i standardliter — utløser Vismas ordinære leverings-/fakturalogikk
Bekreftet leveringsdato Ferdigmelding Faktisk leveringsdato per linje
Pris / rabatt / frakt Ferdigmelding Hvis sjåføren har endret pris på linjen

FreeInf2 (beholdningstransaksjon ved levering)

Ved ferdigmelding skrives én rad per levert linje med Gr = 20 (levering fra bil) og negativt fortegn på mengden. Full kolonnemapping er dokumentert i Flyt: Lasting → levering → avstemming.

Actor

GPS-posisjonen fra leveringen lagres på leveringsaktøren dersom koordinatene er gyldige og avviker nok fra eksisterende posisjon.

Godkjenningskøen (SQL)

Køen i appen henter ordrer med denne logikken (forenklet fra koden):

WHERE (ord.Gr12 IN (2,3,9)
       AND (SELECT TOP 1 Val1 FROM StrFVar
            WHERE NmSp = 'ConnectApp'
              AND VarNm = CASE WHEN ord.Gr11 <> 4
                               THEN 'GodkjenningOrdre'
                               ELSE 'GodkjenningOrdreBulk' END) = '0')
   OR (ord.Gr12 IN (4)
       AND (SELECT TOP 1 Val1 FROM StrFVar
            WHERE NmSp = 'ConnectApp'
              AND VarNm = CASE WHEN ord.Gr11 <> 4
                               THEN 'GodkjenningOrdre'
                               ELSE 'GodkjenningOrdreBulk' END) = '1')

Godkjente ordrer vises med ord.Gr12 IN (1).

(Verifisert i jhlVismaAPI OrderController.csSetOrderAsCompleted, SetOrderStatus, godkjenningsspørringen — og UserController.cs, Web.config (VismaOrderStatus, VismaInventoryTable).)

Avvik og reversering

Situasjon Håndtering Teknisk kontroll
Ordre ferdigmeldt med feil antall Leder avviser/korrigerer i godkjenningskøen før fakturering Ord.Gr12 fortsatt 2/3/4 — ikke fakturert
Ordre ferdigmeldt to ganger (nettverksglipp) Beholdningstransaksjonen har duplikatvern IF NOT EXISTS på nøkkelfeltene i FreeInf2 før INSERT
Feil produkt levert Konverter produkt i Beholdning-modulen Ny FreeInf2-rad flytter mengden mellom produkter
GPS manglet ved levering Posisjon oppdateres ikke; kommentar viser «Sjåfør valgte å ikke sende GPS» Txt1 i FreeInf2
Nullsumordre dukker opp i kø Settes automatisk til Gr12 = 9 UPDATE Ord SET Gr12 = 9 WHERE OrdSumT = 0

Relaterte sider