Features #321
stängdFeatures #178: Samordning: generiska föreningsspecifika klippkort
Features #319: Rapportera transaktioner per period, kategori och betalningssätt
Skapa oföränderlig transaktionsgrund för rapporter
100%
Beskrivning
Skapa en oföränderlig, tenantavgränsad datagrund som #319 kan använda utan att läsa föränderliga artikelkategorier eller tolka kontant och klippkort som samma slags betalning.
Definition of Done:
- När en transaktion slutförs sparas artikelkategori-id och kategorinamn som snapshots på transaktionsraden; saknad kategori representeras som Övrigt.
- Senare namnbyte, flytt eller borttagning av artikel/kategori ändrar inte den slutförda transaktionens rapportvärden.
- Ett rapportlager returnerar betalningsfördelning som metodkod och faktiskt försäljningsbelopp per transaktionsrad.
- Kontant redovisas som monetär metod med faktiskt belopp. Klippkort redovisas separat som nyttjande med 0 kr i försäljning och får inte dubbelräknas.
- Gränssnittet kan lägga till framtida monetära metoder som Swish eller bankkort utan att rapportens summeringskod behöver ändras.
- Slutförande, snapshots och fördelning är atomära och idempotenta.
- Befintliga syntetiska transaktioner hanteras deterministiskt vid migration; ingen verklig produktionsdata finns i scope.
- Tenantisolering, blandade kategorier, Övrigt, prisändring, kategoriförändring, kontant, klippkort och upprepat slutförande testas i MariaDB.
- Full isolerad CI och frontendbygge passerar.
Avgränsning: Ingen rapportvy, CSV-export, Swish-integration, bankkortsbetalning, delad monetär betalning, närvaromodell, LOK-bedömning eller produktionsaktivering.
Acceptanskriterier
Slutförda transaktionsrader har oföränderliga artikel- och kategorisnapshots. Ett tenantavgränsat rapportlager returnerar metodkod och faktiskt försäljningsbelopp per rad: kontant med betalt belopp och klippkort separat med 0 kr. Framtida monetära metoder kan läggas till utan ändrad summeringskod. Atomär/idempotent slutföring, befintlig syntetisk data, Övrigt, kategori- och prisändring, kontant, klippkort och tenantisolering verifieras i MariaDB. Ingen rapportvy eller ny betalningsintegration ingår.
Testresultat
CI godkänd för 4fbb3f8. Acceptansuppgradering 020→021 godkänd med befintliga slutbehandlade rader; äldre affärsvärden oförändrade; historiska rader visas som Övrigt.