Gå til innhold

Lager-modulen

Modul for varelager — produkter, beholdning per lager, varetelling, strekkode-skanning og import av leverandørkataloger. Hovedinngangen er Lageroversikt (/stock/overview), med egne sider for varer, produktregister, salgsmatrise og import.

Egenskap Verdi
Mobil-vennlig Ja — kamera-skanning og uttak/mottak fungerer i mobilnettleser
Krever lisens Ja — aktiveres per tenant av Konti
Relaterte moduler Arbeidsordre (kobling fra uttak til AO)

Lageroversikt-fanen med valgt lager, KPI for total verdi og tabell med saldo


Tilgang

Hvem Hva trengs
Rolle Bruker som er tilordnet en UserLevel med tilgang til modul-IDene Stock (28) eller Sales Matrix (29) via wv_Userright. Vakta ActivateService + ModuleGuard håndhever dette på alle ruter.
Modul Stock (moduleId 28) — eller Sales Matrix (moduleId 29) for salgsmatrise-fanen. Begge må være aktivert for tenant i wv_DomainModule. Referanse: stock-routing.module.ts:12-16.

Sider i modulen

Modulen består av disse rutene (alle under /stock/):

Rute Side Hva
/stock/overview Lageroversikt Saldo, bestillingsliste, transaksjoner — startpunkt
/stock/goods Varer Registrer inn/ut/telling/overføring med strekkode-skanning
/stock/products Produkter Produktregister med søk, filter og sletting
/stock/import Import EFO/NELFO produkt- og rabattavtale-import + CSV
/stock/sales-matrix Salgsmatrise Regler for salgspris per kunde, prosjekt, leverandør

Referanse: stock.menu.ts:8-46.


Lageroversikt (/stock/overview)

Se prosesskartet for Lager for sammenhengen mellom varemottak, uttak, lagertransaksjoner, saldo og varetelling.

Side med tre faner. Toppen viser et lagervalg (nedtrekksmeny med alle definerte lagre), totalverdi for valgt lager (eller alle) og knapper for handlinger.

Toppen av siden med lagervalg, nøkkeltall for total lagerverdi og handlingsknappene Varetelling, Nedskriv, Behandling, KAI og Oppdater

Handlinger i topp-baren

Knapp Type Hva skjer
Varetelling (nedtrekksmeny) Vises kun på skrivebord og nettbrett i landskap Tre valg: Last ned mal, Importer varetelling, Bokfør varetelling
Nedskriv varelager Knapp Åpner Nedskrivnings-dialog
Behandling (nedtrekksmeny) Vises kun på skrivebord og nettbrett i landskap Pr nå ett valg: Rekalkuler eksterne uttak — går tilbake i tid og lager lagerbevegelser for arbeidsordrelinjer som kom inn fra integrasjonen uten å bli bokført på lageret
KAI: Analyser lager Knapp (grønn) Kjører KAI-analyse av minimumsnivåer for valgt lager
Oppdater Knapp Laster data for aktiv fane på nytt

Referanse: stock-overview.component.html:14-61.

Fane 1 — Lagersaldo

Tabell med kolonnene: Lager, Varenr, Beskrivelse, Minimumsbeholdning (redigerbar, 0–999999,99), Min. bestillingsmengde (redigerbar, 0–999999,99), Saldo, Enhet, Salgspris, Gj.snittlig innkjøpspris og Totalverdi. Saldo og totalverdi summeres i totalrad.

  • Minimum og bestillingsmengde redigeres direkte i cellen. Når lagringen går bra, bekreftes den med meldingen «Minimumsbeholdning oppdatert» — eller «Minimumsbestilling oppdatert» for kolonnen Min. bestillingsmengde.
  • KAI-varsler (lav saldo, dødt lager, høy verdi, uvanlig aktivitet) vises som et lite varselikon i kolonnen helt til venstre dersom varen har et aktivt varsel.
  • Tabellen hentes side for side. Du velger selv om siden skal vise 25, 50, 100 eller 200 rader.
  • Eksport til Excel via eksportknappen i tabellen — filnavn Lagersaldo_<dato>.xlsx.

Referanse: stock-overview.component.ts:153-294 (kolonner) og stock-overview.component.ts:1178-1215 (varselikoner).

Saldo-fanen med utvidet rad, KAI-varsel-ikon og redigert minimum-celle

Fane 2 — Bestillingsliste

Liste over varer der saldo er under minimumsnivået. Viser leverandør, leverandørreferanse, EAN, saldo, minimum, foreslått bestillingsmengde og estimert kostnad.

  • Eksport til Excel via eksportknappen i tabellen — filnavn Bestillingsliste_<dato>.xlsx.
  • Hvis ingen varer er under minimum, vises informasjonsmeldingen «Alle produkter har nok på lager. Ingen bestilling nødvendig.»

Referanse: stock-overview.component.ts:299-395.

Fane 3 — Lagertransaksjoner

Historikk over alle bevegelser. Filter: transaksjonstype (Inngående / Utgående / Varetelling / Overføring) + dato-fra og dato-til.

  • Standard dato-vindu: fra 30 dager tilbake. Til-datoen settes til i morgen, slik at hele dagen i dag kommer med.
  • Validering: er fra-dato etter til-dato, vises meldingen «Ugyldig datoperiode: Fra-dato må være før til-dato». Er vinduet over 365 dager, vises advarselen «Advarsel: Datoperiode er over ett år. Dette kan ta tid å laste».
  • Kolonner inkluderer: dato, type, varenr, beskrivelse, lager, antall, forventet/faktisk/differanse (for telling), arbeidsordre-nr, kommentar, opprettet av.
  • Eksport til Excel — filnavn Lagertransaksjoner_<dato>.xlsx.

Referanse: stock-overview.component.ts:544-707.


Nedskriv varelager

Åpnes med Nedskriv varelager-knappen i toppen. Dialog med felt:

Felt Standard Validering
Bilagsdato I dag Påkrevd
Bilagsserie 1 Påkrevd, min 1
Varenr (tomt = alle) Valgfritt — filtrerer hvilke varer som nedskrives
Lager (tomt = alle) Valgfritt — filtrerer per lager
Opprett bilag Avkrysset Hvis avkrysset opprettes regnskapsbilag for nedskrivningen

Etter bekreftelse vises meldingen «Nedskrivning utført: X produkter, Y kr». Ble det opprettet bilag, føyes «Bilag nr N opprettet» til.

Referanse: writedown-dialog.component.ts:24-32 og stock-overview.component.ts:822-869.


Varetelling

Tre måter å gjøre telling på, alle tilgjengelig fra nedtrekksmenyen Varetelling:

Last ned mal

Last ned Excel-mal for varetelling. Filnavn: Varetelling_Mal_<dato>.xlsx. Forventede kolonner: A=ProductNo, B=Description, C=Category, D=CountedQty, E=UnitCost, F=MinStock, G=MinOrderQty, H=CountDate, I=Comment.

Referanse: stock-overview.component.ts:1523-1549.

Importer varetelling (fra Excel)

Krever at et lager er valgt i nedtrekksmenyen øverst — uten dette vises feilmeldingen «Velg lagersted først».

  1. Velg .xlsx-fil
  2. Radene kontrolleres, og du får tilbake antall nye produkter, eksisterende produkter, advarsler og duplikater
  3. En bred forhåndsvisning åpnes
  4. Du bekrefter, og tellingen utføres samlet
  5. Meldingen «Import utført: X produkter opprettet, Y balanser oppdatert» vises. Feiler noen rader, listes de opp med radnummer
  6. Importen får en transaksjons-ID som lagres for økten, slik at den i prinsippet kan angres. Det finnes ingen angre-knapp i grensesnittet i dag — se Gjennomføre lagertelling

Referanse: stock-overview.component.ts:1251-1592.

Forhåndsvisning med nye produkter, eksisterende produkter og advarsler

Bokfør varetelling

Åpner en dialog som finner varetellinger med avvik i valgt periode og oppretter regnskapsbilag for differansene. Bilagsdato og -serie angis i dialogen. Tellingene behandles én om gangen og oppsummeres til slutt.

Referanse: stock-overview.component.ts:874-958.


KAI: Analyser minimumsnivå

Analyserer forbruksmønster og foreslår nytt minimumsnivå. Analysen kjøres alltid med de samme innstillingene — de kan ikke justeres fra grensesnittet:

  • Analyse-periode: 6 måneder
  • Ekskluderer outliers
  • Inkluderer sesongvariasjon
  • Filtreres etter valgt lager (eller alle hvis ingen valgt)
  • Forbruket beregnes netto per måned: Uttak/retur-bevegelser (type 2) telles med fortegn, så en retur reduserer månedens forbruk i stedet for å øke det; interne uttak (type 5) teller med sin absoluttverdi. Måneder der returer overstiger forbruket (netto null eller negativt i snitt) gir ingen minimumsanbefaling

Dialogen viser en tabell med: varenr, beskrivelse, nåværende saldo, nåværende minimum, foreslått minimum, snitt månedlig forbruk, hvor jevnt forbruket er (Stable / Moderate / High) og begrunnelse. Du velger hvilke forslag som skal lagres, og Bruk valgte (n) lagrer dem på én gang.

Mulige meldinger fra analysen: - «Ingen produkter funnet. Legg til produkter i lageret først.» — ingen varer å analysere - «X produkter ble analysert, men ingen har tilstrekkelig historikk (minimum 3 måneder). Prøv igjen senere når det er mer data.» - «Alle produkter har allerede optimale minimumsantall. Ingen endringer anbefalt.» - «Oppdaterte X produkter med nye minimumsantall» — bekreftelsen etter at du har lagret forslag

Referanse: stock-overview.component.ts:1037-1157.


Behandling: Rekalkuler eksterne uttak

En jobb som går gjennom arbeidsordrelinjer som kom inn fra integrasjonen uten at det ble laget en lagertransaksjon, og oppretter transaksjonen i etterkant.

  • Alle AO-bevegelser bokføres som Uttak/retur (type 2) med arbeidsordrelinjens antall med fortegn: positivt antall (forbruk) reduserer lagersaldoen, negativt antall (retur) øker den — samme konvensjon som den løpende AO-synkroniseringen. Varemottak (type 1) er forbeholdt ekte varemottak, og AO-bevegelser endrer aldri snittkost
  • Linjer der systemet ikke kan avgjøre hvilket lager varen skal tas fra, hoppes over og varsles for seg
  • Etter kjøring vises meldingen «Rekalkulering ferdig: X av Y linjer ble synket til lager.» Ble noen linjer hoppet over, kommer i tillegg advarselen «X linjer ble hoppet over fordi lagerinformasjon mangler. Sett StockNo manuelt for å synke disse.» — en administrator må da sette lager på linjene før neste kjøring

Referanse: stock-overview.component.ts:757-801 og StockRepository.cs:2153.

Kjente feilbokføringer før rettelsen (august 2026): frem til STOCK-1 fikk positive forbrukslinjer typen Varemottak, slik at saldoen økte i stedet for å reduseres. Feilbokførte rader (kjennetegn: leverandørreferanse ExtAPI: og kommentar «Retro-sync from processing action») rettes med reparasjonsskriptet docs/database_scripts/STOCK-1_repair_retro_sync_transaction_types.sql: det skriver radene om til type 2 med linjens fortegnede antall, og korrigerer saldoen tilsvarende — men kun for varer som aldri har hatt varetelling på lageret. Rader som allerede er eksportert til regnskap korrigeres også, og merkes varig i kommentaren med [REPAIRED-AFTER-EXPORT …] slik at bilagene kan spores opp og kontrolleres/korrigeres manuelt i regnskapssystemet (IsExported røres aldri). Varer med varetelling-historikk får bare riktig type og rapporteres for manuell avstemming (om tellingen absorberte feilen kan ikke bevises fra transaksjonsloggen — kontroller mot fysisk telling). Merk at en varetelling ikke endrer snittkost; snittkost besluttes i stedet per vare (verifisert verdi, eller et eksplisitt behold-valg) i en beslutningstabell som skriptet validerer og appliserer i samme transaksjon som saldokorreksjonen — har kostbasis endret seg mellom dry-run og apply (f.eks. et mellomliggende varemottak), stopper skriptet uten endringer og dry-run må kjøres på nytt. Dry-run er standard. Driftsmerknad: apply-kjøringen (ikke dry-run) tar en eksklusiv tabelllås (TABLOCKX) på lagertransaksjonstabellen for hele kjøringens varighet, slik at regnskapseksport ikke kan lese en rad mens skriptet retter den — dette sperrer all tilgang til tabellen (også lesing), så apply må kjøres i et kontrollert vindu uten samtidig regnskapseksport. Denne låsen virker kun når databasen kjører med tradisjonell låsebasert READ COMMITTED: er READ_COMMITTED_SNAPSHOT (RCSI) slått på for tenanten, leser regnskapseksporten en versjonert øyeblikksbilde uten å vente på noen lås i det hele tatt, og skriptet nekter derfor å kjøre apply (feiler lukket, ingen skriving) inntil RCSI er slått av for kjøringsvinduet — sperren er ubetinget, så det holder ikke å stoppe regnskapseksporten mens RCSI fortsatt er på.


Varer-siden (/stock/goods) — registrer bevegelse med skanning

Brukes til å registrere inn-/utgang, telling og overføring. Brukeren velger transaksjonstype og lager, søker etter vare eller skanner strekkode.

Felt / valg Detaljer
Transaksjonstype Varemottak, Uttak/retur, Varetelling, Overføring og Internt uttak. Påkrevd ved lagring. Internt uttak er skjult i grensesnittet.
Lager Påkrevd. Nettleseren husker lageret du valgte sist.
Til-lager Vises kun ved overføring, og er da påkrevd.
Arbeidsordre Kobler bevegelsen til en arbeidsordre. Påkrevd ved uttak/retur.
Strekkode-skanning Mobilkamera i nettleseren. Støtter CODE_128, EAN_13, EAN_8, UPC_A, UPC_E, CODE_39, ITF og QR-kode. Nettleseren husker hvilket kamera du brukte sist.
Søk Minst 2 tegn. Søket starter først når du har holdt opp å skrive i et lite øyeblikk.

Referanse: stock-goods.component.ts:48-78 og stock-goods.component.ts:88-94.

Varer-siden i mobilvisning med kamera-skanner aktivert


Produkt-import (/stock/import)

Importerer varekataloger og rabattavtaler. Skjema-felt:

Felt Standard Validering
Filformat EFONELFO (EFO/NELFO produktfil) Påkrevd. Andre valg: EFONELFO_DISCOUNT (rabattavtale), CSV
Leverandør (velges) Påkrevd
Konfigurasjon (mapping) Valgfritt Brukes for CSV
Oppdater eksisterende Avkrysset Hvis avkrysset oppdateres eksisterende varer; ellers hoppes de over
Opprett priser Avkrysset Oppretter prislinjer fra import
Gyldig fra / til I dag / tomt Setter prisens gyldighet

Importen kjører som bakgrunnsjobb. Et banner i toppen viser jobber som ligger i kø eller pågår. Du kan navigere bort og komme tilbake — jobben fortsetter, og banneret lar deg gjenoppta visningen.

Referanse: stock-import.component.ts:60-92 og stock-import.component.ts:127-159.

Konfigurasjon av leverandører og standarder gjøres i Lager-administrasjon.


Salgsmatrise (/stock/sales-matrix)

Definerer regler for salgspris. To prismodi:

Modus Hva
Fast pris Salgsprisen settes til et fast beløp
Påslag på kostpris Salgsprisen regnes ut som kostpris pluss en påslagsprosent

Regler kan settes opp per vare, prosjekt, leverandør eller kunde. Siden har en forhåndsvisning som viser hvilken regel som slår inn for en gitt kombinasjon av produkt, kunde og prosjekt.

Referanse: stock-sales-matrix.component.ts:46-80.


Slik gjør du: lagertelling via Excel-import

  1. Åpne Lager → Oversikt
  2. Velg lager i nedtrekksmenyen øverst (uten dette får du feilmelding)
  3. Klikk Varetelling → Last ned mal
  4. Fyll ut mal-filen lokalt (telte antall, evt. kostpris, minimum, bestillingsmengde, dato, kommentar)
  5. Klikk Varetelling → Importer varetelling og velg fil
  6. Gå gjennom forhåndsvisningen: nye produkter, eksisterende produkter, advarsler og duplikater
  7. Klikk Bekreft for å kjøre hele tellingen
  8. Avslutt med Varetelling → Bokfør varetelling for å bokføre differansene mot regnskap

Vanlige problemer

Problem Årsak / fiks
«Velg lagersted først» ved import av varetelling Lager er ikke valgt i nedtrekksmenyen øverst. Velg lager før import.
«Ugyldig datoperiode: Fra-dato må være før til-dato» på transaksjonsfanen Fra-dato er etter til-dato. Bytt rekkefølge.
«Advarsel: Datoperiode er over ett år. Dette kan ta tid å laste» Du har valgt mer enn 365 dager. Spørringen kan bli treg.
«Minimumsbeholdning må være 0 eller høyere» ved redigering i tabellen Du skrev inn et negativt tall. Er tallet over 999999,99, får du i stedet «Minimumsbeholdning kan ikke overstige 999999.99».
Rekalkuler eksterne uttak — «X linjer ble hoppet over fordi lagerinformasjon mangler» Arbeidsordrelinjene fra integrasjonen mangler lager, typisk fordi varen finnes på flere lagre. En administrator må sette lager på linjene før neste kjøring.
Importjobben fortsetter ikke etter at du har lastet siden på nytt Banneret skal vise jobber som er i kø eller pågår. Vises det ikke, sjekk om jobben har feilet i loggen for bakgrunnsjobber.
KAI: «ingen har tilstrekkelig historikk» Lageret har for kort historikk til analyse. Vent til varene har minst 3 måneder med transaksjoner.

Se også feilsøking for Lager-modulen.


Arbeidsprosesser

Prosess For hvem
Vareoppslag Ansatt
Lagertelling Ansatt + Leder
Registrere uttak Ansatt
Strekkode-mottak Ansatt
Lagerstatus-rapport Administrator

Relaterte innstillinger

Konfigurasjon ligger under Innstillinger → Arbeidsordre og lager:


Relaterte sider