• Mahmoud Aglan's avatar
    Fix subscription penalty escalation to use correct per-year overdue model · 6cb14f82
    Mahmoud Aglan authored
    The old calculator applied a flat percentage by position (oldest=10%, next=50%,
    next=100%). The correct model: each year's penalty escalates based on how long
    THAT SPECIFIC year has been overdue:
    - Same year past grace (3 months): 10%
    - 1 year overdue: 50%
    - 2 years overdue: 100%
    - 3 years overdue: 200%
    - 4 years overdue: 300%
    - 5+ years: membership dropped
    
    Also adds:
    - Grace period rule (SUB_GRACE_MONTHS = 3, extended = 4 with trustees approval)
    - YEAR_4 (200%) and YEAR_5 (300%) rules in DB
    - canReinstate() method for 12-month reinstatement window
    - expireReinstatements() for permanent drop after window expires
    Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
    6cb14f82
Name
Last commit
Last update
..
Controllers Loading commit data...
Models Loading commit data...
Services Loading commit data...
Views Loading commit data...
Routes.php Loading commit data...
bootstrap.php Loading commit data...