Gå til innhold

Arbeidsordre-innstillinger

Arbeidsordre-fanen i Portalinnstillinger styrer hvordan arbeidsordrenummer tildeles, hvilke dokumenter som kan lastes opp, hvilken Azure Storage-konto som brukes for vedlegg, og hvordan timer fra tidsregistrering kobles til fakturagrunnlag. Innstillingene lagres i tabellen wv_WorkOrder_Settings (én rad per klient-database) samt i wv_SystemConfiguration for produktkoder og bilagskonti — se WorkOrderSettings.cs og portal-setting.component.ts:2793.


Tilgang

Hvem Hva trengs
Rolle Administrator (claim UserAdmin = "1") — backend nekter GET/PUT api/WorkOrder/admin-settings for ikke-admin, se WorkOrderController.cs:1493
Modul Portalinnstillinger — moduleId: 99 på ruten, se setting-routing.module.ts:30
Rute /settings/portal-setting med fane workOrder

Sånn ser fanen ut

Fanen vises bare når currentTab == 'workOrder' (portal-setting.component.html:1593). Den består av fire seksjoner i ett kort:

  1. Toppseksjon — nummerserie og dokumentlagring (to kolonner)
  2. Automatisk tidsoverføring (form-section)
  3. Integration-API → Lager (form-section)
  4. Fakturagrunnlag — produktkoder (form-section)
  5. Korrigeringsbilag (timeflytting) (form-section)

Nederst er en sentrert Lagre-knapp som er deaktivert når formet er ugyldig eller en lagring pågår.

hele Arbeidsordre-fanen scrollet til toppen, slik at de to øverste kolonnene (nummerserie og Azure-lagring) er synlige


Felt — nummerserie og dokumentlagring

Felt (formControlName) Type Standard Validering
woNoSeedValue (Startverdi for AO-nummer) Heltall 1000 required, min: 1
useExternalWoNo (Bruk eksternt AO-nummer) Bryter Av
allowedFileTypes (Tillatte filtyper) Tekst, kommaseparert pdf,jpg,jpeg,png,doc,docx,xls,xlsx,ppt,pptx
maxFileSizeMB (Maks filstørrelse) Heltall (MB) 50 required, min: 1, max: 500
storageAccountName (Storage Account-navn) Tekst tom required
azureBlobContainerName (Blob Container-navn) Tekst workorder-documents required
useManagedIdentity (Bruk Managed Identity) Bryter Av

Verifisert i portal-setting.component.ts:2794-2801 og WorkOrderSettings.cs:16-51.

woNoSeedValue — startverdi for AO-nummer

WoNoSeedValue er startverdien som IDENTITY-seed-en for arbeidsordrenummer settes til ved første kjøring eller reset. Doc-strengen på WorkOrderSettings.cs:13-16 beskriver feltet som "Starting WoNo for IDENTITY seed (e.g., 100000)". Det er ikke et templat-mønster med år/sekvens — bare et heltall som AO-nummerene teller videre fra.

useExternalWoNo — eksternt AO-nummer

Når aktivert skjules Opprett-knappen i UI fordi arbeidsordrenummeret kommer fra et eksternt system ("True if external system provides WoNo (disables create button in UI)" — WorkOrderSettings.cs:18-21). Tooltip i UI: "Hvis aktivert, må arbeidsordrenummer angis manuelt".

Dokumentlagring i Azure Blob

storageAccountName + azureBlobContainerName peker på Azure Storage-kontoen som vedlegg på arbeidsordrer lagres i. Standard-container er workorder-documents. useManagedIdentity velger mellom Managed Identity (anbefalt for produksjon) og connection string fra appsettings.json — se infoboksen "Managed Identity anbefales for produksjonsmiljøer da det ikke krever lagring av tilgangsnøkler. Hvis deaktivert, må Connection String konfigureres i appsettings.json." (no.json:6642).

allowedFileTypes er en kommaseparert liste med tillatte filendelser, inkludert PowerPoint (ppt, pptx) i standardoppsettet. maxFileSizeMB håndhever maksimal filstørrelse på vedlegg.

høyre kolonne med Storage Account-navn, Blob Container-navn, Managed Identity-bryter og infoboksen under


Felt — Automatisk tidsoverføring

Felt (formControlName) Type Standard Validering Synlighet
autoTransferTime (Auto-overfør timer) Bryter Av Alltid synlig
autoTransferMarkupPercent (Standard påslag) Desimal (%) 0 min: 0, max: 100, step: 0.5 Vises kun når autoTransferTime er på (portal-setting.component.html:1801)

Når autoTransferTime er på, overføres tidsregistreringer med arbeidsordrenummer automatisk til fakturalinje ved registrering — ifølge hjelpeteksten "Når aktivert, overføres tidsregistreringer med arbeidsordrenummer automatisk til fakturalinje ved registrering" (no.json:6700). Modellfeltet er beskrevet som "When true, time registrations with a work order number are automatically transferred to invoice lines" (WorkOrderSettings.cs:53-56).

autoTransferMarkupPercent er prosenten som legges på når timene overføres (0 = ingen påslag).

Når bryteren er på, vises en gul advarsel-boks: "Når auto-overføring er aktivert, vil timer registrert på en arbeidsordre automatisk opprette en fakturalinje med pris fra prismatrisen. Timer uten gyldig pris i prismatrisen vil ikke bli overført automatisk, og kan overføres manuelt etterpå. Overførte timer kan fortsatt reverseres manuelt i ordren." (no.json:6703).

seksjonen "Automatisk tidsoverføring" med bryteren slått PÅ, slik at både prosent-feltet og den gule advarselen er synlige


Felt — Integration-API → Lager

Felt (formControlName) Type Standard
createStockTxFromApi (Opprette lagertransaksjoner for innkommende varelinjer fra API) Bryter (true)

Når aktivert oppretter ePortal Integration API automatisk en wv_Stock_Transaction-rad for innkommende AO-linjer som har et reelt lager-produkt (IsStockProduct = 1). Lager velges per linje med prioritet: eksplisitt StockNo > tcONIS_Transfer_StockNo > eneste lager (hvis kun ett finnes). Linjer der lager ikke kan resolves blir lagret uten lagerbevegelse — bruk Behandling → Rekalkuler eksterne uttak i Lager-modulen for å rette opp i etterkant (no.json:6706-6707).

Modellkommentaren forklarer at default er true for å speile dagens oppførsel etter migrasjonen (WorkOrderSettings.cs:64-69).


Felt — Fakturagrunnlag (produktkoder)

Verdiene i denne seksjonen lagres i wv_SystemConfiguration (kategori WorkOrder / Accounting) eller via time-config integration-endepunktet, ikke i wv_WorkOrder_Settings. Se portal-setting.component.ts:2841-2888.

Felt (formControlName) Lagres som Standard
hourProductCode (Produktkode for timer-sum) WorkOrder.HourProductCode i wv_SystemConfiguration tom
transferMode (Overføringsmodus ordrer) wv_TimeConfig.transferMode via Settings-API 2 (Linje for linje) — alternativ 1 (Kun sumlinjer)
transferProd (Produktkode for material-sum) wv_TimeConfig.transferProd tom
transferStockNo (Overfør lagernr på ordrelinjer) wv_TimeConfig.transferStockNo (0/1) Av

hourProductCode brukes i Summary-modus av fakturagrunnlag — produktkoden tilordnes den aggregerte timer-summen (typisk 3900 i Visma Business). For å skjule produktet fra fakturavedlegg må flagget Utelat fra fakturavedlegg settes på selve produktet under Lager → Produkter (no.json:6711).

transferProd har samme funksjon for material-summen (typisk 3990).


Felt — Korrigeringsbilag (timeflytting)

Verdiene lagres i wv_SystemConfiguration under kategori Accounting.

Felt (formControlName) ConfigKey Standard
timeMoveDebitAccount (Debetkonto) Accounting.TimeMoveDebitAccount tom
timeMoveCreditAccount (Kreditkonto) Accounting.TimeMoveCreditAccount tom
timeMoveVoucherSerie (Bilagsserie) Accounting.TimeMoveVoucherSerie 3

Korrigeringsbilag opprettes kun hvis både debet- og kreditkonto er fylt inn. Hvis disse er tomme vil flytting av timer mellom arbeidsordrer fortsatt lykkes, men du får en advarsel om at bilaget ikke ble opprettet (no.json:6721).

hele seksjonen "Korrigeringsbilag (timeflytting)" inkludert den gule advarselsboksen til høyre


Slik konfigurerer du arbeidsordre-innstillinger

  1. Åpne Innstillinger → Portalinnstillinger, og velg fanen Arbeidsordre.
  2. Sett Startverdi for AO-nummer (woNoSeedValue) før første arbeidsordre opprettes. Verdien er en IDENTITY-seed og endres normalt ikke etter at ordrer er opprettet.
  3. Slå på Bruk eksternt AO-nummer hvis et tredjepartssystem leverer ordrenummeret.
  4. Konfigurer Storage Account-navn og Blob Container-navn (begge påkrevde). Slå på Bruk Managed Identity i produksjon — ellers krever løsningen at en Connection String er satt i appsettings.json.
  5. Tilpass Tillatte filtyper (kommaseparert) og Maks filstørrelse (1–500 MB).
  6. Vurder om Auto-overfør timer skal slås på. Hvis ja, sett en eventuell standard påslagsprosent (0–100).
  7. Behold Opprette lagertransaksjoner for innkommende varelinjer fra API på (default) hvis du tar imot AO-linjer via Integration-API og bruker lagerstyring.
  8. Sett Produktkode for timer-sum og Produktkode for material-sum hvis dere bruker Summary-modus på fakturagrunnlag.
  9. Sett Overføringsmodus ordrer til Linje for linje (default) eller Kun sumlinjer.
  10. Hvis dere bruker korrigeringsbilag for timeflytting: fyll inn Debetkonto, Kreditkonto og Bilagsserie.
  11. Klikk Lagre. UI viser en toast med "Innstillinger lagret" ved suksess, eller "Kunne ikke lagre innstillinger" ved feil (portal-setting.component.ts:2901).

Vanlige problemer

"Kunne ikke laste innstillinger" ved åpning av fanen

Toast med teksten "Kunne ikke laste innstillinger" vises hvis GET api/WorkOrder/admin-settings feiler — typisk fordi brukeren ikke har Admin-rolle (UserAdmin-claim ≠ "1"). Backend returnerer da Success = false med "Access denied: Admin only" (WorkOrderController.cs:1499).

Lagre-knappen er deaktivert

Knappen er deaktivert når workOrderSettingsForm.invalid er true (portal-setting.component.html:2019). Sjekk røde felter:

  • Startverdi for AO-nummer — påkrevd og må være ≥ 1
  • Maks filstørrelse — påkrevd, mellom 1 og 500
  • Storage Account-navn — påkrevd
  • Blob Container-navn — påkrevd
  • Standard påslag (når synlig) — mellom 0 og 100

"Skjemaet er ugyldig" når jeg trykker Lagre

Hvis saveWorkOrderSettings() kalles mens formet er ugyldig, viser toasten General.invalidForm ("Skjemaet inneholder ugyldige verdier") og lagringen avbrytes (portal-setting.component.ts:2820). Scroll opp og fyll inn røde felter.

"Kunne ikke lagre innstillinger"

Vises hvis ett av de tre parallelle kallene (admin-settings, system-configuration-batch, time-config integration) feiler. Sjekk nettverk og at brukeren fortsatt har Admin-rolle.

Korrigeringsbilag opprettes ikke ved timeflytting

Begge Debetkonto og Kreditkonto må være fylt inn. Hvis ett av feltene er tomt, flyttes timene, men du får en advarsel om at bilaget ikke ble opprettet.

Lagerbevegelser dukker ikke opp for AO-linjer fra Integration-API

Hvis Opprette lagertransaksjoner for innkommende varelinjer fra API er av, blir det ingen wv_Stock_Transaction-rader. Hvis den er på, men en linje har flere mulige lagre og mangler StockNo, blir linjen lagret uten lagerbevegelse. Bruk Behandling → Rekalkuler eksterne uttak i Lager-modulen for å rette dette i etterkant.


Relaterte sider