Skip to content

2.9.1

Released: TBD

Highlights

  • Supplier credit notes now work. Applying and canceling a supplier credit actually posts to the ledger and adjusts the supplier invoice — the second of the deferred Accounting Placeholder Audit feature builds.

Added

  • Supplier credit application (audit #36–#39). Creating a supplier credit linked to a supplier invoice now posts the GL reversal (DR accounts payable, CR expense), lowers the invoice's outstanding balance, cancels the credited lines via the supplier_invoice_detail_id link, sets status APPLIED, and computes due_amount. cancelSupplierCredit now reverses all of that instead of doing nothing. See Supplier Credit Application.

Changed

  • None.

Fixed

  • Supplier credit note creation could fail. SupplierCreditDetailInput.to_orm_model passed note through raw, leaking UNSET into the database insert when a line had no note; it now uses optional_field.

Migrations

  • None. No schema change — all fields (supplier_credit_status, due_amount, supplier_invoice_detail_id) already existed; this wires the behaviour.

Frontend impact

  • Creating a supplier credit against a supplier invoice now reduces that invoice's outstanding balance and shows the credit as APPLIED; canceling a supplier credit now actually reverses it. No GraphQL contract change.

Versioning notes

  • PATCH bump (uv run python scripts/bump_version.py 2.9.1 --changelog-stub): makes an existing-but-inert feature functional plus a bugfix, no schema change.