Features #322
stängdFeatures #178: Samordning: generiska föreningsspecifika klippkort
Features #319: Rapportera transaktioner per period, kategori och betalningssätt
Visa försäljningsrapport per period och kategori
100%
Beskrivning
Bygg den första läsbara adminrapporten ovanpå transaktionsgrunden i #321.
Definition of Done:
- Föreningsadministratören når en tenantavgränsad rapport från föreningens adminmeny.
- Rapporten kan visa vald dag, ISO-vecka, kalendermånad eller kalenderår med periodgränser i Europe/Stockholm.
- Genomförda transaktionsrader grupperas efter snapshotad kategori; saknad kategori visas som Övrigt.
- Varje kategori visar artikelantal, dynamiska summor per betalningsmetod och kategorins totala försäljning.
- Rapporten visar totalsumma per betalningsmetod och total försäljning för hela perioden.
- Detaljrader visar tidpunkt, artikel, antal, betalningsmetod, täckt värde och faktiskt försäljningsbelopp.
- Klippkortsnyttjande visas som egen metod med 0 kr i ny försäljning och dubbelräknas inte.
- Tom period, alla periodtyper, svenska tidszonsgränser, Övrigt, tenantisolering och behörighet testas.
- PHP-tester, MariaDB-integrationstester och frontendbygge passerar.
Avgränsning: CSV-export, deltagarnamn/födelseår, Swish, bankkort, LOK-/närvarobedömning och produktionsaktivering ingår inte.
Acceptanskriterier
Föreningsadmin kan visa genomförda transaktioner för dag, ISO-vecka, månad eller år, grupperade efter kategori med dynamiska betalningssummor, kategori- och rapporttotaler samt detaljrader. Klippkort redovisas separat med 0 kr i ny försäljning. Tenantisolering och svenska periodgränser verifieras. CSV och deltagaruppgifter ingår inte.
Testresultat
PASS: isolerad CI för rapportimplementationen e7a108c, slutlig acceptansrelease 4fbb3f8 och schema 021 godkända. HTTP-test verifierade dag/ISO-vecka/månad/år, riktig admininloggning och tenantspärr. Daterat syntetiskt underlag verifierade flera kategorier, Övrigt, kategori- och rapporttotaler samt klippkort utan dubbelräkning. Rapportvyerna användargodkända.