Features #220
stängdFeatures #178: Samordning: generiska föreningsspecifika klippkort
Features #177: Konfigurera frivillig giltighetstid för klippkortsartiklar
Beräkna klippkortets giltighetsgräns från köptid
100%
Beskrivning
DoD: separat testad beräkning från köptid plus valfria positiva hela kalenderår. NULL ger ingen tidsgräns. Användarbeslut 2026-09-10: gäller till dagens slut på årsdagen, svensk tid. Exklusiv slutgräns är nästa dags midnatt i Europe/Stockholm, lagrad i UTC. 29 februari blir 28 februari i icke-skottår. Testa vår/höstomställning, skottdag, årsskifte, exakt slutgräns, UTC-datumskillnad, ingen tidsgräns och otillåtna år/dataintervall. Ingen migration, inget utfärdande eller UI; koppling till köp sker i #183.
Acceptanskriterier
Ren kalenderårsberäkning med dokumenterade gränsregler och godkänd CI, inga befintliga data ändras.
Testresultat
Slutverifierat 2026-09-14. CardValidity och CardValidityTest granskade och oförändrade mot godkänd CI fd791bdd07d30115b2de65a6467104c1c07c3526.crx8si. Befintliga tester täcker hel årsdag, UTC-lagring, null, mikrosekund före/exakt/efter utgång, skottdag, vår/höst, årsskifte och ogiltiga år. Ny separat PHP-körning direkt mot samma CI-kod i read-only container med --network none: PASS åtta kalenderfall (1/5 år, skottdag till icke-skottår/skottår, vår/höst, årsskifte, UTC-datumskillnad), gränsjämförelser för alla åtta, null/obegränsat, nio ogiltiga årsvärden och tre otillåtna datumintervall. Första försöket saknade läsrätt till vendor på grund av containerns UID; andra försöket med filägarens UID PASS, inga filrättigheter ändrades. CI-underlaget återanvänt; separat datumtest nytt. Ingen databasåtkomst, datamodifiering, migration, utfärdande eller UI-ändring.