- 21 May, 2026 12 commits
-
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
cfgmfghmhdjkd
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
- 20 May, 2026 5 commits
-
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
- 19 May, 2026 11 commits
-
-
Mahmoud Aglan authored
Removed 12 standalone sidebar entries that belong under Membership or Sports Activity. They remain accessible via "related sections" links on the parent section pages and via direct URL. Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- TKT-003: Fix facility create view accessing array as object ($disc->id → $disc['id']) - TKT-004: Disable autoTrackAuthor on FacilityUnit model (table lacks updated_by column) - TKT-004: Fix facility edit view same array-as-object bug - TKT-005: Add national_id validation in coach registration (reject invalid IDs) - TKT-006: Skip NID validation for member-type players, auto-fill from member record - TKT-007: Fix program edit form action URL (/update suffix removed to match route) - TKT-008: Add season start/end date validation in group store and update - TKT-009: Catch duplicate schedule entry PDOException gracefully (skip duplicates) - TKT-010/011: Add "Generate Training Sessions" button+route to group show page Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
- Members paying via installments (down_payment) now enter 'pending_cheques' status instead of being immediately activated - Membership number is only assigned after ALL cheques are uploaded (1 cheque per installment month) - Dependents (spouses/children) are NOT auto-included in installment payments — they must pay addition_fee separately - New installment_cheques table stores serial, bank, date, scan file - New ChequeController + ChequeService for upload flow - Employee uploads cheque scans from installment plan page - Member show page displays pending_cheques banner with upload link - Auto-activates member once all required cheques are submitted Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
- Added all tutorial module children to sidebar menu (was only 2, now 28) - Added 60px bottom padding to sidebar-nav to prevent debug bar overlap Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
- 18 May, 2026 12 commits
-
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
-
Mahmoud Aglan authored
Pool is now a real 2D grid (rows × cols = squares). Admin sets dimensions, selects time slot from timeline strip above, then assigns squares to academies/groups/hourly/blocked/maintenance via drag selection. - New table: sa_pool_zone_bookings (zone_row × zone_col per time slot) - ALTER sa_facilities: add pool_grid_rows, pool_grid_cols - Rewritten PoolGridService with zone-based logic + copy-slot feature - Interactive view: timeline strip, 2D grid with drag/click/shift-rect select - API: state, assign, clear, update-grid, copy-slot - Seed: 4×6 grid with sample zone bookings - Fix mirror route mismatch (/sa/mirror/{id} now works) Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Lanes × time slots grid with drag selection, bulk assign (training/blocked/maintenance), bulk clear, date navigation, and real-time AJAX state loading. Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Seeds: discipline, facility (8 lanes), time brackets (5), pricing rules (80 rules across all lanes × brackets × group sizes), 4 coaches, 4 programs, 6 training groups with weekly schedules, 20 players enrolled across groups, training bookings for current week, hourly bookings, and a maintenance blackout date. Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Mahmoud Aglan authored
Column fixes across 13 controllers/models/views: - sa_coaches: name_ar → full_name_ar, status → is_active - sa_players: serial_number → registration_serial, code → registration_serial - sa_facility_units: removed non-existent is_archived references - sa_player_documents: title → file_name, original_name → file_name, uploaded_by → created_by - sa_blackout_dates: wrong table name sa_facility_blackouts → sa_blackout_dates - sa_disciplines: wrong table name disciplines → sa_disciplines - sa_attendance: added missing attendance_date, removed non-existent recorded_at - sa_player_documents: document_type medical → medical_cert, status → approval_status - card_status: not_issued → inactive, expired → revoked - player_type: removed invalid academy_player - academy_type: removed invalid partnership - gender_restriction: store NULL instead of 'mixed' - Added missing [] params to $db->select() calls Membership tutorials: 25 tutorial files covering all membership operations. Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-