# Skulitech ERP — Bulk Sponsor Receipting Release

## Visible finance menus

- Bulk Sponsor Receipting
- Sponsor Receipts
- Bulk Student Allocations
- Sponsor Control Reports

## Implemented workflow

1. Configure HELB, a County bursary, an NG-CDF constituency, scholarship or other sponsor.
2. Optionally recognise an approved award on the accrual basis.
3. Record one bank transfer or cheque acknowledgement.
4. Keep a cheque in Pending Clearance until confirmed in the institution bank account.
5. Upload an Excel or CSV schedule for many students in the same transaction.
6. Approve the one official sponsor receipt.
7. Validate and post the student allocation batch.
8. Print the sponsor receipt, batch register and individual non-cash student allocation advices.

## Accounting controls

- Duplicate bank and cheque references are blocked.
- Pending-clearance receipts cannot be posted to the bank ledger.
- Student allocations cannot exceed the uncommitted parent receipt balance.
- Batch posting settles student fee receivables without increasing cash a second time.
- Reversals preserve the audit trail.
- Sponsor control reports reconcile receipts, allocations and unallocated funds.

## XAMPP upgrade

Run `bin\xampp_install.bat` or execute:

```text
C:\xampp\php\php.exe bin\migrate.php
C:\xampp\php\php.exe bin\xampp_check.php
C:\xampp\php\php.exe bin\check_integrity.php
```

The new migration is `database/migrations/20260714_003_bulk_sponsor_receipting.sql`.

## XAMPP acceptance test

1. Create or confirm three learner records with valid admission numbers.
2. Open **Finance → Bulk Sponsor Receipting**.
3. Record a KSh 100,000 HELB transfer or County/NG-CDF cheque and upload three allocation lines totalling KSh 100,000.
4. Confirm that only one sponsor receipt is created and that the allocation batch is Draft.
5. For a cheque, leave it Pending Clearance and verify that approval is blocked.
6. Mark the cheque cleared, approve the sponsor receipt, validate the batch and post it.
7. Confirm that the bank receipt register shows KSh 100,000, learner allocations total KSh 100,000, and no second KSh 100,000 cash receipt appears.
8. Attempt a KSh 105,000 schedule against the same receipt and confirm that posting is blocked.
9. Attempt to reuse the same bank reference and confirm that it is rejected.
10. Reverse the posted batch and confirm that the learner credits are reversed while the audit trail remains.
