-
Claude authored
The system predates branches, and adoption of the branch switcher was partial: 44 of 186 Livewire components used UsesBranchScope, and several that imported it never actually called it. The dashboard was the worst case — half its widgets were branch-aware and half silently reported academy-wide totals next to them, so the numbers on one screen were not comparable with each other. OC-Sport runs 7 active branches, so every unscoped widget was showing six other branches' data. Dashboard: scoped trainers-present, pending payslips, pending documents, low stock and expiring medical certificates, which were academy-wide. All six dashboard widgets (revenue, product revenue, subscription revenue, enrolment trends, overdue renewals, trainer dues) now filter by branch, including the raw-SQL CTEs in the revenue breakdowns. Lists and reports: events, evaluations, base prices, pricing rules, promotions, stock counts, kits, document approvals, trainers, trainer advances, payroll, essential deliveries and the financial report. Pickers: participant, group, program, facility, warehouse, product and employee selectors now offer only the active branch's records, so a transfer or invoice cannot silently reference another branch. POS and InvoiceShow used auth()->user()->branch_id directly, ignoring the switcher entirely — a user who switched branch still transacted against their home branch. Both now read the active branch. Deliberately left unscoped: parent- and guardian-facing screens, which are scoped to their own children and have no branch switcher, and single-record detail screens, which are already scoped by the record and would hide legitimately related history for participants who moved between branches. Co-Authored-By:Claude Opus 5 <noreply@anthropic.com>
f282f7bc
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| EnrollmentForm.php | ||
| EnrollmentList.php | ||
| TransferGroup.php | ||
| TransferParticipantWizard.php | ||
| WaitlistManager.php |