TeknikFix QC

Changelog

Versionshistorik

2026-03-23

Inloggning, INREGO-import, namnbyte & säkerhet

Inloggningssystem

  • Lösenordsskyddad åtkomst — alla sidor och API:er kräver inloggning
  • Enkel delad lösenordsinloggning (förberett för individuella lösenord)
  • Inloggningscookie giltig i 1 år
  • Ny login-sida med mörkt tema och TeknikFix QC-branding

INREGO Excel-import

  • Automatisk formatdetektering: 3StepIT vs INREGO
  • INREGO-stöd: Enhets-ID, Serienummer, Artikelnummer, skick från produktnamn
  • Enrich-läge: matchar importerade rader mot befintliga enheter via artikelnummer och fyller i serial + asset-ID
  • Grade-normalisering per leverantör (INREGO: A- → B, B → C)

Säkerhet

  • Auth-check tillagd på samtliga 20 API-routes
  • Middleware skyddar alla sidor utom login

Övrigt

  • Appen heter nu TeknikFix QC (tidigare WMS)
  • Ny favicon och PWA-ikoner (SVG)
  • PWA-genväg till kamerascannern
  • Användarbyte navigerar till startsidan
2026-03-21

Server-synkat seen-system, säkerhet, språkfix & kodstädning

Seen-system (hybrid)

  • localStorage för instant läsning/skrivning — inga fördröjningar
  • Server-sync var 60:e sekund — seen-data följer användaren mellan datorer
  • Automatisk migration från gamla localStorage-nycklar
  • sendBeacon vid sidstängning för att inte tappa data

Säkerhet

  • Auth-check tillagd på /api/ocr, /api/excel/parse, /api/invoices/parse, /api/upload, /api/upload-temp

Språk & konsistens

  • Rollbaserade badges på avvikelse-detaljsidan (admin/tekniker ser rätt perspektiv)
  • Admin: 'Besvarad' → 'Väntar på tekniker'
  • Aktivitetslogg: grammatikfix (QC påbörjat/avslutat)
  • Borttagen oanvänd seen-instructed.ts
2026-03-20b

Seen-system, leveranser redesign, QC-progress i enhetskort

Seen-system (3 nivåer)

  • Nivå 3: Gul prick (enheter) / blå chatbubbla (avvikelser) på listkort — försvinner vid klick
  • Nivå 2: Dashboard-kort pulserar när count ökat sedan senast sett — försvinner vid klick
  • Nivå 1: Sidebar 'Att göra' speglar dashboard-indikatorerna
  • Kontextbaserade indikatorer: chatbubbla för ärenden med svar, gul prick för nya items utan svar
  • localStorage-baserat med automatisk cleanup vid arkivering

Leveranser redesign

  • Ny kortdesign med blå accent, Truck-ikon, enhetsantal-badge
  • Detaljsida: mörkt info-kort, UnitCards istället för tabell
  • Ny leverans: mörka tabs, mörk upload-zon, mörka formulärinputs
  • IconBackground och max-w-[930px] på alla leveranssidor

QC-progress i enhetskort

  • QC_IN_PROGRESS-enheter visar progressbar i enhetstyp-accentfärg
  • 'Xh sedan' tidsstämpel på pågående QC
  • QCProgressGrid borttagen — enhetlig kortvy oavsett filter

Övrigt

  • Admin-dashboard: nytt 'Pågående QC'-kort i pink
  • Sidebar: top-level 'Avvikelser' markeras inte vid sub-item-val
  • Avvikelse-listkort: konsoliderade chatbubblor på konsekvent position
2026-03-20

Avvikelsefilter, statusflöde, notifieringslogik & mobilfix

Avvikelsefilter

  • Nya rollbaserade filter: Admin (Alla, Ohanterade, Svar från tekniker, Väntar, Löst), Tekniker (Alla, Svar från admin, Väntar, Löst)
  • Nytt filter 'awaiting-admin' för teknikerns 'Väntar på admin'-vy (alla OPEN issues)
  • Nytt filter 'unhandled' räknar korrekt (OPEN utan riktiga kommentarer)
  • Sökfält borttaget, horisontellt scrollbara filterknappar på mobil

Statusflöde & kontext

  • Auto-status: admin svarar → INSTRUCTED, tekniker svarar → OPEN
  • Återöppning sätter INSTRUCTED om admin svarade sist (inte alltid OPEN)
  • 'Väntar'-status kräver nu anledning (t.ex. 'reservdel beställd')
  • Väntar-kommentarer visas som centrerad pill med klock-ikon i chatten
  • Väntar-anledning visas på avvikelse-kort i listan
  • Löst-kommentarer visas genomstrukna med 'Återöppnad' vid återöppnade ärenden

Notifieringslogik

  • Gul prick: bara på kort som kräver uppmärksamhet (ohanterade, artikelnr)
  • Blå chatbubbla: bara på svar-kort (admin↔tekniker kommunikation)
  • Dashboard-räknare synkade med filter (techActivityCount, unhandledCount)
  • Konsekvent accentfärger: dashboard-kort matchar avvikelse-listans statusfärger
  • Sidebar 'Att göra' speglar dashboard-indikatorerna exakt

Mobilfix

  • QC: ikoner och räknare dolda på mobil, kortare knaptexter
  • Avvikelse-detalj: bättre header-layout, ingen auto-scroll
  • Chat: lägre min-height på mobil, kompaktare resolve/waiting-knappar
  • Sidebar sub-items: 'Svar från admin'/'Svar från tekniker' konsekvent benämning
2026-03-19

Ny design: enhetslista, avvikelser, dashboard & chatbubbla-notiser

Enhetslista

  • Ny kortdesign med enhetstyp-accentfärg (vänsterborder) och enhetsikon
  • Max-bredd 930px för bättre fokus
  • Ikonbakgrundsmönster

Avvikelser

  • Helt omdesignad lista — ett kort per avvikelse med status-accent, klickbar helkort
  • iMessage-stil chatbubbla på detaljsidan: blå (admin), grå (tekniker), emerald (löst)
  • Nytt filter 'Nya svar' (tech-replied) för admin att se tekniker-svar
  • Lösta avvikelser dolda från standardvyn, visas under 'Löst'-filter
  • Återöppnade ärenden: löst-kommentar visas genomstruken med 'Återöppnad'-markering
  • Paginering tillagd
  • Sökfältet borttaget (överflödigt med statusfilter)

Statusflöde

  • Auto-status: admin svarar → INSTRUCTED, tekniker svarar på INSTRUCTED → OPEN
  • Ny visuell status 'Svar från tekniker' (lila accent) för ärenden med väntande teknikersvar
  • Status-badges: 'Väntar på admin', 'Svar från admin', 'Svar från tekniker', 'Väntar', 'Löst'

Notifieringar

  • Pulserande blå chatbubbla i sidebaren på 'Att göra' vid nya svar
  • Samma chatbubbla på relevanta dashboard-kort och i avvikelse-listan
  • Sidebar-pricken pulserar alltid vid aktiva uppgifter (inte bara första gången)

Dashboard

  • Admin-vy: samma mörka kortdesign som tekniker med admin-relevanta kort
  • Sök + Skanna visas för alla roller
2026-03-18

QC tre-stegs-system, förbättrad design & problemrapportering

QC Checklista — tre stegs-system

  • Nytt tre-stegs-klick: godkänd (grön bock) → anmärkning (amber utropstecken) → nollställ
  • Laddare och Skick följer samma tre-stegs-logik med amber utropstecken vid problem
  • Anmärkningar samlas i en rapport — inga individuella avvikelser skapas per punkt
  • Fail-rapport ersätter knapp-raden helt (ingen dubblering av slutför-knappar)
  • Progress-bar räknar adresserade punkter (både godkända och anmärkta)

Problemrapportering

  • Ny 'Rapportera problem'-knapp på QC-startskärmen för enheter som inte ska processas
  • Samma knapp i arrival-bannern efter mottagning
  • 'Problem'-knappen borttagen från QC-checklistans botten — separerar pre-QC-problem från QC-anmärkningar

Design

  • QC-checklista: mörkt tema med slate-bakgrunder och emerald/amber glow på checkboxar
  • Slutförd QC-vy: mörkt tema som matchar aktiv checklista
  • Expanderbara QC-instruktioner: strukturerad typografi med rubrik, bullet points och vänsterlinje
  • Fotosektion: mörkt tema, gradient-kameraknapp, ingen separat header
  • Laddare-knappar: mörkt tema (slate-700 med emerald/amber aktiva tillstånd)
  • Alla sidebar-badges: enhetlig bg-slate-500 färg och storlek
  • Pulserande prick på 'Att göra' aningen större
  • QC progress-kort på /enheter?status=QC_IN_PROGRESS
2026-03-17

Dashboard, ny menystruktur & avvikelser som egen meny

Dashboard — Att göra

  • Ny startsida (/) med 'Att göra'-kort för tekniker: QC, avvikelser, artikelnr, inkommande, pågående QC
  • Kort sorteras med aktiva överst, inaktiva dimmade underst
  • Pulserande notifikationsprick på kort och i sidebaren vid nya händelser
  • Idag-statistik: registrerade, QC klara, avvikelser lösta
  • Senast uppdaterade enheter med nästa steg-badge
  • Dekorativ bakgrund med IT-ikoner

Ny menystruktur

  • Avvikelser är nu en egen toppnivå-menypost (inte inbakad i Enheter)
  • Sidebaren: Att göra → Enheter → Avvikelser → Leveranser (admin)
  • Enheter och Avvikelser ihopfällda som default för tekniker
  • Glow-effekter borttagna — dashboard-notifieringar ersätter
  • Alla sub-menytexter i enhetlig grå färg
  • Top-level markering: grå istället för blå, markeras inte vid sub-item-val
2026-03-16

Kameraförbättringar, säkerhet & intern kvalitet

Kamera

  • 30 fps realtidsdetektering med tryRotate — hittar vertikala streckkoder
  • HP DataMatrix-stöd: komma-separerade koder (serial, produktnr, modell) parsas automatiskt
  • Auto-scan blockeras inte längre av välkomstmeddelandet
  • Flash-feedback vid misslyckad OCR och streckkodsskanning
  • Skannar-spinner visas under hela serveranropet (knapp och auto-scan)
  • Direktlänk /kamera — kan sparas som hemskärmsgenväg
  • Buggfix: kameran fastnade i oändlig spinner vid scan under aktiv flash

Säkerhet & dataintegritet

  • Avvikelse-skapande: reportedById sätts nu server-side (kan inte fejkas)
  • Serial/asset-ID-duplikatkontroller wrappade i transaktioner (race condition fix)
  • 6 nya databasindex för snabbare queries på User-relationer
  • Statusövergångar centraliserade i delad modul
  • Leverantörs-specifika kommentarer ersatta med generiska beskrivningar

Enhetslista

  • Status-kolumn gömd på mobil — listan ryms utan sidoscroll
  • Artikelnummer visas konsekvent som text (gradient-badge borttagen)
2026-03-15

Kamerascanner 2.0 — realtidsdetektering & förbättrat flöde

Realtidsdetektering

  • Streckkoder markeras med gröna ramar i realtid (~14 fps) — helt lokalt via WebAssembly, ingen nätverkstrafik
  • Lock-on: rutan stannar kvar och följer streckkoden mjukt (positionsutjämning + kvardröjning)
  • Text-etikett visar streckkodens innehåll ovanför den gröna rutan
  • Puls-effekt vid ny detektering
  • Auto-scan: streckkoder som är stabila i >1 sekund registreras automatiskt utan knapptryck

Trestegsflöde (INREGO)

  • Artikelnummer → Leverantörs-ID → Serienummer — i den ordningen för att undvika förväxling med Dell expresskoder
  • Stegbanner visar aktuellt steg, modell och brand-specifika format-tips
  • Kontextuell streckkodfiltrering: väljer rätt streckkod baserat på förväntat steg

Registreringsförbättringar

  • 3StepIT: auto-registrering åt båda hållen — skannar lev-ID (med serial i DB) eller serial (med lev-ID i DB)
  • Redan inlevererad: blå flash med 'Visa enhet'-knapp för snabbnavigering
  • Vibration vid lyckad registrering
  • Skannar-spinner visas under hela serveranropet (knapp och auto-scan)

Ny kameradesign

  • Kameran är ett fast bakgrundslager — UI:t (header, knappar, logg) ligger ovanpå utan att påverka kamerabilden
  • Fast guide-rektangel (260px) med dim overlay runt om
  • Större tydligare header-knappar med synlig bakgrund
  • Utdragbar debug-logg via logg-ikon i headern
  • Välkomstmeddelande vid kamerastart
2026-03-13b

Kamerascanner & hydration-fix

Kamerascanner

  • Ny kamerascanner med streckkodläsning (zxing-wasm) — helt lokal, inga externa beroenden
  • Stöd för alla vanliga format: Code128, QR, EAN-13, EAN-8, UPC-A/E, Code39, ITF, DataMatrix, PDF417
  • OCR-läsning (Text-knapp) via server-side PaddleOCR i separat mikrotjänst
  • Fuzzy OCR-matchning: genererar varianter vid OCR-missar och provar mot databasen
  • Viewfinder med tydlig guide-area — bara det innanför ramen skickas för tolkning
  • Multi-step: skannar lev-ID → frågar efter serienummer om det saknas

Buggfixar

  • Hydration-fel på mobil fixat (Suspense-boundaries för alla sökparameter-komponenter)
  • Sidebar: fixat ogiltig HTML-nesting som orsakade varningar
  • Lookup API: förbättrad artikelnummer-matchning för ankomstregistrering
2026-03-13

QC-omarbetning, konsistensfix & rollskydd

QC-checklistor

  • Helt nya typanpassade checklistor — LAPTOP (7 punkter), DESKTOP (4), PHONE (3), TABLET (3), MONITOR (3), OTHER (2)
  • Flödet följer teknikerns naturliga arbetsordning: laddare → rengöring → tillverkartest → OS → display → slutkontroller
  • Tillverkartest (short) — korta BIOS-diagnoser före OS-installation
  • GPU-stresstest (FurMark) inbakat i OS-kontroller för enheter med dedikerat grafikkort
  • Batteri: 80% krav för telefoner/surfplattor, 70% för laptops
  • Återuppta påbörjad QC istället för att starta ny
  • Skick sparas löpande (auto-save) precis som övriga checklistpunkter
  • Teknikern måste aktivt välja inspekterat skick — ingen förvald leverantörsgrad
  • "Slutför alla utan anmärkningar" sätter leverantörens skick
  • Laddare-checkbox kan nu nollställas till grå (obockad)

Konsistensförbättringar

  • Statusbyte visar felmeddelande om ändringen misslyckas (var tyst tidigare)
  • Avvikelsestatusar har nu övergångsregler (som enheter redan hade)
  • Kommentar-fel visas i tydlig röd ruta (var liten text tidigare)
  • Debounce-timing enhetlig (500ms) för alla auto-save
  • Avvikelser skapas nu först efter att QC slutförts framgångsrikt
  • Selection-bar rensas vid navigering/filtrering och är vertikalt centrerad

Säkerhet & rollskydd

  • Leverans-API (skapa/redigera/ta bort) kräver nu admin-roll
  • Artikeltilldelning trimmar och validerar tomma strängar server-side
2026-03-12

Excel-import, arrival-fix & monitor-stöd

Excel-import

  • Importspårning — varje import loggas med filnamn, antal och tidpunkt
  • Ångra import — tar bort importerade enheter och återställer ursprungliga
  • Ordernummer skrivs inte över om det redan finns
  • Bekräftelsemeddelande efter lyckad import
  • Drag-and-drop för filuppladdning
  • Excel-ikon vid data som importerats från fil

Ankomst & monitorer

  • Arrival-bannern försvann vid skanning — fixat
  • Serienummer valfritt för monitorer vid ankomstregistrering
  • Knappen heter nu "Saknar serienummer" (övriga enhetstyper)

Leveransdetalj

  • Enhetslistan visar samma kolumner och data som /enheter
  • Importhistorik under leveransinformation

Övrigt

  • Enhetstypen MONITOR heter nu "Monitor"
v1.0

WMS v1.0 — Första produktionsrelease

Komplett lagerhanteringssystem för inleverans, kvalitetskontroll och spårning av begagnade enheter (laptops, telefoner, surfplattor, monitorer). Byggt med Next.js, PostgreSQL och Docker.

Enhetslista & sökning

  • Central vy med alla enheter, statusfilter och typfilter
  • Scanner-stöd: skanna streckkod → automatisk ankomstregistrering
  • Sök på serienummer, modell, leverantörs-ID och artikelnummer

Ankomstregistrering

  • Skanna leverantörens etikett → enhet registreras automatiskt
  • Stöd för 3StepIT (direkt asset-ID) och INREGO (artikelnummer → formulär)
  • Scanner-normalisering: ledande nollor, specialtecken, Lenovo 20-teckens streckkoder
  • Inmatningsvalidering och dubblettskydd

Kvalitetskontroll (QC)

  • Typanpassade checklistor per enhetstyp
  • Godkänd/underkänd per punkt med anmärkningar
  • Automatisk avvikelse vid underkänd QC

Avvikelsehantering

  • Skapa, kommentera och lösa avvikelser
  • WAITING-status för parkerade avvikelser
  • Rollbaserade notifikationer (admin/tekniker) med badge-räkning

Leveranser

  • Skapa och hantera leveranser med leverantörskoppling
  • Excel-import av enhetslistor från leverantörer

Infrastruktur

  • Separata prod/dev-miljöer med Docker Compose
  • Deploy-pipeline med auto-backup, health check och rollback
  • Daglig automatisk databasbackup