================================================================================ DEPLOY ROLLOVER FIX NOW - ONE PAGE GUIDE ================================================================================ PROBLEM: Rolled-over loans appearing in reports (e.g., LOAN-000128) SOLUTION: Upload 6 files and restart ================================================================================ STEP 1: UPLOAD FILES (via cPanel File Manager or FTP) ================================================================================ Upload these 6 files to your production server: 1. reports/simple_reports_service.py 2. reports/comprehensive_reports.py 3. reports/views.py 4. reports/chart_service.py 5. utils/views.py 6. reports/filter_service.py (optional) ================================================================================ STEP 2: RESTART APPLICATION ================================================================================ In cPanel File Manager: - Navigate to: tmp/ - Create or edit file: restart.txt - Save (this triggers restart) OR via SSH: touch tmp/restart.txt Wait 30 seconds for restart to complete. ================================================================================ STEP 3: VERIFY FIX ================================================================================ 1. Go to: /reports/loans-due/enhanced/ 2. Search for: LOAN-000128 (or any rolled-over loan) 3. Result: Should NOT appear in the list 4. Check dashboard: - "Total Active Loans" should exclude rolled-over loans - "Loans Due Today" should exclude rolled-over loans ================================================================================ SQL VERIFICATION (Optional) ================================================================================ Run in phpMyAdmin: SELECT COUNT(*) as active_loans FROM loans WHERE status = 'active' AND is_deleted = 0 AND is_rolled_over = 0; This count should match the dashboard "Total Active Loans" ================================================================================ ROLLBACK (If Needed) ================================================================================ 1. Restore backup files 2. touch tmp/restart.txt 3. Wait 30 seconds ================================================================================ WHAT CHANGED ================================================================================ OLD: Loan.objects.filter(status='active', is_deleted=False) NEW: Loan.objects.filter( status='active', is_deleted=False, is_rolled_over=False ).exclude(status='rolled_over') ================================================================================ REPORTS FIXED ================================================================================ ✓ All dashboard metrics ✓ Loans due reports ✓ Delinquent loans reports ✓ Arrears reports ✓ Portfolio charts ✓ Admin dashboard statistics ================================================================================ NO DATABASE CHANGES REQUIRED - CODE ONLY FIX ================================================================================ Questions? Check FINAL_ROLLOVER_FIX_SUMMARY.md for complete details. ================================================================================