Användarmanual – Biljettsystem
Innehåll
- Översikt
- Publika sidor (besökare)
- 2.1 Startsidan
- 2.2 Boka biljetter
- 2.3 Visa biljett
- Inloggning
- Kassa (kassapersonal)
- 4.1 Kassaförsäljning
- 4.2 Ordrar
- 4.3 Kassapass
- Biljettkontroll (insläpp)
- Administration
- 6.1 Dashboard
- 6.2 Evenemang
- 6.3 Föreställningar
- 6.4 Salongseditor
- 6.5 Användare
- 6.6 Rabattkoder
- 6.7 Värdekoder (bulk-rabatter)
- 6.8 Blockerade platser
- 6.9 Logg
- 6.10 Förtryckta biljetter
- 6.11 Rapporter
- Roller och behörigheter
- Driftsättning
1. Översikt
Biljettsystemet hanterar hela flödet för konserter och teaterföreställningar mm:
- Besökare bokar biljetter online via webbläsaren (numrerade eller onumrerade föreställningar)
- Kassapersonal säljer biljetter på plats med Swish eller kontant, hanterar kassapass
- Kontrollpersonal checkar in besökare vid dörren med QR-scanner
- Administratörer hanterar evenemang, salonger, användare, rabattkoder och platsblockering
- Arrangörer har läsbehörighet till dashboard och statistik
Nyckelfunktioner:
- Interaktiv salongsvyn med realtidsuppdatering
- Heartbeat-reservation (15 minuter)
- 4 rabatttyper + bulk-värdekoder
- Kassapass med differensberäkning
- Platsblockering och ombooking
- QR-kod-scanning vid insläpp
- E-postbiljetter med inline QR-kod
- Onumrerade föreställningar (fritt sittande)
- Komplett systemlogg
Systemet nås via
https://ticket.apper.nu.
2. Publika sidor (besökare)
2.1 Startsidan
URL: https://ticket.apper.nu/
Startsidan visar alla kommande evenemang med datum, tid, plats och antal lediga platser. Varje föreställning har en Boka biljetter-knapp. Slutsålda föreställningar markeras med en röd "Slutsåld"-skylt.
2.2 Boka biljetter
URL: https://ticket.apper.nu/book.php?show=X
Bokningen sker i tre steg:
Steg 1 – Välj platser (eller antal för onumrerade föreställningar)
För numrerade föreställningar:
Salongen visas som ett interaktivt rutnät med scenen överst. Klicka på gröna (lediga) platser för att välja dem – de blir blå med en bock. Klicka igen för att avmarkera.
Färgkoder:
- Grön = Ledig
- Blå = Vald av dig
- Gul (randig) = Reserverad av någon annan
- Röd = Såld
- Grå = Ej tillgänglig
För onumrerade föreställningar (fritt sittande):
En informationsruta visas som förklarar att föreställningen har fritt sittande. Använd + och - knapparna för att välja antal biljetter (max 20 per bokning).
När du valt platser/antal startar en nedräkning (15 minuter). Platserna är reserverade åt dig under tiden.
Steg 2 – Välj priskategori
För varje vald plats (eller biljett vid onumrerat) väljer du priskategori i en dropdown (t.ex. Ordinarie, Student/Pensionär, Barn).
För onumrerade föreställningar visas biljetterna som "Biljett 1", "Biljett 2" etc. istället för rad och stolsnummer.
Totalpriset uppdateras automatiskt.
Det finns även ett fält för rabattkod. Skriv in koden och klicka "Använd" för att se om den är giltig.
Steg 3 – Slutför
Ange din e-postadress (obligatoriskt) och valfritt namn. Klicka Verifiera betalning för att slutföra köpet.
Efter köpet visas en bekräftelse med ordernummer och länkar till varje biljett.
2.3 Visa biljett
URL: https://ticket.apper.nu/ticket.php?code=XXXX
Biljettsidan visar:
- Evenemangets namn, datum, tid och plats
- För numrerade: Rad och stolsnummer
- För onumrerade: Texten "Onumrerat"
- Priskategori och pris
- QR-kod för insläpp
- Biljettkod och ordernummer
Knappar:
- Skriv ut – öppnar utskriftsdialogen
- Ladda ner QR – sparar QR-koden som en PNG-bild
Om biljetten är makulerad eller redan incheckad visas det tydligt.
3. Inloggning
URL: https://ticket.apper.nu/login.php
Personal loggar in med användarnamn och lösenord. Vid första inloggningen krävs ett lösenordsbyte (minst 8 tecken).
Säkerhet:
- Max 5 inloggningsförsök, sedan låses kontot i 15 minuter
- Sessionen går ut efter 3 timmars inaktivitet
- Länken "Glömt lösenord?" skickar en återställningslänk till din registrerade e-postadress
Efter inloggning skickas du automatiskt till rätt sida beroende på din roll (admin, kassa eller kontroll).
4. Kassa (kassapersonal)
Kassamodulen används av personal som säljer biljetter på plats.
4.1 Kassaförsäljning
Meny: Kassa
Så här säljer du en biljett:
- Välj föreställning i dropdownen. Du ser titel, datum och hur många platser som sålts.
- Välj platser/antal:
-
Numrerade: Klicka i salongskartan (samma som onlinebokning)
- Onumrerade: Systemet väljer automatiskt platser baserat på antal biljetter
- Välj priskategori per biljett. För onumrerade visas "Biljett 1", "Biljett 2" etc. Eventuellt en rabattkod.
- Välj betalsätt:
Swish:
- Klicka den gröna Swish-knappen
- En QR-kod visas som kunden scannar med sin Swish-app
- Belopp och mottagare visas ovanför QR-koden
- När kunden betalat, klicka Betalt – Bekräfta
Kontant:
- Klicka den gula Kontant-knappen (visas bara på dator, inte mobil)
- Beloppet visas
- Kontrollera att rätt belopp mottagits och klicka Betalt – Bekräfta
- Bekräftelse visas med ordernummer och biljetter.
- E-post angiven? Mailbiljett skickas automatiskt
- Ingen e-post? Klicka Skriv ut biljetter för att skriva ut på papper
- Förtryckt biljett? Scanna QR-koden på den fysiska biljetten eller ange löpnumret, klicka Koppla och lämna ut biljetten. QR-koden fungerar sedan vid insläppet precis som en digital biljett.
- Klicka Ny försäljning för att börja om med nästa kund
Tips: E-post är valfritt vid kassaköp. Om kunden inte vill ange sin e-post, dela ut en förtryckt biljett eller skriv ut på papper. Förtryckta biljetter genereras under Mer → Förtryckta biljetter.
4.2 Ordrar
Meny: Ordrar
Här kan du leta upp och hantera ordrar:
- Filtrera på föreställning i dropdownen
- Sök på orderkod (minst 3 tecken)
Klicka ögon-ikonen vid en order för att se alla detaljer: orderkod, status, belopp, betalsätt, e-post och alla biljetter i ordern.
Makulera en biljett:
- Klicka det röda X:et vid biljetten
- Ange en orsak (obligatoriskt), t.ex. "Kundens begäran" eller "Felbokning"
- Klicka Makulera
Platsen blir omedelbart ledig igen för försäljning. Ingen automatisk återbetalning sker – det hanteras manuellt.
Permanent radering (endast admin):
Om en biljett är makulerad kan administratörer ta bort den permanent från databasen:
- Vid makulerade biljetter visas en Radera permanent-knapp
- Klicka knappen och bekräfta
- Biljetten raderas permanent och kan inte återställas
Varning: Permanent radering tar bort all historik. Använd endast vid felaktiga/testordrar.
E-postutskick:
Om kunden inte fick mailbiljett (t.ex. vid kassaköp utan e-post):
- Klicka Skicka mail vid ordern
- Ange/uppdatera e-postadress
- Klicka Skicka – alla biljetter i ordern skickas
Du kan även skriva ut enskilda biljetter genom att klicka skrivarikonen.
4.3 Kassapass
Meny: Kassapass
Kassapasset spårar kontanthanteringen under en arbetsdag.
Öppna pass:
- Ange ingående kontantbelopp (det som redan finns i kassan)
- Klicka Öppna kassapass
Under passet ser du:
- När passet öppnades
- Ingående belopp
- Kontantförsäljning under passet (summa och antal ordrar)
- Förväntat belopp i kassan (ingående + kontantförsäljning)
Stänga pass:
- Räkna pengarna i kassan
- Ange utgående kontantbelopp
- Lägg eventuellt till en anteckning
- Klicka Stäng kassapass
Systemet beräknar differensen (utgående minus förväntat). Differensen visas i historiktabellen:
- 0 kr (grönt) = stämmer
- Plus (blått) = mer i kassan än förväntat
- Minus (rött) = mindre i kassan än förväntat
Obs: Du kan bara ha ett öppet kassapass åt gången.
5. Biljettkontroll (insläpp)
Meny: Check-in
Biljettkontroll-sidan används vid dörren för att checka in besökare.
Grundläggande användning
- Scanna QR-koden med en extern QR-scanner (som fungerar som tangentbord – den skriver koden och trycker Enter automatiskt)
- Systemet söker upp biljetten och checkar in automatiskt om allt stämmer
Alternativt kan du skriva in biljettkoden manuellt i fältet och trycka Enter eller klicka Sök.
Visuell feedback
Resultatet visas i en stor, tydlig ruta:
| Färg | Betydelse |
|---|
| Grön | Lyckad incheckning – visa plats, föreställning och ordernummer |
| Gul | Varning – redan incheckad, eller utanför tidsfönster |
| Röd | Fel – makulerad biljett, ogiltig kod, eller ej betald |
Tidsfönster
Check-in är normalt öppet 60 minuter före till 30 minuter efter föreställningen.
- Utanför fönstret visas en varning
- Admin-användare kan klicka "Checka in ändå" för att overrida tidsspärren
- Vanlig kontrollpersonal måste kontakta en admin
Utcheckning
Om en biljett redan är incheckad visas en Checka ut-knapp. Det kan användas om någon behöver lämna och komma tillbaka.
Orderinfo
Vid lyckad incheckning visas även övriga biljetter i samma order, med status (incheckad/ej incheckad). Det gör det enkelt att se om resten av sällskapet också kommit.
Tips: Fokus ligger alltid på inmatningsfältet – du behöver inte klicka i det mellan scanningar.
6. Administration
Administratörsvyn nås efter inloggning som admin.
6.1 Dashboard
Meny: Dashboard
Översiktssida med:
- Statistikkort: Betalda ordrar, Aktiva biljetter, Totala intäkter, Incheckade
- Kommande föreställningar: Tabell med beläggningsgrad (färgkodad stapel)
- Snabbåtgärder: Genvägar till vanliga uppgifter
- Senaste ordrar: De 8 senaste ordrarna med status
6.2 Evenemang
Meny: Evenemang
Ett evenemang är en samling av en eller flera föreställningar (t.ex. "Julkonsert 2025" med föreställningar lördag och söndag).
Skapa nytt evenemang:
- Klicka Nytt evenemang
- Fyll i titel (obligatorisk), beskrivning och eventuell bild-URL
- Klicka Skapa
Redigera: Klicka pennikonen.
Aktivera/inaktivera: Klicka play/paus-ikonen.
Inaktiva evenemang och deras föreställningar visas inte för besökare.
6.3 Föreställningar
Meny: Föreställningar
En föreställning kopplas till ett evenemang (valfritt) och en salong (obligatoriskt).
Skapa ny föreställning:
- Klicka Ny föreställning
- Välj evenemang (eller "Fristående föreställning")
- Välj salong
- Ange datum och tid
- Onumrerad föreställning (valfritt): Kryssa i denna box om föreställningen ska ha fritt sittande utan numrerade platser
- Lägg till priskategorier: namn (t.ex. "Ordinarie") och pris (t.ex. 250)
- Klicka Skapa
Priskategorier kan läggas till och tas bort med + och papperskorg-knapparna. Kategorier som redan har sålda biljetter kan inte ändras.
Check-in-fönster kan justeras per föreställning (standard: 60 min före, 30 min efter).
Onumrerade föreställningar:
När du kryssar i "Onumrerad föreställning" får föreställningen fritt sittande:
- Besökare väljer antal biljetter istället för specifika platser
- På biljetten visas "Onumrerat" istället för rad och stolsnummer
- I kassan och e-postbiljetter visas "Biljett 1", "Biljett 2" etc.
- Systemet allokerar fortfarande platser internt för att begränsa antal sålda biljetter till salongkapaciteten
6.4 Salongseditor
Meny: Salonger
Salongen definierar hur platserna är arrangerade. Den visas som ett rutnät där varje cell antingen är en stol eller en gång/tom plats.
Skapa ny salong:
- Klicka Ny salong
- Ange namn, antal rader och kolumner
- Alla celler skapas initialt som stolar
Redigera salongen:
- Klicka Redigera på en salong
- Klicka på enskilda celler för att växla mellan stol och gång
- Använd massnumrering för att snabbt numrera en hel rad:
- Ange radnummer, kolumnintervall, radlabel (t.ex. "A") och startnummer
- Klicka
Numrera stolar eller
Markera som gång
- Klicka Spara ändringar när du är klar
Tips: Markera en mittkolumn som gång för att skapa en mittgång i salongen.
6.5 Användare
Meny: Användare
Hantera personalkonton.
Skapa ny användare:
- Klicka Ny användare
- Fyll i användarnamn, e-post och välj roll
- Lösenordet genereras automatiskt (t.ex.
byt_mig_a7x). Användaren tvingas byta vid första inloggningen.
Roller:
- Admin – full tillgång till allt
- Kassa – kassaförsäljning, ordrar, kassapass
- Kontroll – biljettkontroll/insläpp
- Arrangör – läsbehörighet till dashboard
Återställa lösenord: Klicka nyckelikonen vid en användare. Ett nytt temporärt lösenord genereras och visas. Användaren tvingas byta vid nästa inloggning.
Inaktivera: Redigera användaren och byt status till "Inaktiv". Inaktiva användare kan inte logga in.
6.6 Rabattkoder
Meny: Rabattkoder
Systemet stödjer 4 olika rabatttyper för flexibel prishantering.
Skapa rabattkod:
- Klicka Ny rabattkod
- Ange koden (t.ex. "JULRABATT"), beskrivning och välj rabatttyp:
Rabatttyper:
- Procent – Procentuell rabatt per biljett
- Ange värde (t.ex. 20 för 20% rabatt)
- Appliceras på varje biljett individuellt
- Fast belopp – Fast summa i kronor
-
Per biljett: Rabatt dras från varje biljett (t.ex. 50 kr/st)
- På hela ordern: Rabatt dras en gång från totalsumman
- Köp X betala för Y – Kampanjrabatt
- Exempel: Köp 3 betala för 2
- Ange "Köp antal" (t.ex. 3) och "Betala för" (t.ex. 2)
- Rabatten beräknas automatiskt på de billigaste biljetterna
- Gratis biljetter – Lägg till gratis biljetter
- Ange antal gratis biljetter (t.ex. 1)
- Kunden får X antal biljetter gratis
Ytterligare inställningar:
- Applicerbara kategorier: Begränsa till specifika priskategorier (JSON-array med ID:n)
- Min antal biljetter: Minsta antal biljetter för att rabatten ska gälla
- Max användningar: Begränsa hur många gånger koden kan användas
- Giltighetsdatum: Start- och slutdatum (valfritt)
Rabattkoder kan aktiveras/inaktiveras med play/paus-ikonen. I listan ser du hur många gånger varje kod har använts.
6.7 Värdekoder (bulk-rabatter)
Meny: Rabattkoder → Värdekoder
För att skapa många unika rabattkoder samtidigt (t.ex. vid kampanjer, presentkort):
Skapa värdekoder:
- Klicka Skapa värdekoder
- Ange antal koder (1-1000)
- Välj prefix (t.ex. "SUMMER") och random-kodlängd (2-12 tecken)
- Välj rabatttyp och värde (samma alternativ som enkla rabattkoder)
- Ange giltighetsdatum och max användningar per kod
- Klicka Generera koder
Varje batch får ett unikt batch-ID. Koderna genereras som:
- Format:
PREFIX-XXXXX (t.ex. "SUMMER-A7X9K")
- Unika: Alla koder är slumpmässiga och garanterat unika
Hantera värdekoder:
- Visa detaljer: Klicka på batch-ID för att se alla koder i batchen
- Statistik: Total antal, använda, oanvända koder visas per batch
- Export: Exportera koder som CSV eller TXT-fil
- Radera: Ta bort oanvända koder eller hela batchen
Export:
- Klicka Export vid önskad batch
- Välj format (CSV eller TXT)
- Filtrera: Alla koder, endast oanvända, eller endast använda
- Filen laddas ner automatiskt
6.8 Blockerade platser
Meny: Mer → Blockerade platser
Blockera platser som inte ska säljas (t.ex. siktskymda, teknisk utrustning, reserverade).
Blockera platser:
- Välj föreställning i dropdownen
- Salongskartan visas – klicka på platser för att välja dem
- Ange blockerings-anledning (t.ex. "Siktskymda", "Teknisk utrustning")
- Välj scope:
-
Endast denna föreställning – Blockerar bara valda föreställningen
-
Alla föreställningar i denna salong – Blockerar samma platser för alla framtida föreställningar
- Klicka Blockera platser
Påverkade biljetter:
Om en plats redan är såld visas listan över påverkade biljetter.
Ombooking:
- Klicka Boka om vid varje påverkad biljett
- Välj ny plats i salongskartan
- Ange omboknings-anledning
- Klicka Bekräfta ombooking
Systemet:
- Flyttar automatiskt biljetten till den nya platsen
- Sparar platsbytet i historiken
- Skickar e-postnotifiering till kunden (om e-post finns)
- Loggar ändringen i systemloggen
Avblockera:
- Välj föreställning
- Blockerade platser visas i grått med streckad kant
- Klicka på platser för att välja dem
- Klicka Avblockera platser
6.9 Logg
Meny: Mer → Logg
Visar alla händelser i systemet: inloggningar, biljettförsäljningar, incheckningar, makuleringar m.m.
- Filtrera på händelsetyp via dropdownen
- Varje rad visar: tidpunkt, användare, händelse, detaljer och IP-adress
- 50 poster per sida med sidnavigering
Loggen är skrivskyddad – poster kan inte raderas.
6.10 Förtryckta biljetter
Meny: Mer → Förtryckta biljetter
Förtryckta biljetter är fysiska biljetter som skrivs ut i förväg – utan koppling till en specifik föreställning eller plats. De kopplas till ett köp i kassan när de säljs.
Flöde:
- Admin genererar en biljettpool
- Biljetterna skrivs ut
- Kassören säljer och kopplar den fysiska biljetten till köpet
#### Generera biljetter
- Ange prefix/batch-label (t.ex. "VK26") – används för att gruppera och filtrera biljetter
- Ange antal (1–500)
- Ange startlöpnummer – systemet föreslår nästa lediga nummer inom prefixet automatiskt
- Ange kodlängd (slumpdelen av QR-koden, standard 8 tecken)
- Klicka Generera
Klicka på ett batch-kort högst upp på sidan för att filtrera till den batchen direkt.
#### Skriva ut
- Klicka Utskriftsvyn (eller välj filter och klicka Utskriftsvyn (aktuellt filter))
- Välj layout: kolumner per sida, rader per sida, marginaler
- Välj HTML-mall via URL-fältet eller klicka Redigera mall för att anpassa designen direkt i editorn:
-
Generell – enkel biljett med QR och löpnummer, utan evenemangsinformation
-
Numrerad – visar rad och stol (används när biljetten kopplas till numrerat köp)
-
Onumrerad – för föreställningar med fritt sittande
- Fyll i Evenemangsinformation om du vet vilken föreställning biljetterna ska användas till (valfritt – kan lämnas tomt)
- Klicka Skriv ut
Mall-editorn öppnas direkt i utskriftssidan. Ändringar sparas automatiskt i webbläsaren och visas live på biljetterna. Du kan kopiera koden och redigera den i en texteditor (t.ex. Notepad++) och sedan klistra in den igen.
#### Koppla biljett till försäljning (kassan)
I kassan, efter att en order är bekräftad, kan kassören koppla en förtryckt biljett till den digitala biljetten genom att skanna QR-koden på den fysiska biljetten eller ange löpnumret.
#### Hantera biljetter
I listan kan du:
- Avkoppla en kopplad biljett (gör den ledig igen)
- Radera en okopplad biljett permanent
6.11 Rapporter
Meny: Mer → Rapporter
Tillgänglig för admin och arrangör (läsbehörighet).
#### STIM-underlag
Visar antal sålda biljetter per priskategori och föreställning – används som underlag för STIM-rapportering (upphovsrättsersättning vid musikframträdanden).
- Grupperat per priskategori med antal och totalpris
- Makulerade biljetter exkluderas automatiskt
- Innehåller organisationsnummer och organisationsnamn (från config.php)
Exportera till CSV: Klicka
Exportera STIM-underlag (CSV) – filen öppnas korrekt i Excel (UTF-8 med svenska decimaler).
#### Bokföringssammanställning
Visar betalda ordrar grupperade per betalsätt (Swish, kontant, Stripe) med:
- Antal ordrar
- Bruttointäkter
- Rabatter
- Nettointäkter
Exportera till CSV: Klicka
Exportera bokföring (CSV).
7. Roller och behörigheter
| Funktion | Admin | Kassa | Kontroll | Arrangör |
|---|
| Dashboard | ✅ | | | ✅ (läs) |
| Evenemang | ✅ | | | |
| Föreställningar | ✅ | | | |
| Salongseditor | ✅ | | | |
| Användare | ✅ | | | |
| Rabattkoder (enkla) | ✅ | | | |
| Värdekoder (bulk) | ✅ | | | |
| Export värdekoder | ✅ | | | |
| Blockerade platser | ✅ | | | |
| Ombooking av biljetter | ✅ | | | |
| Förtryckta biljetter (generera/radera) | ✅ | | | |
| Förtryckta biljetter (koppla) | ✅ | ✅ | | |
| Rapporter | ✅ | | | ✅ (läs) |
| Logg | ✅ | | | |
| Kassaförsäljning | ✅ | ✅ | | |
| Ordrar (visa/söka) | ✅ | ✅ | | |
| Makulera biljetter | ✅ | ✅ | | |
| Permanent radera biljett | ✅ | | | |
| Kassapass | ✅ | ✅ | | |
| Biljettkontroll | ✅ | | ✅ | |
| Check-in override | ✅ | | | |
| E-postutskick | ✅ | ✅ | | |
8. Driftsättning
Första gången
- Redigera
pdo.php med databasuppgifter (värd, databas, användare, lösenord)
- Redigera
config.php:
-
SITE_URL – din subdomän (t.ex.
https://ticket.apper.nu)
-
SWISH_NUMBER – mottagarnummer för Swish
- SMTP-uppgifter för e-post (
MAIL_SMTP_HOST,
MAIL_SMTP_USER,
MAIL_SMTP_PASS etc.)
-
ORG_NAME och
ORG_NUMBER – visas i STIM-rapporter
- Konfigurera Stripe i
config.php:
-
STRIPE_SECRET_KEY – börjar med
sk_live_ (eller
sk_test_ i testläge)
- STRIPE_PUBLISHABLE_KEY – börjar med pk_live_
- STRIPE_WEBHOOK_SECRET – skapas i Stripe Dashboard under Developers → Webhooks
- Registrera webhook i Stripe Dashboard:
- URL:
https://ticket.apper.nu/api/stripe-webhook.php
- Events: checkout.session.completed och checkout.session.expired
- Ladda upp alla filer (inkl.
vendor/) till webbservern
- Kör
https://ticket.apper.nu/install.php i webbläsaren
- Logga in med
admin / byt_mig_123 och byt lösenord
- Byt namn på install.php:
mv install.php install.php.bak
E-post (mailbiljetter)
Ladda ner PHPMailer och lägg filerna i mail/PHPMailer/:
Exception.php
PHPMailer.php
SMTP.php
Dessa kan laddas ner från
PHPMailer på GitHub.
Testdata
Installationen skapar exempeldata:
| Typ | Innehåll |
|---|
| Salong | "Stora salen" – 10 rader, 15 kolumner (140 platser, mittgång) |
| Evenemang | "Julkonsert 2025" |
| Föreställningar | 2 st (alltid 30+ dagar framåt, dynamiska datum) |
| Priskategorier | Ordinarie 250 kr, Student/Pensionär 180 kr, Barn 100 kr |
| Rabattkod | JULRABATT (50 kr fast rabatt, max 20 användningar, december 2025) |
| Admin | admin / byt_mig_123 |
| Kassa | kassa1 / byt_mig_123 |
| Kontroll | kontroll1 / byt_mig_123 |
| Arrangör | arrangor1 / byt_mig_123 |
Alla testanvändare tvingas byta lösenord vid första inloggningen.
Observera: Föreställningsdatum genereras automatiskt vid installation för att alltid ligga 30+ dagar framåt i tiden. Detta säkerställer att check-in-funktionen fungerar korrekt vid testning.