1.11.2¶
Released: TBD
Highlights¶
- ITBMS worksheet accuracy. Invoice and supplier-invoice lines created
before the
add_tax_rate_id_to_detailsmigration now have atax_rate_idassigned, so they appear in the correct ITBMS rate bucket (7 % / 10 % / 15 % / exempt) instead of theITBMS_UNCLASSIFIEDcatch-all.
Added¶
- Backfill script
scripts/backfill_tax_rate_id_invoice_details.py— infersTaxRateCodefrom each line's storedtax_ratepercentage and the parent invoice date, then resolves the effectiveTaxRaterow and writes its id. See feature page.
Changed¶
-
Fixed¶
- Legacy
invoice_details/supplier_invoice_detailsrows withNULLtax_rate_idno longer show up asITBMS_UNCLASSIFIEDin the worksheet after the backfill script is run.
Migrations¶
- No new alembic revision. The
tax_rate_idcolumn already exists (added inadd_tax_rate_id_to_details, 2026-05-17). This release only provides the one-off data backfill script.
Run the script once after deploy:
Frontend impact¶
- No GraphQL surface changes. The
taxRateIdfield onInvoiceDetailResponseandSupplierInvoiceDetailResponsewas already exposed; it will now return a non-null value for previously-unclassified lines after the backfill. The ITBMS worksheetITBMS_UNCLASSIFIEDbucket should be empty for historical periods once the script runs.
Versioning notes¶
- Patch bump (data fix, no schema or API changes). Bumped with
uv run python scripts/bump_version.py 1.11.2 --changelog-stub.