1. 23 Aug, 2026 2 commits
    • Mahmoud Aglan's avatar
      feat(members): integrate regulatory discounts into membership form · b86c24f6
      Mahmoud Aglan authored
      - Add regulatory_discount_id/amount/document columns to members table
      - Add eligibility type selector with conditional sections per type
      - Auto-verification for cross-branch (checks members DB) and club employee (HR)
      - Document upload for types requiring manual proof (gov, ministry, board, group)
      - AJAX eligibility check button calls /pricing/regulatory-discounts/check-eligibility
      - Creates audit trail application record on form submit (status: pending)
      - Dynamic UI: shows/hides relevant fields based on selected type
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      b86c24f6
    • Mahmoud Aglan's avatar
      feat(pricing): implement regulatory discounts (Articles 97-102, 110) · 3f42fa01
      Mahmoud Aglan authored
      Full-cycle implementation of club bylaw discount rules:
      - Art 97: Cross-branch member discounts (50% Sheraton6th Oct, 25% →Admin Capital)
      - Art 98: Government employees 50%, Ministry of Youth 62.5% at Admin Capital
      - Art 99: Ministry of Youth 25% at Sheraton/6th Oct
      - Art 100: Board of Trustees 50% + 2yr interest-free installment
      - Art 101: Ministry employees installment-only (no discount)
      - Art 102: Club employees (5+ yrs) up to 15%
      - Art 110: Group membership tiered (5-10→3%, 11-20→7%, 21+→10%)
      
      Includes: migration, seed data, model, service with eligibility engine,
      controller (CRUD + eligibility check API + application workflow),
      views (index, form, applications), routes, permissions, menu entry,
      and PricingEngine integration.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      3f42fa01
  2. 20 Aug, 2026 2 commits
    • Mahmoud Aglan's avatar
    • Mahmoud Aglan's avatar
      feat(pricing+subscriptions): multi-tier board offers + fix first-year subscription logic · cb63de72
      Mahmoud Aglan authored
      Board Offers:
      - Add board_offer_tiers table for multiple payment plans per offer
      - Each offer now supports 4 tiers: cash (10% discount), 24mo/0%, 40mo/15%, 60mo/15%
      - View shows all tiers as selectable cards with pre-calculated breakdowns
      - Controller accepts offer_tier_id and uses tier-specific terms
      - Seed populates tiers for all active board offers
      - Legacy fallback preserved when no tiers are configured
      
      Subscription Fix:
      - First-year members no longer get subscription rows (membership fee covers current FY)
      - First-year dependents no longer get subscription rows (addition fee covers current FY)
      - MembershipValidationService bypasses subscription check for first-year members
      - AutoFreezeService.checkSubscriptionBlock bypasses for first-year members
      - MembershipRulesService.canPrintCarnet bypasses for first-year members
      - SubscriptionGenerator skips first-year members/dependents entirely
      - Individual subscription pay() now redirects to payYear() (all-or-nothing family payment)
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      cb63de72
  3. 19 Aug, 2026 3 commits
  4. 18 Aug, 2026 9 commits
  5. 16 Aug, 2026 3 commits
  6. 12 Aug, 2026 16 commits
  7. 11 Aug, 2026 5 commits