feat(export): Bestandsbuch für Tierarzneimittel nach Art. 108 VO (EU) 2019/6

- Treatment records supplier, purchase proof and prescribing vet, and
  keeps the apiary the colony stood at on the treatment day.
- Holder name and address in site settings (never in public output;
  regression test in public.service.spec).
- treatment-log.pdf: one sheet per apiary, identical treatments grouped,
  missing mandatory fields printed as FEHLT, uncertain locations marked.
- Shared PDF table helpers extracted from the record card.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Opus 5.5 committed 2026-09-28 11:10:07 +02:00
1 parent f263ec79f2
commit 0d23963f07
24 files changed
+941 -113

No files matched your search

@@ -0,0 +1,13 @@
-- AlterTable
ALTER TABLE "SiteSettings" ADD COLUMN "holderAddress" TEXT,
ADD COLUMN "holderName" TEXT;
-- AlterTable
ALTER TABLE "Treatment" ADD COLUMN "apiaryId" TEXT,
ADD COLUMN "prescribingVet" TEXT,
ADD COLUMN "purchaseProof" TEXT,
ADD COLUMN "supplier" TEXT;
-- AddForeignKey
ALTER TABLE "Treatment" ADD CONSTRAINT "Treatment_apiaryId_fkey" FOREIGN KEY ("apiaryId") REFERENCES "Apiary"("id") ON DELETE SET NULL ON UPDATE CASCADE;