• Mahmoud Aglan's avatar
    Bulletproof retroactive wizard: fix all NOT NULL violations and edge cases · b98382dd
    Mahmoud Aglan authored
    - spouses: add spouse_order, gender, classification, fallback date_of_birth
    - children: add child_order, relationship, classification, fallback date_of_birth
    - temporary_members: fallback date_of_birth, gender
    - members: phone_mobile defaults to placeholder, date_of_birth fallback
    - installment_plans: down_payment_receipt cast to string (VARCHAR column)
    - All dates go through safeDate() — rejects garbage, parses valid formats
    - All timestamps go through safeTimestamp() — never produces invalid datetime
    - financial_year '2020/2021' extracted correctly for created_at
    - bccomp amounts always cast to string to avoid type errors
    - Null-safe on every optional field — zero room for SQL errors
    Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
    b98382dd
RetroactiveMembershipService.php 36.4 KB