# Release Notes — Enterprise Finance and Procurement Controls

**Date:** 24 July 2026

## Added

- Enterprise Finance Control Centre.
- Unallocated bank/M-Pesa receipt register and controlled allocation.
- Budget commitments and available-budget enforcement.
- Cost centres and project dimensions on journal lines.
- Bank accounts, reconciliation headers and reconciliation items.
- Three-way PO/GRN/invoice matching and controlled overrides.
- Fixed-asset categories, register, depreciation runs and period-close checks.
- Journal UUIDs, hashes and approval metadata.
- Annual procurement planning and quarterly plan lines.
- RFQ/tender events, supplier invitations, quotations, evaluation and awards.
- Procurement contracts, value consumption and expiry alerts.
- Line-level LPO items and maker-checker LPO approval.
- Supplier qualification, AGPO, compliance, risk and bank-verification fields.
- Warehouses, stock items, stock cards, movements and reorder alerts.
- Line-level GRN inspection, rejection and stock posting.
- Supplier performance scorecards and corrective actions.
- Payment vouchers with gross/net/deduction accounting.
- New integrity checks for finance, purchasing, receiving, inventory, contracts and payments.

## Changed

- LPO creation now saves a Draft or Submitted document. Budget is reserved only when the LPO is approved.
- Submitted LPO approval validates budget, supplier eligibility, awarded sourcing event, contract period and available contract value.
- Supplier bank-transfer payment requires independently verified bank details.
- Supplier invoice matching compares the gross LPO value with a gross GRN value that proportionally includes LPO-level tax.
- Supplier payment settles the creditor at gross value while posting net cash and deduction liabilities separately.
- Legacy LPO `total_amount` and `approval_status` are backfilled during migration.
- Procurement and Finance sidebar navigation now exposes the new control-centre functions.

## Validation performed

- All PHP files were checked with `php -l`.
- Migration files were checked for statement parsing and balanced SQL delimiters.
- The package includes expanded read-only integrity checks.

## Required after deployment

```bat
C:\xampp\php\php.exe bin\migrate.php
C:\xampp\php\php.exe bin\check_integrity.php
```

A live MySQL/MariaDB migration was not executed in the build container; run the above commands first on a staging copy of the institution database.
