[2026-02-22 20:17:49] [INFO] Test log message
[2026-02-22 20:17:49] [ERROR] Update failed: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters SQL: UPDATE users SET last_login = :last_login WHERE user_id = ?
[22-Feb-2026 20:17:49 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 20:17:49 Africa/Kigali] User found: Yes
[22-Feb-2026 20:17:49 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 20:17:50 Africa/Kigali] Password verify result: true
[2026-02-22 20:17:50] [ERROR] Update failed: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters SQL: UPDATE users SET last_login = :last_login, last_login_ip = :last_login_ip WHERE user_id = ?
[2026-02-22 20:21:18] [INFO] Test log message
[22-Feb-2026 20:21:18 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 20:21:18 Africa/Kigali] User found: Yes
[22-Feb-2026 20:21:18 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 20:21:19 Africa/Kigali] Password verify result: true
[22-Feb-2026 20:21:19 Africa/Kigali] Login successful for user: admin
[22-Feb-2026 20:21:19 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function audit_log() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php:637
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/simple-test.php(40): authenticate_user('admin', 'Admin@123', false)
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 637
[22-Feb-2026 20:25:10 Africa/Kigali] PHP Fatal error:  Cannot redeclare is_logged_in() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:496) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 625
[22-Feb-2026 20:25:14 Africa/Kigali] PHP Fatal error:  Cannot redeclare is_logged_in() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:496) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 625
[2026-02-22 20:28:07] [INFO] Test log message
[22-Feb-2026 20:28:07 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 20:28:07 Africa/Kigali] User found: Yes
[22-Feb-2026 20:28:07 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 20:28:07 Africa/Kigali] Password verify result: true
[22-Feb-2026 20:28:07 Africa/Kigali] Login successful for user: admin
[22-Feb-2026 20:28:07 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[22-Feb-2026 20:28:07 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 127.0.0.1
[22-Feb-2026 20:30:41 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 20:30:41 Africa/Kigali] User found: Yes
[22-Feb-2026 20:30:41 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 20:30:41 Africa/Kigali] Password verify result: true
[22-Feb-2026 20:30:41 Africa/Kigali] Login successful for user: admin
[22-Feb-2026 20:32:11 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function db_fetch_one() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php:554
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php(865): validate_session()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/whoami.php(7): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 554
[22-Feb-2026 20:33:22 Africa/Kigali] Login attempt - Username: cashier1
[22-Feb-2026 20:33:22 Africa/Kigali] User found: Yes
[22-Feb-2026 20:33:22 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 20:33:22 Africa/Kigali] Password verify result: true
[22-Feb-2026 20:33:22 Africa/Kigali] Login successful for user: cashier1
[22-Feb-2026 20:40:16 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 20:40:16 Africa/Kigali] User found: Yes
[22-Feb-2026 20:40:16 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 20:40:16 Africa/Kigali] Password verify result: true
[22-Feb-2026 20:40:17 Africa/Kigali] Login successful for user: admin
[22-Feb-2026 20:40:43 Africa/Kigali] Login attempt - Username: admin@ruhondo.local
[22-Feb-2026 20:40:43 Africa/Kigali] User found: No
[22-Feb-2026 20:40:48 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 20:40:48 Africa/Kigali] User found: Yes
[22-Feb-2026 20:40:48 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 20:40:48 Africa/Kigali] Password verify result: true
[22-Feb-2026 20:40:48 Africa/Kigali] Login successful for user: admin
[22-Feb-2026 20:45:18 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 20:45:18 Africa/Kigali] User found: Yes
[22-Feb-2026 20:45:18 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 20:45:19 Africa/Kigali] Password verify result: true
[22-Feb-2026 20:45:19 Africa/Kigali] Login successful for user: admin
[22-Feb-2026 20:49:01 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function get_occupancy_chart_data() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php:37
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 37
[2026-02-22 20:52:11] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 20:52:11 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:112
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(112): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(133): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(632): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(99): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 112
[2026-02-22 20:56:27] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 20:56:27] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 20:59:33] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 20:59:33] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 20:59:41] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 20:59:41] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 20:59:41] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 20:59:41] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:00:07] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:00:07] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:00:23] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:00:23] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:00:49] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:00:49] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:00:50] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:00:50] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:01:02] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:01:02] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[22-Feb-2026 21:01:15 Africa/Kigali] Login attempt - Username: cashier1
[22-Feb-2026 21:01:15 Africa/Kigali] User found: Yes
[22-Feb-2026 21:01:15 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 21:01:15 Africa/Kigali] Password verify result: true
[22-Feb-2026 21:01:15 Africa/Kigali] Login successful for user: cashier1
[2026-02-22 21:01:16] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:01:16] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:01:50] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:01:50] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[22-Feb-2026 21:02:05 Africa/Kigali] Login attempt - Username: fdagent1
[22-Feb-2026 21:02:05 Africa/Kigali] User found: Yes
[22-Feb-2026 21:02:05 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 21:02:06 Africa/Kigali] Password verify result: true
[22-Feb-2026 21:02:06 Africa/Kigali] Login successful for user: fdagent1
[2026-02-22 21:02:06] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:02:06] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:02:29] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:02:29] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:03:12] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:03:12] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:06:33] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:06:33] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:06:35] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:06:35] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:06:35] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:06:35] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:06:35] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:06:35] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:11:39] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:11:39] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:11:41] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:11:41] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:11:41] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:11:41] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:11:42] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:11:42] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:11:42] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:11:42] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:12:44] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:12:44] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:13:01] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:13:01] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:04] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:04] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:06] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:06] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:06] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:06] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:06] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:06] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:06] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:06] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:06] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:06] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:06] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:06] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:07] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:07] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:07] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:07] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:07] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:07] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:13] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:13] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:16] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:16] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:19] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:19] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:16:36] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:16:36] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:21:09] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:21:09] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[22-Feb-2026 21:24:05 Africa/Kigali] Login attempt - Username: housekeeper1
[22-Feb-2026 21:24:05 Africa/Kigali] User found: Yes
[22-Feb-2026 21:24:05 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 21:24:05 Africa/Kigali] Password verify result: true
[22-Feb-2026 21:24:06 Africa/Kigali] Login successful for user: housekeeper1
[2026-02-22 21:24:06] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:24:06] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[22-Feb-2026 21:32:36 Africa/Kigali] Login attempt - Username: fdagent1
[22-Feb-2026 21:32:36 Africa/Kigali] User found: Yes
[22-Feb-2026 21:32:36 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 21:32:36 Africa/Kigali] Password verify result: true
[22-Feb-2026 21:32:36 Africa/Kigali] Login successful for user: fdagent1
[2026-02-22 21:32:36] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:32:36] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:32:56] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:32:56] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:32:58] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:32:58] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:33:03] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:33:03] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:33:06] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:33:06] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:33:07] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:33:07] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:39:39] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:39:39] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:39:41] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:39:41] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[22-Feb-2026 21:39:58 Africa/Kigali] Login attempt - Username: cashier1
[22-Feb-2026 21:39:58 Africa/Kigali] User found: Yes
[22-Feb-2026 21:39:58 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 21:39:58 Africa/Kigali] Password verify result: true
[22-Feb-2026 21:39:58 Africa/Kigali] Login successful for user: cashier1
[2026-02-22 21:39:58] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:39:58] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:42:02] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:42:02] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:42:03] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:42:03] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:42:03] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:42:03] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:44:05] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:44:05] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:44:36] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:44:36] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:44:37] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:44:37] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:45:02] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:45:02] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 21:48:50] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
        (SELECT 
            'reservation' as type, 
            r.booking_code as reference, 
            CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
            r.created_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY r.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'payment' as type, 
            p.payment_number as reference,
            CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
            p.created_at as activity_date
         FROM payments p
         ORDER BY p.created_at DESC 
         LIMIT :limit)
        
        UNION ALL
        
        (SELECT 
            'checkin' as type, 
            r.booking_code as reference,
            CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
            r.updated_at as activity_date
         FROM reservations r
         INNER JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC 
         LIMIT :limit)
        
        ORDER BY activity_date DESC
        LIMIT :limit
    
[2026-02-22 21:48:50] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[22-Feb-2026 21:51:04 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_dashboard_stats() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php:87) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 527
[22-Feb-2026 21:56:02 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_recent_activities() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php:147) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 554
[22-Feb-2026 21:56:04 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_recent_activities() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php:147) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 554
[2026-02-22 22:03:37] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
            (SELECT 
                'reservation' as type, 
                r.booking_code as reference, 
                CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
                r.created_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             ORDER BY r.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'payment' as type, 
                p.payment_number as reference,
                CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
                p.created_at as activity_date
             FROM payments p
             ORDER BY p.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'checkin' as type, 
                r.booking_code as reference,
                CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
                r.updated_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             WHERE r.booking_status = 'checked_in'
             ORDER BY r.updated_at DESC 
             LIMIT :limit)
            
            ORDER BY activity_date DESC
            LIMIT :limit
        
[2026-02-22 22:03:37] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 22:04:38] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
            (SELECT 
                'reservation' as type, 
                r.booking_code as reference, 
                CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
                r.created_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             ORDER BY r.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'payment' as type, 
                p.payment_number as reference,
                CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
                p.created_at as activity_date
             FROM payments p
             ORDER BY p.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'checkin' as type, 
                r.booking_code as reference,
                CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
                r.updated_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             WHERE r.booking_status = 'checked_in'
             ORDER BY r.updated_at DESC 
             LIMIT :limit)
            
            ORDER BY activity_date DESC
            LIMIT :limit
        
[2026-02-22 22:04:38] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 22:04:39] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
            (SELECT 
                'reservation' as type, 
                r.booking_code as reference, 
                CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
                r.created_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             ORDER BY r.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'payment' as type, 
                p.payment_number as reference,
                CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
                p.created_at as activity_date
             FROM payments p
             ORDER BY p.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'checkin' as type, 
                r.booking_code as reference,
                CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
                r.updated_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             WHERE r.booking_status = 'checked_in'
             ORDER BY r.updated_at DESC 
             LIMIT :limit)
            
            ORDER BY activity_date DESC
            LIMIT :limit
        
[2026-02-22 22:04:39] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 22:04:49] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
            (SELECT 
                'reservation' as type, 
                r.booking_code as reference, 
                CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
                r.created_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             ORDER BY r.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'payment' as type, 
                p.payment_number as reference,
                CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
                p.created_at as activity_date
             FROM payments p
             ORDER BY p.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'checkin' as type, 
                r.booking_code as reference,
                CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
                r.updated_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             WHERE r.booking_status = 'checked_in'
             ORDER BY r.updated_at DESC 
             LIMIT :limit)
            
            ORDER BY activity_date DESC
            LIMIT :limit
        
[2026-02-22 22:04:49] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 22:04:51] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
            (SELECT 
                'reservation' as type, 
                r.booking_code as reference, 
                CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
                r.created_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             ORDER BY r.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'payment' as type, 
                p.payment_number as reference,
                CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
                p.created_at as activity_date
             FROM payments p
             ORDER BY p.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'checkin' as type, 
                r.booking_code as reference,
                CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
                r.updated_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             WHERE r.booking_status = 'checked_in'
             ORDER BY r.updated_at DESC 
             LIMIT :limit)
            
            ORDER BY activity_date DESC
            LIMIT :limit
        
[2026-02-22 22:04:51] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 22:04:55] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
            (SELECT 
                'reservation' as type, 
                r.booking_code as reference, 
                CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
                r.created_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             ORDER BY r.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'payment' as type, 
                p.payment_number as reference,
                CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
                p.created_at as activity_date
             FROM payments p
             ORDER BY p.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'checkin' as type, 
                r.booking_code as reference,
                CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
                r.updated_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             WHERE r.booking_status = 'checked_in'
             ORDER BY r.updated_at DESC 
             LIMIT :limit)
            
            ORDER BY activity_date DESC
            LIMIT :limit
        
[2026-02-22 22:04:55] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 22:08:15] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
            (SELECT 
                'reservation' as type, 
                r.booking_code as reference, 
                CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
                r.created_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             ORDER BY r.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'payment' as type, 
                p.payment_number as reference,
                CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
                p.created_at as activity_date
             FROM payments p
             ORDER BY p.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'checkin' as type, 
                r.booking_code as reference,
                CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
                r.updated_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             WHERE r.booking_status = 'checked_in'
             ORDER BY r.updated_at DESC 
             LIMIT :limit)
            
            ORDER BY activity_date DESC
            LIMIT :limit
        
[2026-02-22 22:08:15] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 22:08:19] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
            (SELECT 
                'reservation' as type, 
                r.booking_code as reference, 
                CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
                r.created_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             ORDER BY r.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'payment' as type, 
                p.payment_number as reference,
                CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
                p.created_at as activity_date
             FROM payments p
             ORDER BY p.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'checkin' as type, 
                r.booking_code as reference,
                CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
                r.updated_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             WHERE r.booking_status = 'checked_in'
             ORDER BY r.updated_at DESC 
             LIMIT :limit)
            
            ORDER BY activity_date DESC
            LIMIT :limit
        
[2026-02-22 22:08:19] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[2026-02-22 22:08:21] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
            (SELECT 
                'reservation' as type, 
                r.booking_code as reference, 
                CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
                r.created_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             ORDER BY r.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'payment' as type, 
                p.payment_number as reference,
                CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
                p.created_at as activity_date
             FROM payments p
             ORDER BY p.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'checkin' as type, 
                r.booking_code as reference,
                CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
                r.updated_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             WHERE r.booking_status = 'checked_in'
             ORDER BY r.updated_at DESC 
             LIMIT :limit)
            
            ORDER BY activity_date DESC
            LIMIT :limit
        
[2026-02-22 22:08:21] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[22-Feb-2026 22:25:19 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 22:25:19 Africa/Kigali] User found: Yes
[22-Feb-2026 22:25:19 Africa/Kigali] Stored hash: $2y$12$B2vcCGSh768W966sZhfUu.7aFfV8et.BLMciL809M9pq3oApcZ4E6
[22-Feb-2026 22:25:19 Africa/Kigali] Password verify result: true
[22-Feb-2026 22:25:20 Africa/Kigali] Login successful for user: admin
[2026-02-22 22:25:20] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:25:20 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:112
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(112): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(133): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(632): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(250): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 112
[2026-02-22 22:25:34] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:25:34 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:112
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(112): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(133): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(632): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 112
[2026-02-22 22:25:36] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:25:36 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:112
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(112): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(133): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(632): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 112
[2026-02-22 22:25:51] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:25:51 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:112
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(112): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(133): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(588): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 112
[2026-02-22 22:25:53] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:25:53 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:112
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(112): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(133): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(588): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 112
[2026-02-22 22:25:53] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:25:53 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:112
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(112): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(133): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(588): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 112
[2026-02-22 22:25:53] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:25:53 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:112
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(112): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(133): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(588): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 112
[2026-02-22 22:26:02] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:02 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[2026-02-22 22:26:03] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:03 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[2026-02-22 22:26:03] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:03 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[22-Feb-2026 22:26:18 Africa/Kigali] PHP Warning:  Constant PUBLIC_PATH already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 148
[2026-02-22 22:26:18] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:18 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[22-Feb-2026 22:26:18 Africa/Kigali] PHP Warning:  Constant PUBLIC_PATH already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 148
[2026-02-22 22:26:18] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:18 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[22-Feb-2026 22:26:19 Africa/Kigali] PHP Warning:  Constant PUBLIC_PATH already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 148
[2026-02-22 22:26:19] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:19 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[22-Feb-2026 22:26:19 Africa/Kigali] PHP Warning:  Constant PUBLIC_PATH already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 148
[2026-02-22 22:26:19] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:19 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[2026-02-22 22:26:27] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:27 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[2026-02-22 22:26:27] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:27 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[2026-02-22 22:26:27] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:27 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[2026-02-22 22:26:27] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:27 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[2026-02-22 22:26:28] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:28 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[2026-02-22 22:26:28] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:26:28 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[22-Feb-2026 22:26:48 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:26:48 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:26:48 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:26:48 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:26:48 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:26:49 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:26:49 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:27:04 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:27:04 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:27:04 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:27:04 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:27:04 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:27:04 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:27:05 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:27:05 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:27:05 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:27:05 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:27:05 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[22-Feb-2026 22:27:06 Africa/Kigali] PHP Fatal error:  Cannot redeclare get_db_connection() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:382) in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 16
[2026-02-22 22:36:30] [ERROR] Query failed: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous SQL: 
        (SELECT 'reservation' as type, booking_code as reference, 
                CONCAT('New booking from ', first_name, ' ', last_name) as description,
                created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'payment' as type, payment_number as reference,
                CONCAT('Payment of ', amount, ' received') as description,
                created_at
         FROM payments
         ORDER BY created_at DESC LIMIT :limit)
        UNION ALL
        (SELECT 'checkin' as type, booking_code as reference,
                CONCAT('Guest checked in: ', first_name, ' ', last_name) as description,
                r.updated_at as created_at
         FROM reservations r
         JOIN guests g ON r.guest_id = g.guest_id
         WHERE r.booking_status = 'checked_in'
         ORDER BY r.updated_at DESC LIMIT :limit)
        ORDER BY created_at DESC
        LIMIT :limit
    
[22-Feb-2026 22:36:30 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in field list is ambiguous in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:75
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(75): PDO->prepare('\n        (SELEC...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(96): db_query('\n        (SELEC...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(515): db_fetch_all('\n        (SELEC...', Array)
#3 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(264): get_recent_activities(10)
#4 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 75
[22-Feb-2026 22:38:52 Africa/Kigali] PHP Warning:  Undefined array key "total_rooms" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 383
[22-Feb-2026 22:38:52 Africa/Kigali] PHP Warning:  Undefined array key "revenue_month" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 461
[22-Feb-2026 22:38:52 Africa/Kigali] PHP Deprecated:  number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 241
[22-Feb-2026 22:38:52 Africa/Kigali] PHP Warning:  Undefined array key "revenue_year" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 476
[22-Feb-2026 22:38:52 Africa/Kigali] PHP Deprecated:  number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 241
[22-Feb-2026 22:38:52 Africa/Kigali] PHP Warning:  Undefined array key "total_rooms" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 605
[22-Feb-2026 22:39:36 Africa/Kigali] PHP Warning:  Undefined array key "total_rooms" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 383
[22-Feb-2026 22:39:36 Africa/Kigali] PHP Warning:  Undefined array key "revenue_month" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 461
[22-Feb-2026 22:39:36 Africa/Kigali] PHP Deprecated:  number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 241
[22-Feb-2026 22:39:36 Africa/Kigali] PHP Warning:  Undefined array key "revenue_year" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 476
[22-Feb-2026 22:39:36 Africa/Kigali] PHP Deprecated:  number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 241
[22-Feb-2026 22:39:36 Africa/Kigali] PHP Warning:  Undefined array key "total_rooms" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 605
[22-Feb-2026 22:39:36 Africa/Kigali] PHP Warning:  Undefined array key "total_rooms" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 383
[22-Feb-2026 22:39:36 Africa/Kigali] PHP Warning:  Undefined array key "revenue_month" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 461
[22-Feb-2026 22:39:36 Africa/Kigali] PHP Deprecated:  number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 241
[22-Feb-2026 22:39:36 Africa/Kigali] PHP Warning:  Undefined array key "revenue_year" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 476
[22-Feb-2026 22:39:36 Africa/Kigali] PHP Deprecated:  number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 241
[22-Feb-2026 22:39:36 Africa/Kigali] PHP Warning:  Undefined array key "total_rooms" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 605
[22-Feb-2026 22:39:37 Africa/Kigali] PHP Warning:  Undefined array key "total_rooms" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 383
[22-Feb-2026 22:39:37 Africa/Kigali] PHP Warning:  Undefined array key "revenue_month" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 461
[22-Feb-2026 22:39:37 Africa/Kigali] PHP Deprecated:  number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 241
[22-Feb-2026 22:39:37 Africa/Kigali] PHP Warning:  Undefined array key "revenue_year" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 476
[22-Feb-2026 22:39:37 Africa/Kigali] PHP Deprecated:  number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 241
[22-Feb-2026 22:39:37 Africa/Kigali] PHP Warning:  Undefined array key "total_rooms" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 605
[22-Feb-2026 22:39:37 Africa/Kigali] PHP Warning:  Undefined array key "total_rooms" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 383
[22-Feb-2026 22:39:37 Africa/Kigali] PHP Warning:  Undefined array key "revenue_month" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 461
[22-Feb-2026 22:39:37 Africa/Kigali] PHP Deprecated:  number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 241
[22-Feb-2026 22:39:37 Africa/Kigali] PHP Warning:  Undefined array key "revenue_year" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 476
[22-Feb-2026 22:39:37 Africa/Kigali] PHP Deprecated:  number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 241
[22-Feb-2026 22:39:37 Africa/Kigali] PHP Warning:  Undefined array key "total_rooms" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 605
[22-Feb-2026 22:39:40 Africa/Kigali] PHP Warning:  Undefined array key "total_rooms" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 383
[22-Feb-2026 22:39:40 Africa/Kigali] PHP Warning:  Undefined array key "revenue_month" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 461
[22-Feb-2026 22:39:40 Africa/Kigali] PHP Deprecated:  number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 241
[22-Feb-2026 22:39:40 Africa/Kigali] PHP Warning:  Undefined array key "revenue_year" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 476
[22-Feb-2026 22:39:40 Africa/Kigali] PHP Deprecated:  number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 241
[22-Feb-2026 22:39:40 Africa/Kigali] PHP Warning:  Undefined array key "total_rooms" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php on line 605
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  Constant BASE_PATH already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 51
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  mkdir(): Permission denied in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 430
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  mkdir(): Permission denied in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 430
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  mkdir(): Permission denied in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 430
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  mkdir(): Permission denied in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 430
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  mkdir(): Permission denied in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 430
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  mkdir(): Permission denied in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 436
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  file_put_contents(/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/uploads/.htaccess): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 443
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  file_put_contents(/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/uploads/ids/.htaccess): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 443
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  file_put_contents(/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/uploads/room_images/.htaccess): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 443
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  file_put_contents(/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/uploads/product_images/.htaccess): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 443
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  file_put_contents(/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/uploads/invoices/.htaccess): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 443
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Warning:  require_once(/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/config/database.php): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/test_db.php on line 24
[22-Feb-2026 22:53:36 Africa/Kigali] PHP Fatal error:  Uncaught Error: Failed opening required '/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/config/database.php' (include_path='.:/Applications/XAMPP/xamppfiles/lib/php') in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/test_db.php:24
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/test_db.php on line 24
[22-Feb-2026 23:03:07 Africa/Kigali] PHP Warning:  Constant BASE_PATH already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 51
[2026-02-22 23:03:07] [INFO] Database connection test completed
[22-Feb-2026 23:08:09 Africa/Kigali] PHP Warning:  require_once(/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/../config/init.php): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 3
[22-Feb-2026 23:08:09 Africa/Kigali] PHP Fatal error:  Uncaught Error: Failed opening required '/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/../config/init.php' (include_path='.:/Applications/XAMPP/xamppfiles/lib/php') in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php:3
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/login.php(13): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 3
[22-Feb-2026 23:08:10 Africa/Kigali] PHP Warning:  require_once(/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/../config/init.php): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 3
[22-Feb-2026 23:08:10 Africa/Kigali] PHP Fatal error:  Uncaught Error: Failed opening required '/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/../config/init.php' (include_path='.:/Applications/XAMPP/xamppfiles/lib/php') in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php:3
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/login.php(13): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 3
[22-Feb-2026 23:08:10 Africa/Kigali] PHP Warning:  require_once(/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/../config/init.php): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 3
[22-Feb-2026 23:08:10 Africa/Kigali] PHP Fatal error:  Uncaught Error: Failed opening required '/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/../config/init.php' (include_path='.:/Applications/XAMPP/xamppfiles/lib/php') in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php:3
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/login.php(13): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 3
[22-Feb-2026 23:08:13 Africa/Kigali] PHP Warning:  require_once(/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/../config/init.php): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 3
[22-Feb-2026 23:08:13 Africa/Kigali] PHP Fatal error:  Uncaught Error: Failed opening required '/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/../config/init.php' (include_path='.:/Applications/XAMPP/xamppfiles/lib/php') in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php:3
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/login.php(13): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 3
[22-Feb-2026 23:12:28 Africa/Kigali] PHP Warning:  Constant BASE_PATH already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 51
[22-Feb-2026 23:12:28 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function is_logged_in() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php:7
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/login.php(27): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 7
[22-Feb-2026 23:12:31 Africa/Kigali] PHP Warning:  Constant BASE_PATH already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 51
[22-Feb-2026 23:12:31 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function is_logged_in() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php:7
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/login.php(27): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 7
[22-Feb-2026 23:12:33 Africa/Kigali] PHP Warning:  Constant BASE_PATH already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 51
[22-Feb-2026 23:12:33 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function is_logged_in() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php:7
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/login.php(27): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php on line 7
[22-Feb-2026 23:15:15 Africa/Kigali] PHP Warning:  Constant BASE_PATH already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 51
[22-Feb-2026 23:15:15 Africa/Kigali] PHP Warning:  Constant NOTIFICATION_INFO already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/constants.php on line 399
[22-Feb-2026 23:15:15 Africa/Kigali] PHP Warning:  Constant AUDIT_LOGIN already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/constants.php on line 416
[22-Feb-2026 23:15:15 Africa/Kigali] PHP Warning:  Constant AUDIT_LOGOUT already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/constants.php on line 417
[22-Feb-2026 23:15:15 Africa/Kigali] PHP Warning:  Constant AUDIT_LOGIN_FAILED already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/constants.php on line 418
[22-Feb-2026 23:18:17 Africa/Kigali] PHP Warning:  Constant BASE_PATH already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 51
[22-Feb-2026 23:18:17 Africa/Kigali] PHP Warning:  Constant NOTIFICATION_INFO already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/constants.php on line 399
[22-Feb-2026 23:18:17 Africa/Kigali] PHP Warning:  Constant AUDIT_LOGIN already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/constants.php on line 416
[22-Feb-2026 23:18:17 Africa/Kigali] PHP Warning:  Constant AUDIT_LOGOUT already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/constants.php on line 417
[22-Feb-2026 23:18:17 Africa/Kigali] PHP Warning:  Constant AUDIT_LOGIN_FAILED already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/constants.php on line 418
[22-Feb-2026 23:21:12 Africa/Kigali] PHP Warning:  Constant BASE_PATH already defined in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 51
[22-Feb-2026 23:22:55 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 23:22:55 Africa/Kigali] User found: Yes
[2026-02-22 23:22:56] [ERROR] Update failed: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters SQL: UPDATE users SET last_login = :last_login, last_login_ip = :last_login_ip WHERE user_id = ?
[22-Feb-2026 23:22:56 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:149
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(149): PDO->prepare('UPDATE users SE...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/auth.php(331): db_update('users', Array, 'user_id = ?', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/login.php(93): authenticate_user('admin', 'Admin@123', false)
#3 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 149
[22-Feb-2026 23:26:06 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 23:26:06 Africa/Kigali] User found: Yes
[22-Feb-2026 23:26:07 Africa/Kigali] Login successful for user: admin
[2026-02-22 23:26:07] [INFO] Successful login for user: admin
[22-Feb-2026 23:27:28 Africa/Kigali] Validating session on init
[22-Feb-2026 23:27:29 Africa/Kigali] Validating session on init
[22-Feb-2026 23:27:39 Africa/Kigali] PHP Fatal error:  Uncaught Error: Undefined constant "BASE_PATH" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:77
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(10): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 77
[22-Feb-2026 23:27:59 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 23:27:59 Africa/Kigali] User found: Yes
[22-Feb-2026 23:27:59 Africa/Kigali] Login successful for user: admin
[2026-02-22 23:27:59] [INFO] Successful login for user: admin
[22-Feb-2026 23:29:38 Africa/Kigali] Validating session on init
[22-Feb-2026 23:29:50 Africa/Kigali] Login attempt - Username: frontdesk
[22-Feb-2026 23:29:50 Africa/Kigali] User found: No
[2026-02-22 23:29:50] [WARNING] Login failed for user: frontdesk - invalid_credentials
[22-Feb-2026 23:29:57 Africa/Kigali] Login attempt - Username: cashier1
[22-Feb-2026 23:29:57 Africa/Kigali] User found: Yes
[22-Feb-2026 23:29:57 Africa/Kigali] Login successful for user: cashier1
[2026-02-22 23:29:57] [INFO] Successful login for user: cashier1
[22-Feb-2026 23:30:00 Africa/Kigali] Validating session on init
[22-Feb-2026 23:30:05 Africa/Kigali] PHP Fatal error:  Uncaught Error: Undefined constant "BASE_PATH" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php:77
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(10): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 77
[22-Feb-2026 23:33:47 Africa/Kigali] Validating session on init
[22-Feb-2026 23:33:47 Africa/Kigali] Validating session on init
[22-Feb-2026 23:33:47 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:33:47 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:33:47 Africa/Kigali] [ERROR] Query failed: SQLSTATE[HY093]: Invalid parameter number SQL: 
            (SELECT 
                'reservation' as type, 
                r.booking_code as reference, 
                CONCAT('New booking from ', g.first_name, ' ', g.last_name) as description,
                r.created_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             ORDER BY r.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'payment' as type, 
                p.payment_number as reference,
                CONCAT('Payment of ', FORMAT(p.amount, 0), ' received') as description,
                p.created_at as activity_date
             FROM payments p
             ORDER BY p.created_at DESC 
             LIMIT :limit)
            
            UNION ALL
            
            (SELECT 
                'checkin' as type, 
                r.booking_code as reference,
                CONCAT('Guest checked in: ', g.first_name, ' ', g.last_name) as description,
                r.updated_at as activity_date
             FROM reservations r
             INNER JOIN guests g ON r.guest_id = g.guest_id
             WHERE r.booking_status = 'checked_in'
             ORDER BY r.updated_at DESC 
             LIMIT :limit)
            
            ORDER BY activity_date DESC
            LIMIT :limit
        
[22-Feb-2026 23:33:47 Africa/Kigali] [ERROR] Error in get_recent_activities: SQLSTATE[HY093]: Invalid parameter number
[22-Feb-2026 23:33:47 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function escape_html() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php:6
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(376): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php on line 6
[22-Feb-2026 23:39:07 Africa/Kigali] Validating session on init
[22-Feb-2026 23:39:07 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:39:07 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:39:07 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_meta_tags() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php:9
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php on line 9
[22-Feb-2026 23:39:10 Africa/Kigali] Validating session on init
[22-Feb-2026 23:39:10 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:39:10 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:39:10 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_meta_tags() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php:9
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php on line 9
[22-Feb-2026 23:42:19 Africa/Kigali] Validating session on init
[22-Feb-2026 23:42:19 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:42:19 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:42:19 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function get_unread_notification_count() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/topbar.php:10
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(81): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/topbar.php on line 10
[22-Feb-2026 23:43:59 Africa/Kigali] Validating session on init
[22-Feb-2026 23:43:59 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:43:59 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:43:59 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function get_unread_notification_count() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/topbar.php:10
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(81): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/topbar.php on line 10
[22-Feb-2026 23:46:29 Africa/Kigali] Validating session on init
[22-Feb-2026 23:46:29 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:46:29 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:46:29 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:49:16 Africa/Kigali] Validating session on init
[22-Feb-2026 23:49:16 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard_debug.php(193): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:49:21 Africa/Kigali] Validating session on init
[22-Feb-2026 23:49:21 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard_debug.php(193): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:50:13 Africa/Kigali] Validating session on init
[22-Feb-2026 23:50:13 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:50:13 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:53:18 Africa/Kigali] Validating session on init
[22-Feb-2026 23:53:18 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:53:18 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:53:18 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:55:53 Africa/Kigali] Validating session on init
[22-Feb-2026 23:55:53 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:55:53 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:55:53 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:55:53 Africa/Kigali] Validating session on init
[22-Feb-2026 23:55:53 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:55:53 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:55:53 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:55:53 Africa/Kigali] Validating session on init
[22-Feb-2026 23:55:53 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:55:53 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:55:53 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:55:54 Africa/Kigali] Validating session on init
[22-Feb-2026 23:55:54 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:55:54 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:55:54 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:55:54 Africa/Kigali] Validating session on init
[22-Feb-2026 23:55:54 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:55:54 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:55:54 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:55:54 Africa/Kigali] Validating session on init
[22-Feb-2026 23:55:54 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:55:54 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:55:54 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:55:54 Africa/Kigali] Validating session on init
[22-Feb-2026 23:55:54 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:55:54 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:55:54 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:55:54 Africa/Kigali] Validating session on init
[22-Feb-2026 23:55:54 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:55:54 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:55:54 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:55:54 Africa/Kigali] Validating session on init
[22-Feb-2026 23:55:54 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:55:54 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:55:54 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:57:44 Africa/Kigali] Validating session on init
[22-Feb-2026 23:57:44 Africa/Kigali] Validating session on init
[22-Feb-2026 23:57:44 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:57:44 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:57:44 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:58:05 Africa/Kigali] Login attempt - Username: cashier
[22-Feb-2026 23:58:05 Africa/Kigali] User found: No
[22-Feb-2026 23:58:05 Africa/Kigali] AUDIT: User:  | Action: login_failed | Table: users
[22-Feb-2026 23:58:05 Africa/Kigali] [WARNING] Login failed for user: cashier - invalid_credentials
[22-Feb-2026 23:58:11 Africa/Kigali] Login attempt - Username: housekeeping
[22-Feb-2026 23:58:11 Africa/Kigali] User found: No
[22-Feb-2026 23:58:11 Africa/Kigali] AUDIT: User:  | Action: login_failed | Table: users
[22-Feb-2026 23:58:11 Africa/Kigali] [WARNING] Login failed for user: housekeeping - invalid_credentials
[22-Feb-2026 23:58:15 Africa/Kigali] Login attempt - Username: frontdesk
[22-Feb-2026 23:58:15 Africa/Kigali] User found: No
[22-Feb-2026 23:58:15 Africa/Kigali] AUDIT: User:  | Action: login_failed | Table: users
[22-Feb-2026 23:58:15 Africa/Kigali] [WARNING] Login failed for user: frontdesk - invalid_credentials
[22-Feb-2026 23:58:22 Africa/Kigali] Login attempt - Username: frontdesk1
[22-Feb-2026 23:58:22 Africa/Kigali] User found: No
[22-Feb-2026 23:58:22 Africa/Kigali] AUDIT: User:  | Action: login_failed | Table: users
[22-Feb-2026 23:58:22 Africa/Kigali] [WARNING] Login failed for user: frontdesk1 - invalid_credentials
[22-Feb-2026 23:58:30 Africa/Kigali] Login attempt - Username: cashier1
[22-Feb-2026 23:58:30 Africa/Kigali] User found: Yes
[22-Feb-2026 23:58:30 Africa/Kigali] Login successful for user: cashier1
[22-Feb-2026 23:58:30 Africa/Kigali] AUDIT: User: 7 | Action: login | Table: users | Record: 7
[22-Feb-2026 23:58:30 Africa/Kigali] NOTIFICATION: User 7 - New Login: You logged in from 127.0.0.1
[22-Feb-2026 23:58:30 Africa/Kigali] [INFO] Successful login for user: cashier1
[22-Feb-2026 23:58:37 Africa/Kigali] Validating session on init
[22-Feb-2026 23:58:37 Africa/Kigali] Validating session on init
[22-Feb-2026 23:58:37 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:58:37 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:58:37 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:58:39 Africa/Kigali] Validating session on init
[22-Feb-2026 23:58:39 Africa/Kigali] Validating session on init
[22-Feb-2026 23:58:39 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:58:39 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:58:39 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:58:53 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 23:58:53 Africa/Kigali] User found: Yes
[22-Feb-2026 23:58:53 Africa/Kigali] Login successful for user: admin
[22-Feb-2026 23:58:53 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[22-Feb-2026 23:58:53 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 127.0.0.1
[22-Feb-2026 23:58:53 Africa/Kigali] [INFO] Successful login for user: admin
[22-Feb-2026 23:59:05 Africa/Kigali] Validating session on init
[22-Feb-2026 23:59:05 Africa/Kigali] Validating session on init
[22-Feb-2026 23:59:05 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:59:05 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:59:05 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:59:09 Africa/Kigali] Validating session on init
[22-Feb-2026 23:59:09 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:59:09 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:59:09 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[22-Feb-2026 23:59:42 Africa/Kigali] Login attempt - Username: admin
[22-Feb-2026 23:59:42 Africa/Kigali] User found: Yes
[22-Feb-2026 23:59:42 Africa/Kigali] Login successful for user: admin
[22-Feb-2026 23:59:42 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[22-Feb-2026 23:59:42 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 127.0.0.1
[22-Feb-2026 23:59:42 Africa/Kigali] [INFO] Successful login for user: admin
[22-Feb-2026 23:59:48 Africa/Kigali] Validating session on init
[22-Feb-2026 23:59:48 Africa/Kigali] Validating session on init
[22-Feb-2026 23:59:48 Africa/Kigali] require_auth called - Checking session
[22-Feb-2026 23:59:48 Africa/Kigali] Session validated successfully
[22-Feb-2026 23:59:48 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[23-Feb-2026 00:00:20 Africa/Kigali] Validating session on init
[23-Feb-2026 00:00:20 Africa/Kigali] Validating session on init
[23-Feb-2026 00:00:20 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:00:20 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:00:20 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[23-Feb-2026 00:01:03 Africa/Kigali] Login attempt - Username: admin
[23-Feb-2026 00:01:03 Africa/Kigali] User found: Yes
[23-Feb-2026 00:01:04 Africa/Kigali] Login successful for user: admin
[23-Feb-2026 00:01:04 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[23-Feb-2026 00:01:04 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 127.0.0.1
[23-Feb-2026 00:01:04 Africa/Kigali] [INFO] Successful login for user: admin
[23-Feb-2026 00:09:07 Africa/Kigali] Validating session on init
[23-Feb-2026 00:09:07 Africa/Kigali] Validating session on init
[23-Feb-2026 00:09:07 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:09:07 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:09:07 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[23-Feb-2026 00:09:21 Africa/Kigali] Login attempt - Username: admin
[23-Feb-2026 00:09:21 Africa/Kigali] User found: Yes
[23-Feb-2026 00:09:21 Africa/Kigali] Login successful for user: admin
[23-Feb-2026 00:09:21 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[23-Feb-2026 00:09:21 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 127.0.0.1
[23-Feb-2026 00:09:21 Africa/Kigali] [INFO] Successful login for user: admin
[23-Feb-2026 00:09:21 Africa/Kigali] Validating session on init
[23-Feb-2026 00:09:21 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:09:21 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:09:21 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(454): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[23-Feb-2026 00:10:51 Africa/Kigali] Validating session on init
[23-Feb-2026 00:10:51 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard_debug.php(193): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[23-Feb-2026 00:13:15 Africa/Kigali] Validating session on init
[23-Feb-2026 00:13:15 Africa/Kigali] Dashboard accessed - Logged in: Yes
[23-Feb-2026 00:13:15 Africa/Kigali] Session data: Array
(
    [csrf_token] => c28478ce26ccb6a9d727de7d01093002fb40b16b7930574a36c07e37f0ddfe9b
    [user_id] => 2
    [username] => admin
    [user_role] => 2
    [login_time] => 1771798395
    [ip_address] => 127.0.0.1
    [user_agent] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36
    [authenticated] => 1
    [flash_messages] => Array
        (
        )

    [csrf_tokens] => Array
        (
            [c32c842ba09a39f37e86b76fe754ea6c950db5106f7faa2bba8fcb05c3e23bb1] => 1771798251
        )

)

[23-Feb-2026 00:13:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:13:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:13:15 Africa/Kigali] Dashboard accessed - Logged in: Yes
[23-Feb-2026 00:13:15 Africa/Kigali] Session data: Array
(
    [csrf_token] => c28478ce26ccb6a9d727de7d01093002fb40b16b7930574a36c07e37f0ddfe9b
    [user_id] => 2
    [username] => admin
    [user_role] => 2
    [login_time] => 1771798395
    [ip_address] => 127.0.0.1
    [user_agent] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36
    [authenticated] => 1
    [flash_messages] => Array
        (
        )

    [csrf_tokens] => Array
        (
            [c32c842ba09a39f37e86b76fe754ea6c950db5106f7faa2bba8fcb05c3e23bb1] => 1771798251
        )

)

[23-Feb-2026 00:13:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:13:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:18:33 Africa/Kigali] Validating session on init
[23-Feb-2026 00:18:33 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:18:33 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:18:34 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(456): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[23-Feb-2026 00:18:37 Africa/Kigali] Validating session on init
[23-Feb-2026 00:18:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:18:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:18:37 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(456): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[23-Feb-2026 00:21:40 Africa/Kigali] Validating session on init
[23-Feb-2026 00:21:40 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:21:40 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:21:40 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function assets_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:103
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1194): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 103
[23-Feb-2026 00:22:36 Africa/Kigali] Validating session on init
[23-Feb-2026 00:22:36 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:22:36 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:22:36 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(459): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[23-Feb-2026 00:22:46 Africa/Kigali] Validating session on init
[23-Feb-2026 00:22:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:22:46 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:22:46 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(92): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(459): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[23-Feb-2026 00:25:17 Africa/Kigali] Validating session on init
[23-Feb-2026 00:25:17 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:25:17 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:25:17 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_meta_tags() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php:9
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(459): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php on line 9
[23-Feb-2026 00:26:15 Africa/Kigali] Validating session on init
[23-Feb-2026 00:26:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:26:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:26:15 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_meta_tags() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php:9
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(459): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php on line 9
[23-Feb-2026 00:26:48 Africa/Kigali] Validating session on init
[23-Feb-2026 00:26:48 Africa/Kigali] Validating session on init
[23-Feb-2026 00:26:48 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:26:48 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:26:48 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_meta_tags() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php:9
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(459): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php on line 9
[23-Feb-2026 00:32:04 Africa/Kigali] Validating session on init
[23-Feb-2026 00:32:04 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:32:04 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:32:04 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(248): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(463): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[23-Feb-2026 00:32:24 Africa/Kigali] Validating session on init
[23-Feb-2026 00:32:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:32:24 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:32:24 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(248): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(463): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[23-Feb-2026 00:34:52 Africa/Kigali] Validating session on init
[23-Feb-2026 00:34:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:34:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:36:07 Africa/Kigali] Validating session on init
[23-Feb-2026 00:36:07 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:36:07 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:36:07 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function base_url() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php:18
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/header.php(248): include()
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(463): require_once('/Applications/X...')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/sidebar.php on line 18
[23-Feb-2026 00:38:01 Africa/Kigali] Validating session on init
[23-Feb-2026 00:38:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:38:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:46:04 Africa/Kigali] Validating session on init
[23-Feb-2026 00:46:04 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:46:04 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:46:15 Africa/Kigali] Validating session on init
[23-Feb-2026 00:46:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:46:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:46:52 Africa/Kigali] Validating session on init
[23-Feb-2026 00:46:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:46:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:47:13 Africa/Kigali] Login attempt - Username: admin
[23-Feb-2026 00:47:13 Africa/Kigali] User found: Yes
[23-Feb-2026 00:47:13 Africa/Kigali] Login successful for user: admin
[23-Feb-2026 00:47:13 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[23-Feb-2026 00:47:13 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 127.0.0.1
[2026-02-23 00:47:13] [INFO] Successful login for user: admin
[23-Feb-2026 00:47:13 Africa/Kigali] Validating session on init
[23-Feb-2026 00:47:13 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:47:13 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:09 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:09 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:09 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:09 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1190): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:10 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:10 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:10 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:10 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1190): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:10 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:10 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:10 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:10 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1190): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:10 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:10 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:10 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:10 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1190): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:10 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:10 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:10 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:10 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1190): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:11 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:11 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:11 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:11 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1190): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:14 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:14 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:14 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:14 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1190): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:14 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:14 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:14 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:14 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1190): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:37 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:37 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1189): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:37 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:37 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1189): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:37 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:37 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1189): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:37 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:37 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1189): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:37 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:38 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1189): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:38 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:38 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:38 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:38 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1189): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:38 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:38 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:38 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:38 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1189): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:40 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:40 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:40 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:40 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1189): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:47 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:47 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:47 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:47 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1189): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:47 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:47 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:47 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:47 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1189): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:47 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:47 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:47 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:48:47 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1189): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:48:58 Africa/Kigali] Validating session on init
[23-Feb-2026 00:48:58 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:48:58 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:49:03 Africa/Kigali] Validating session on init
[23-Feb-2026 00:49:03 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:49:03 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:49:08 Africa/Kigali] Validating session on init
[23-Feb-2026 00:49:20 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:49:20 Africa/Kigali] validate_session failed, checking remember token
[23-Feb-2026 00:49:20 Africa/Kigali] No valid session or remember token - redirecting to login
[23-Feb-2026 00:49:37 Africa/Kigali] Login attempt - Username: cashier
[23-Feb-2026 00:49:37 Africa/Kigali] User found: No
[23-Feb-2026 00:49:37 Africa/Kigali] AUDIT: User:  | Action: login_failed | Table: users
[2026-02-23 00:49:37] [WARNING] Login failed for user: cashier - invalid_credentials
[23-Feb-2026 00:49:43 Africa/Kigali] Login attempt - Username: frontdesk
[23-Feb-2026 00:49:43 Africa/Kigali] User found: No
[23-Feb-2026 00:49:43 Africa/Kigali] AUDIT: User:  | Action: login_failed | Table: users
[2026-02-23 00:49:43] [WARNING] Login failed for user: frontdesk - invalid_credentials
[23-Feb-2026 00:49:49 Africa/Kigali] Login attempt - Username: admin
[23-Feb-2026 00:49:49 Africa/Kigali] User found: Yes
[23-Feb-2026 00:49:49 Africa/Kigali] Login successful for user: admin
[23-Feb-2026 00:49:49 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[23-Feb-2026 00:49:49 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 127.0.0.1
[2026-02-23 00:49:49] [INFO] Successful login for user: admin
[23-Feb-2026 00:49:49 Africa/Kigali] Validating session on init
[23-Feb-2026 00:49:49 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:49:49 Africa/Kigali] Session validated successfully
[23-Feb-2026 00:49:49 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function csrf_token() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php:127
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/public/dashboard.php(1189): require_once()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/views/partials/footer.php on line 127
[23-Feb-2026 00:57:46 Africa/Kigali] Validating session on init
[23-Feb-2026 00:57:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 00:57:46 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:03:26 Africa/Kigali] Validating session on init
[23-Feb-2026 01:03:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:03:26 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:09:51 Africa/Kigali] Validating session on init
[23-Feb-2026 01:09:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:09:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:09:54 Africa/Kigali] Validating session on init
[23-Feb-2026 01:09:54 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:09:54 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:10:00 Africa/Kigali] Validating session on init
[23-Feb-2026 01:10:05 Africa/Kigali] Validating session on init
[23-Feb-2026 01:21:32 Africa/Kigali] Validating session on init
[23-Feb-2026 01:21:32 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:21:32 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:21:32 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:21:32 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:21:32 Africa/Kigali] AUDIT: User: 2 | Action: access_denied
[23-Feb-2026 01:24:22 Africa/Kigali] Validating session on init
[23-Feb-2026 01:24:22 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:24:22 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:24:26 Africa/Kigali] Validating session on init
[23-Feb-2026 01:24:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:24:26 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:24:29 Africa/Kigali] Validating session on init
[23-Feb-2026 01:24:29 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:24:29 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:24:29 Africa/Kigali] User doesn't have POS permission, but access granted temporarily
[2026-02-23 01:24:29] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND (payment_method = 'cash' OR payment_method LIKE '%cash%')
    
[23-Feb-2026 01:24:29 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 01:27:57 Africa/Kigali] Validating session on init
[23-Feb-2026 01:27:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:27:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:28:37 Africa/Kigali] Validating session on init
[23-Feb-2026 01:28:38 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:28:38 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:28:38 Africa/Kigali] AUDIT: User: 2 | Action: open_shift | Table: pos_shifts | Record: 2
[23-Feb-2026 01:32:46 Africa/Kigali] Validating session on init
[23-Feb-2026 01:32:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:32:46 Africa/Kigali] Session validated successfully
[2026-02-23 01:32:46] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
        SELECT 
            s.payment_method,
            COUNT(*) as transaction_count,
            COALESCE(SUM(s.total_amount), 0) as total
        FROM pos_sales s
        WHERE s.shift_id = ? AND s.payment_status = 'completed'
        GROUP BY s.payment_method
    
[23-Feb-2026 01:32:46 Africa/Kigali] Error fetching sales summary: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 01:33:09 Africa/Kigali] Validating session on init
[23-Feb-2026 01:33:09 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:33:09 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:33:09 Africa/Kigali] User doesn't have POS permission, but access granted temporarily
[2026-02-23 01:33:09] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND (payment_method = 'cash' OR payment_method LIKE '%cash%')
    
[23-Feb-2026 01:33:09 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 01:43:34 Africa/Kigali] Validating session on init
[23-Feb-2026 01:43:34 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:43:34 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:49:31 Africa/Kigali] Validating session on init
[23-Feb-2026 01:49:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:49:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:53:40 Africa/Kigali] Validating session on init
[23-Feb-2026 01:53:40 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:53:40 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:54:24 Africa/Kigali] Validating session on init
[23-Feb-2026 01:54:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:54:24 Africa/Kigali] Session validated successfully
[2026-02-23 01:54:24] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 01:54:24 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 01:54:26 Africa/Kigali] Validating session on init
[23-Feb-2026 01:54:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:54:26 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:56:02 Africa/Kigali] Login attempt - Username: superadmin
[23-Feb-2026 01:56:02 Africa/Kigali] User found: Yes
[23-Feb-2026 01:56:02 Africa/Kigali] Login successful for user: superadmin
[23-Feb-2026 01:56:02 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[23-Feb-2026 01:56:02 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-23 01:56:02] [INFO] Successful login for user: superadmin
[23-Feb-2026 01:56:02 Africa/Kigali] Validating session on init
[23-Feb-2026 01:56:02 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:56:02 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:56:12 Africa/Kigali] Validating session on init
[23-Feb-2026 01:56:12 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:56:12 Africa/Kigali] Session validated successfully
[2026-02-23 01:56:12] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 01:56:12 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 01:56:20 Africa/Kigali] Validating session on init
[23-Feb-2026 01:56:20 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:56:20 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:57:05 Africa/Kigali] Validating session on init
[23-Feb-2026 01:57:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:57:05 Africa/Kigali] Session validated successfully
[2026-02-23 01:57:05] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 01:57:05 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 01:57:16 Africa/Kigali] Validating session on init
[23-Feb-2026 01:57:16 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:57:16 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:57:30 Africa/Kigali] Validating session on init
[23-Feb-2026 01:57:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:57:30 Africa/Kigali] Session validated successfully
[2026-02-23 01:57:30] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 01:57:30 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 01:57:32 Africa/Kigali] Validating session on init
[23-Feb-2026 01:57:32 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:57:32 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:57:39 Africa/Kigali] Validating session on init
[23-Feb-2026 01:57:39 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:57:39 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:58:27 Africa/Kigali] Validating session on init
[23-Feb-2026 01:58:27 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:58:27 Africa/Kigali] Session validated successfully
[23-Feb-2026 01:58:27 Africa/Kigali] AUDIT: User: 1 | Action: open_shift | Table: pos_shifts | Record: 3
[23-Feb-2026 01:58:27 Africa/Kigali] Validating session on init
[23-Feb-2026 01:58:27 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:58:27 Africa/Kigali] Session validated successfully
[2026-02-23 01:58:27] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
        SELECT 
            s.payment_method,
            COUNT(*) as transaction_count,
            COALESCE(SUM(s.total_amount), 0) as total
        FROM pos_sales s
        WHERE s.shift_id = ? AND s.payment_status = 'completed'
        GROUP BY s.payment_method
    
[23-Feb-2026 01:58:27 Africa/Kigali] Error fetching sales summary: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 01:59:44 Africa/Kigali] Validating session on init
[23-Feb-2026 01:59:44 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 01:59:44 Africa/Kigali] Session validated successfully
[2026-02-23 01:59:44] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
        SELECT 
            s.payment_method,
            COUNT(*) as transaction_count,
            COALESCE(SUM(s.total_amount), 0) as total
        FROM pos_sales s
        WHERE s.shift_id = ? AND s.payment_status = 'completed'
        GROUP BY s.payment_method
    
[23-Feb-2026 01:59:44 Africa/Kigali] Error fetching sales summary: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 02:00:07 Africa/Kigali] Validating session on init
[23-Feb-2026 02:00:07 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:00:07 Africa/Kigali] Session validated successfully
[2026-02-23 02:00:07] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 02:00:07 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 02:00:23 Africa/Kigali] Validating session on init
[23-Feb-2026 02:00:23 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function get_db_size() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php:35
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php on line 35
[23-Feb-2026 02:05:24 Africa/Kigali] Validating session on init
[23-Feb-2026 02:05:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:05:24 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:05:35 Africa/Kigali] Validating session on init
[23-Feb-2026 02:05:35 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:05:35 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:07:05 Africa/Kigali] Validating session on init
[23-Feb-2026 02:07:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:07:05 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:19:30 Africa/Kigali] Validating session on init
[23-Feb-2026 02:19:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:19:30 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:19:46 Africa/Kigali] Validating session on init
[23-Feb-2026 02:19:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:19:46 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:23:02 Africa/Kigali] Validating session on init
[23-Feb-2026 02:23:02 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:23:02 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:28:09 Africa/Kigali] Validating session on init
[23-Feb-2026 02:28:09 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:28:09 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:28:11 Africa/Kigali] Validating session on init
[23-Feb-2026 02:28:11 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:28:11 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:28:13 Africa/Kigali] Validating session on init
[23-Feb-2026 02:28:13 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:28:13 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:28:15 Africa/Kigali] Validating session on init
[23-Feb-2026 02:28:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:28:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:28:16 Africa/Kigali] Validating session on init
[23-Feb-2026 02:28:16 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:28:16 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:28:21 Africa/Kigali] Validating session on init
[23-Feb-2026 02:28:21 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:28:21 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:29:50 Africa/Kigali] Validating session on init
[23-Feb-2026 02:29:50 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:29:50 Africa/Kigali] Session validated successfully
[23-Feb-2026 02:30:51 Africa/Kigali] Validating session on init
[23-Feb-2026 02:30:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:30:51 Africa/Kigali] Session validated successfully
[2026-02-23 02:30:51] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 02:30:51 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 02:34:01 Africa/Kigali] Validating session on init
[23-Feb-2026 02:34:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 02:34:01 Africa/Kigali] Session validated successfully
[2026-02-23 02:34:01] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 02:34:01 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 08:18:35 Africa/Kigali] Login attempt - Username: superadmin
[23-Feb-2026 08:18:35 Africa/Kigali] User found: Yes
[23-Feb-2026 08:18:35 Africa/Kigali] Login successful for user: superadmin
[23-Feb-2026 08:18:35 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[23-Feb-2026 08:18:35 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-23 08:18:35] [INFO] Successful login for user: superadmin
[23-Feb-2026 08:18:35 Africa/Kigali] Validating session on init
[23-Feb-2026 08:18:35 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:18:35 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:19:25 Africa/Kigali] Validating session on init
[23-Feb-2026 08:19:25 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:19:25 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:19:59 Africa/Kigali] Validating session on init
[23-Feb-2026 08:19:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:19:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:20:22 Africa/Kigali] Validating session on init
[23-Feb-2026 08:20:22 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:20:22 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:36:04 Africa/Kigali] Validating session on init
[23-Feb-2026 08:36:04 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:36:04 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:39:58 Africa/Kigali] Validating session on init
[23-Feb-2026 08:39:58 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:39:58 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:40:26 Africa/Kigali] Validating session on init
[23-Feb-2026 08:40:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:40:26 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:40:35 Africa/Kigali] Validating session on init
[23-Feb-2026 08:40:35 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:40:35 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:40:37 Africa/Kigali] Validating session on init
[23-Feb-2026 08:40:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:40:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:41:16 Africa/Kigali] Validating session on init
[23-Feb-2026 08:41:16 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:41:16 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:41:40 Africa/Kigali] Validating session on init
[23-Feb-2026 08:41:40 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:41:40 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:47:15 Africa/Kigali] Validating session on init
[23-Feb-2026 08:47:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:47:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:52:15 Africa/Kigali] Validating session on init
[23-Feb-2026 08:52:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:52:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:53:06 Africa/Kigali] Validating session on init
[23-Feb-2026 08:53:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:53:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:53:06 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: rooms | Record: 53
[23-Feb-2026 08:56:18 Africa/Kigali] Validating session on init
[23-Feb-2026 08:56:18 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:56:18 Africa/Kigali] Session validated successfully
[23-Feb-2026 08:59:50 Africa/Kigali] Validating session on init
[23-Feb-2026 08:59:50 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 08:59:50 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:00:58 Africa/Kigali] Validating session on init
[23-Feb-2026 09:00:58 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:00:58 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:00:58 Africa/Kigali] PHP Warning:  move_uploaded_file(/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/uploads/room_images/699bfb2a8e8dc_1771830058.png): Failed to open stream: Permission denied in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/helpers.php on line 402
[23-Feb-2026 09:00:58 Africa/Kigali] PHP Warning:  move_uploaded_file(): Unable to move &quot;/Applications/XAMPP/xamppfiles/temp/phpntua06&quot; to &quot;/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/uploads/room_images/699bfb2a8e8dc_1771830058.png&quot; in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/helpers.php on line 402
[2026-02-23 09:00:58] [ERROR] Image upload failed: Failed to move uploaded file
[23-Feb-2026 09:04:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:04:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:04:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:04:15 Africa/Kigali] Validating session on init
[23-Feb-2026 09:04:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:04:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:04:15 Africa/Kigali] AUDIT: User: 1 | Action: upload | Table: room_images
[23-Feb-2026 09:04:54 Africa/Kigali] Validating session on init
[23-Feb-2026 09:04:54 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:04:54 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:05:11 Africa/Kigali] Validating session on init
[23-Feb-2026 09:05:11 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:05:11 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:05:19 Africa/Kigali] Validating session on init
[23-Feb-2026 09:05:19 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:05:19 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:05:55 Africa/Kigali] Validating session on init
[23-Feb-2026 09:05:55 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:05:55 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:10:05 Africa/Kigali] Validating session on init
[23-Feb-2026 09:10:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:10:05 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:10:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:10:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:10:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:10:23 Africa/Kigali] Validating session on init
[23-Feb-2026 09:10:23 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:10:23 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:10:29 Africa/Kigali] Validating session on init
[23-Feb-2026 09:10:29 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:10:29 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:11:04 Africa/Kigali] Validating session on init
[23-Feb-2026 09:11:04 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:11:04 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:12:04 Africa/Kigali] Validating session on init
[23-Feb-2026 09:12:04 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:12:04 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:15:31 Africa/Kigali] Validating session on init
[23-Feb-2026 09:15:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:15:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:15:34 Africa/Kigali] Validating session on init
[23-Feb-2026 09:15:34 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:15:34 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:15:43 Africa/Kigali] Validating session on init
[23-Feb-2026 09:15:43 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:15:43 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:15:48 Africa/Kigali] Validating session on init
[23-Feb-2026 09:15:48 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:15:48 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:15:50 Africa/Kigali] Validating session on init
[23-Feb-2026 09:15:50 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:15:50 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:18:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:18:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:18:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:19:24 Africa/Kigali] Validating session on init
[23-Feb-2026 09:19:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:19:24 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:19:24 Africa/Kigali] AUDIT: User: 1 | Action: status_change | Table: rooms | Record: 14
[23-Feb-2026 09:19:24 Africa/Kigali] Validating session on init
[23-Feb-2026 09:19:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:19:24 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:19:35 Africa/Kigali] Validating session on init
[23-Feb-2026 09:19:35 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:19:35 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:19:44 Africa/Kigali] Validating session on init
[23-Feb-2026 09:19:44 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:19:44 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:19:55 Africa/Kigali] Validating session on init
[23-Feb-2026 09:19:55 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:19:55 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:20:02 Africa/Kigali] Validating session on init
[23-Feb-2026 09:20:02 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:20:02 Africa/Kigali] Session validated successfully
[2026-02-23 09:20:02] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.type_name' in 'where clause' SQL: SELECT COUNT(*) FROM rooms r WHERE r.is_active = 1 AND (r.room_number LIKE ? OR rt.type_name LIKE ? OR rt.type_code LIKE ?)
[23-Feb-2026 09:20:02 Africa/Kigali] Error fetching rooms: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.type_name' in 'where clause'
[23-Feb-2026 09:20:26 Africa/Kigali] Validating session on init
[23-Feb-2026 09:20:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:20:26 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:20:34 Africa/Kigali] Validating session on init
[23-Feb-2026 09:20:34 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:20:34 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:20:41 Africa/Kigali] Validating session on init
[23-Feb-2026 09:20:41 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:20:41 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:21:02 Africa/Kigali] Validating session on init
[23-Feb-2026 09:21:02 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:21:02 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:21:15 Africa/Kigali] Validating session on init
[23-Feb-2026 09:21:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:21:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:21:56 Africa/Kigali] Validating session on init
[23-Feb-2026 09:21:56 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:21:56 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:21:58 Africa/Kigali] Validating session on init
[23-Feb-2026 09:21:58 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:21:58 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:24:45 Africa/Kigali] Validating session on init
[23-Feb-2026 09:24:45 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:24:45 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:25:04 Africa/Kigali] Validating session on init
[23-Feb-2026 09:25:04 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:25:04 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:25:31 Africa/Kigali] Validating session on init
[23-Feb-2026 09:25:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:25:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:25:42 Africa/Kigali] Validating session on init
[23-Feb-2026 09:25:42 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:25:42 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:25:45 Africa/Kigali] Validating session on init
[23-Feb-2026 09:25:45 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:25:45 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:25:46 Africa/Kigali] Validating session on init
[23-Feb-2026 09:25:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:25:46 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:25:54 Africa/Kigali] Validating session on init
[23-Feb-2026 09:25:54 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:25:54 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:25:54 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: rooms | Record: 9
[23-Feb-2026 09:25:54 Africa/Kigali] Validating session on init
[23-Feb-2026 09:25:54 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:25:54 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:26:14 Africa/Kigali] Validating session on init
[23-Feb-2026 09:26:14 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:26:14 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:26:36 Africa/Kigali] Validating session on init
[23-Feb-2026 09:26:36 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:26:36 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:26:37 Africa/Kigali] Validating session on init
[23-Feb-2026 09:26:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:26:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:28:00 Africa/Kigali] Validating session on init
[23-Feb-2026 09:28:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:28:00 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:28:11 Africa/Kigali] Validating session on init
[23-Feb-2026 09:28:11 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:28:11 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:28:20 Africa/Kigali] Validating session on init
[23-Feb-2026 09:28:20 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:28:20 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:28:22 Africa/Kigali] Validating session on init
[23-Feb-2026 09:28:22 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:28:22 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:28:38 Africa/Kigali] Validating session on init
[23-Feb-2026 09:28:38 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:28:38 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:31:35 Africa/Kigali] Validating session on init
[23-Feb-2026 09:31:35 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:31:35 Africa/Kigali] Session validated successfully
[2026-02-23 09:31:35] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause' SQL: 
        SELECT 
            rt.room_type_id,
            rt.type_name,
            rt.type_code,
            rt.base_price,
            MIN(rp.base_rate) as min_rate,
            MAX(rp.base_rate) as max_rate,
            COUNT(rp.rate_plan_id) as plan_count
        FROM room_types rt
        LEFT JOIN rate_plans rp ON rt.room_type_id = rp.room_type_id AND rp.is_active = 1
        WHERE rt.is_active = 1
        GROUP BY rt.room_type_id
        ORDER BY rt.type_name
    
[23-Feb-2026 09:31:35 Africa/Kigali] Error fetching current rates: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause'
[23-Feb-2026 09:35:05 Africa/Kigali] Validating session on init
[23-Feb-2026 09:35:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:35:05 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:38:07 Africa/Kigali] Validating session on init
[23-Feb-2026 09:38:07 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:38:07 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:40:34 Africa/Kigali] Validating session on init
[23-Feb-2026 09:40:34 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:40:34 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:40:36 Africa/Kigali] Validating session on init
[23-Feb-2026 09:40:36 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:40:36 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:40:55 Africa/Kigali] Validating session on init
[23-Feb-2026 09:40:55 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:40:55 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:41:25 Africa/Kigali] Validating session on init
[23-Feb-2026 09:41:25 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:41:25 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:41:49 Africa/Kigali] Validating session on init
[23-Feb-2026 09:41:49 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:41:49 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:42:15 Africa/Kigali] Validating session on init
[23-Feb-2026 09:42:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:42:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:42:33 Africa/Kigali] Validating session on init
[23-Feb-2026 09:42:33 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:42:33 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:51 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:57 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:45:59 Africa/Kigali] Validating session on init
[23-Feb-2026 09:45:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:45:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:00 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:00 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:00 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:00 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:00 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:00 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:01 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:46:06 Africa/Kigali] Validating session on init
[23-Feb-2026 09:46:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:46:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:52:04 Africa/Kigali] Validating session on init
[23-Feb-2026 09:52:04 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:52:04 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:57:04 Africa/Kigali] Validating session on init
[23-Feb-2026 09:57:04 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:57:04 Africa/Kigali] Session validated successfully
[23-Feb-2026 09:59:54 Africa/Kigali] Validating session on init
[23-Feb-2026 09:59:54 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 09:59:54 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:01:14 Africa/Kigali] Validating session on init
[23-Feb-2026 10:01:14 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:01:14 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:01:14 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: room_types | Record: 7
[23-Feb-2026 10:01:14 Africa/Kigali] Validating session on init
[23-Feb-2026 10:01:14 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:01:14 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:01:29 Africa/Kigali] Validating session on init
[23-Feb-2026 10:01:29 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:01:29 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:01:43 Africa/Kigali] Validating session on init
[23-Feb-2026 10:01:43 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:01:43 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:01:59 Africa/Kigali] Validating session on init
[23-Feb-2026 10:01:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:01:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:01:59 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: rooms | Record: 54
[23-Feb-2026 10:01:59 Africa/Kigali] Validating session on init
[23-Feb-2026 10:01:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:01:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:02:05 Africa/Kigali] Validating session on init
[23-Feb-2026 10:02:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:02:05 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:02:45 Africa/Kigali] Validating session on init
[23-Feb-2026 10:02:45 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:02:45 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:05:46 Africa/Kigali] Validating session on init
[23-Feb-2026 10:05:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:05:46 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:06:12 Africa/Kigali] Validating session on init
[23-Feb-2026 10:06:12 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:06:12 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:06:29 Africa/Kigali] Validating session on init
[23-Feb-2026 10:06:29 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:06:29 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:06:33 Africa/Kigali] Validating session on init
[23-Feb-2026 10:06:33 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:06:33 Africa/Kigali] Session validated successfully
[2026-02-23 10:06:33] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause' SQL: 
        SELECT 
            rt.room_type_id,
            rt.type_name,
            rt.type_code,
            rt.base_price,
            MIN(rp.base_rate) as min_rate,
            MAX(rp.base_rate) as max_rate,
            COUNT(rp.rate_plan_id) as plan_count
        FROM room_types rt
        LEFT JOIN rate_plans rp ON rt.room_type_id = rp.room_type_id AND rp.is_active = 1
        WHERE rt.is_active = 1
        GROUP BY rt.room_type_id
        ORDER BY rt.type_name
    
[23-Feb-2026 10:06:33 Africa/Kigali] Error fetching current rates: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause'
[23-Feb-2026 10:10:01 Africa/Kigali] Validating session on init
[23-Feb-2026 10:10:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:10:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:10:28 Africa/Kigali] Validating session on init
[23-Feb-2026 10:10:28 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:10:28 Africa/Kigali] Session validated successfully
[2026-02-23 10:10:28] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause' SQL: 
        SELECT 
            rt.room_type_id,
            rt.type_name,
            rt.type_code,
            rt.base_price,
            MIN(rp.base_rate) as min_rate,
            MAX(rp.base_rate) as max_rate,
            COUNT(rp.rate_plan_id) as plan_count
        FROM room_types rt
        LEFT JOIN rate_plans rp ON rt.room_type_id = rp.room_type_id AND rp.is_active = 1
        WHERE rt.is_active = 1
        GROUP BY rt.room_type_id
        ORDER BY rt.type_name
    
[23-Feb-2026 10:10:28 Africa/Kigali] Error fetching current rates: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause'
[23-Feb-2026 10:14:40 Africa/Kigali] Validating session on init
[23-Feb-2026 10:14:40 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:14:40 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:16:19 Africa/Kigali] Validating session on init
[23-Feb-2026 10:16:19 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:16:19 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:16:19 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: price_rules
[23-Feb-2026 10:16:30 Africa/Kigali] Validating session on init
[23-Feb-2026 10:16:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:16:30 Africa/Kigali] Session validated successfully
[2026-02-23 10:16:30] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause' SQL: 
        SELECT 
            rt.room_type_id,
            rt.type_name,
            rt.type_code,
            rt.base_price,
            MIN(rp.base_rate) as min_rate,
            MAX(rp.base_rate) as max_rate,
            COUNT(rp.rate_plan_id) as plan_count
        FROM room_types rt
        LEFT JOIN rate_plans rp ON rt.room_type_id = rp.room_type_id AND rp.is_active = 1
        WHERE rt.is_active = 1
        GROUP BY rt.room_type_id
        ORDER BY rt.type_name
    
[23-Feb-2026 10:16:30 Africa/Kigali] Error fetching current rates: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause'
[23-Feb-2026 10:16:31 Africa/Kigali] Validating session on init
[23-Feb-2026 10:16:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:16:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:16:40 Africa/Kigali] Validating session on init
[23-Feb-2026 10:16:40 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:16:40 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:16:46 Africa/Kigali] Validating session on init
[23-Feb-2026 10:16:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:16:46 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:16:48 Africa/Kigali] Validating session on init
[23-Feb-2026 10:16:48 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:16:48 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:17:30 Africa/Kigali] Validating session on init
[23-Feb-2026 10:17:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:17:30 Africa/Kigali] Session validated successfully
[2026-02-23 10:17:30] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 10:17:30 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 10:19:45 Africa/Kigali] Validating session on init
[23-Feb-2026 10:19:45 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:19:45 Africa/Kigali] Session validated successfully
[2026-02-23 10:19:45] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 10:19:45 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 10:19:50 Africa/Kigali] Validating session on init
[23-Feb-2026 10:19:50 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:19:50 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:28:01 Africa/Kigali] Validating session on init
[23-Feb-2026 10:28:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:28:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:28:06 Africa/Kigali] Validating session on init
[23-Feb-2026 10:28:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:28:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:28:08 Africa/Kigali] Validating session on init
[23-Feb-2026 10:28:08 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:28:08 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:28:10 Africa/Kigali] Validating session on init
[23-Feb-2026 10:28:10 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:28:10 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:28:13 Africa/Kigali] Validating session on init
[23-Feb-2026 10:28:13 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:28:13 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:28:17 Africa/Kigali] Validating session on init
[23-Feb-2026 10:28:17 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:28:17 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:28:19 Africa/Kigali] Validating session on init
[23-Feb-2026 10:28:19 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:28:19 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:31:34 Africa/Kigali] Validating session on init
[23-Feb-2026 10:31:34 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:31:34 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:31:40 Africa/Kigali] Validating session on init
[23-Feb-2026 10:31:40 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:31:40 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:31:50 Africa/Kigali] Validating session on init
[23-Feb-2026 10:31:50 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:31:50 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:32:00 Africa/Kigali] Validating session on init
[23-Feb-2026 10:32:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:32:00 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:32:10 Africa/Kigali] Validating session on init
[23-Feb-2026 10:32:10 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:32:10 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:32:15 Africa/Kigali] Validating session on init
[23-Feb-2026 10:32:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:32:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:36:13 Africa/Kigali] Validating session on init
[23-Feb-2026 10:36:13 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:36:13 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:36:15 Africa/Kigali] Validating session on init
[23-Feb-2026 10:36:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:36:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:36:24 Africa/Kigali] Validating session on init
[23-Feb-2026 10:36:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:36:24 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:36:47 Africa/Kigali] Validating session on init
[23-Feb-2026 10:36:47 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:36:47 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:38:37 Africa/Kigali] Validating session on init
[23-Feb-2026 10:38:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:38:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:41:20 Africa/Kigali] Validating session on init
[23-Feb-2026 10:41:20 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:41:20 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:41:28 Africa/Kigali] Validating session on init
[23-Feb-2026 10:41:28 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:41:28 Africa/Kigali] Session validated successfully
[2026-02-23 10:41:28] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'discount' in 'field list' SQL: INSERT INTO pos_sales (receipt_number, shift_id, user_id, outlet_id, customer_name, guest_id, subtotal, discount, tax, total_amount, payment_method, payment_status, sale_time) VALUES (:receipt_number, :shift_id, :user_id, :outlet_id, :customer_name, :guest_id, :subtotal, :discount, :tax, :total_amount, :payment_method, :payment_status, :sale_time)
[23-Feb-2026 10:41:28 Africa/Kigali] Checkout error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'discount' in 'field list'
[23-Feb-2026 10:45:49 Africa/Kigali] Validating session on init
[23-Feb-2026 10:45:49 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:45:49 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:45:52 Africa/Kigali] Validating session on init
[23-Feb-2026 10:45:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:45:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:46:00 Africa/Kigali] Validating session on init
[23-Feb-2026 10:46:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:46:00 Africa/Kigali] Session validated successfully
[2026-02-23 10:46:00] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'discount' in 'field list' SQL: INSERT INTO pos_sales (receipt_number, shift_id, user_id, outlet_id, customer_name, guest_id, subtotal, discount, tax, total_amount, payment_method, payment_status, sale_time) VALUES (:receipt_number, :shift_id, :user_id, :outlet_id, :customer_name, :guest_id, :subtotal, :discount, :tax, :total_amount, :payment_method, :payment_status, :sale_time)
[23-Feb-2026 10:46:00 Africa/Kigali] Checkout error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'discount' in 'field list'
[23-Feb-2026 10:48:17 Africa/Kigali] Validating session on init
[23-Feb-2026 10:48:17 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:48:17 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:48:27 Africa/Kigali] Validating session on init
[23-Feb-2026 10:48:27 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:48:27 Africa/Kigali] Session validated successfully
[2026-02-23 10:48:27] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'discount' in 'field list' SQL: INSERT INTO pos_sales (receipt_number, shift_id, user_id, outlet_id, customer_name, guest_id, subtotal, discount, tax, total_amount, payment_method, payment_status, sale_time) VALUES (:receipt_number, :shift_id, :user_id, :outlet_id, :customer_name, :guest_id, :subtotal, :discount, :tax, :total_amount, :payment_method, :payment_status, :sale_time)
[23-Feb-2026 10:48:27 Africa/Kigali] Checkout error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'discount' in 'field list'
[23-Feb-2026 10:48:57 Africa/Kigali] Validating session on init
[23-Feb-2026 10:48:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:48:57 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:49:09 Africa/Kigali] Validating session on init
[23-Feb-2026 10:49:09 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:49:09 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:49:09 Africa/Kigali] Checkout error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'field list'
[23-Feb-2026 10:51:36 Africa/Kigali] Validating session on init
[23-Feb-2026 10:51:36 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:51:36 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:51:39 Africa/Kigali] Validating session on init
[23-Feb-2026 10:51:39 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:51:39 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:51:47 Africa/Kigali] Validating session on init
[23-Feb-2026 10:51:47 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:51:47 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:51:47 Africa/Kigali] Checkout error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'field list'
[23-Feb-2026 10:52:43 Africa/Kigali] Validating session on init
[23-Feb-2026 10:52:43 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:52:43 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:52:49 Africa/Kigali] Validating session on init
[23-Feb-2026 10:52:49 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:52:49 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:55:03 Africa/Kigali] Validating session on init
[23-Feb-2026 10:55:03 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:55:03 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:58:26 Africa/Kigali] Validating session on init
[23-Feb-2026 10:58:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:58:26 Africa/Kigali] Session validated successfully
[23-Feb-2026 10:58:29 Africa/Kigali] Validating session on init
[23-Feb-2026 10:58:29 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 10:58:29 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:22:08 Africa/Kigali] Validating session on init
[23-Feb-2026 11:22:08 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:22:08 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:22:10 Africa/Kigali] Validating session on init
[23-Feb-2026 11:22:10 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:22:10 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:23:02 Africa/Kigali] Validating session on init
[23-Feb-2026 11:23:02 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:23:02 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:23:05 Africa/Kigali] Validating session on init
[23-Feb-2026 11:23:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:23:05 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:23:05 Africa/Kigali] Validating session on init
[23-Feb-2026 11:23:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:23:05 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:23:05 Africa/Kigali] Validating session on init
[23-Feb-2026 11:23:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:23:05 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:23:05 Africa/Kigali] Validating session on init
[23-Feb-2026 11:23:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:23:05 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:23:06 Africa/Kigali] Validating session on init
[23-Feb-2026 11:23:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:23:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:34:41 Africa/Kigali] Validating session on init
[23-Feb-2026 11:34:41 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:34:41 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:35:09 Africa/Kigali] Validating session on init
[23-Feb-2026 11:35:09 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:35:09 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:35:33 Africa/Kigali] Validating session on init
[23-Feb-2026 11:35:33 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:35:33 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:37:46 Africa/Kigali] Validating session on init
[23-Feb-2026 11:37:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:37:46 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:37:50 Africa/Kigali] Validating session on init
[23-Feb-2026 11:37:50 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:37:50 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:42:24 Africa/Kigali] Validating session on init
[23-Feb-2026 11:42:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:42:24 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:44:29 Africa/Kigali] Validating session on init
[23-Feb-2026 11:44:29 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:44:29 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:44:29 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 24
[23-Feb-2026 11:44:29 Africa/Kigali] Validating session on init
[23-Feb-2026 11:44:29 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:44:29 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:44:40 Africa/Kigali] Validating session on init
[23-Feb-2026 11:44:40 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:44:40 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:47:52 Africa/Kigali] Validating session on init
[23-Feb-2026 11:47:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:47:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:52:52 Africa/Kigali] Validating session on init
[23-Feb-2026 11:52:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:52:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:14 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:14 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:14 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:18 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:18 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:18 Africa/Kigali] Session validated successfully
[2026-02-23 11:53:18] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 11:53:18 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 11:53:20 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:20 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:20 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:24 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:24 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:24 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:24 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:25 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:25 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:25 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:26 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:26 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:26 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:26 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:26 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:26 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:28 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:28 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:28 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:29 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:29 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:29 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:30 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:30 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:30 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:30 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:30 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:30 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:31 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:31 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:53:39 Africa/Kigali] Validating session on init
[23-Feb-2026 11:53:39 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:53:39 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:55:28 Africa/Kigali] Validating session on init
[23-Feb-2026 11:55:28 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:55:28 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:55:58 Africa/Kigali] Validating session on init
[23-Feb-2026 11:55:58 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:55:58 Africa/Kigali] Session validated successfully
[23-Feb-2026 11:59:32 Africa/Kigali] Validating session on init
[23-Feb-2026 11:59:32 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 11:59:32 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:02:43 Africa/Kigali] Validating session on init
[23-Feb-2026 12:02:43 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:02:43 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:03:00 Africa/Kigali] Validating session on init
[23-Feb-2026 12:03:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:03:00 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:03:00 Africa/Kigali] AUDIT: User: 1 | Action: upload | Table: pos_product_images
[23-Feb-2026 12:03:13 Africa/Kigali] Validating session on init
[23-Feb-2026 12:03:13 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:03:13 Africa/Kigali] Session validated successfully
[2026-02-23 12:03:13] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 12:03:13 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 12:11:43 Africa/Kigali] Validating session on init
[23-Feb-2026 12:11:43 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:11:43 Africa/Kigali] Session validated successfully
[2026-02-23 12:11:43] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.sale_time' in 'where clause' SQL: SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales WHERE 1=1 AND DATE(s.sale_time) >= ? AND DATE(s.sale_time) <= ?
[23-Feb-2026 12:11:43 Africa/Kigali] Error calculating stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.sale_time' in 'where clause'
[23-Feb-2026 12:12:05 Africa/Kigali] Validating session on init
[23-Feb-2026 12:12:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:12:05 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:12:15 Africa/Kigali] Validating session on init
[23-Feb-2026 12:12:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:12:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:12:47 Africa/Kigali] Validating session on init
[23-Feb-2026 12:12:47 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:12:47 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:16:24 Africa/Kigali] Validating session on init
[23-Feb-2026 12:16:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:16:24 Africa/Kigali] Session validated successfully
[2026-02-23 12:16:24] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, s.receipt_number, s.sale_time, s.total_amount,
                s.customer_name, s.payment_method,
                o.outlet_name,
                u.first_name, u.last_name,
                (SELECT COUNT(*) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            JOIN pos_outlets o ON s.outlet_id = o.outlet_id
            JOIN users u ON s.user_id = u.user_id
            WHERE DATE(s.sale_time) = ? AND s.payment_status = 'completed'
            ORDER BY s.sale_time
        
[23-Feb-2026 12:16:24 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 12:16:39 Africa/Kigali] Validating session on init
[23-Feb-2026 12:16:39 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:16:39 Africa/Kigali] Session validated successfully
[2026-02-23 12:16:39] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, s.receipt_number, s.sale_time, s.total_amount,
                s.customer_name, s.payment_method,
                o.outlet_name,
                u.first_name, u.last_name,
                (SELECT COUNT(*) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            JOIN pos_outlets o ON s.outlet_id = o.outlet_id
            JOIN users u ON s.user_id = u.user_id
            WHERE DATE(s.sale_time) = ? AND s.payment_status = 'completed'
            ORDER BY s.sale_time
        
[23-Feb-2026 12:16:39 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 12:16:53 Africa/Kigali] Validating session on init
[23-Feb-2026 12:16:53 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:16:53 Africa/Kigali] Session validated successfully
[2026-02-23 12:16:53] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, s.receipt_number, s.sale_time, s.total_amount,
                s.customer_name, s.payment_method,
                o.outlet_name,
                u.first_name, u.last_name,
                (SELECT COUNT(*) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            JOIN pos_outlets o ON s.outlet_id = o.outlet_id
            JOIN users u ON s.user_id = u.user_id
            WHERE DATE(s.sale_time) = ? AND s.payment_status = 'completed'
            ORDER BY s.sale_time
        
[23-Feb-2026 12:16:53 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 12:16:57 Africa/Kigali] Validating session on init
[23-Feb-2026 12:16:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:16:57 Africa/Kigali] Session validated successfully
[2026-02-23 12:16:57] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, s.receipt_number, s.sale_time, s.total_amount,
                s.customer_name, s.payment_method,
                o.outlet_name,
                u.first_name, u.last_name,
                (SELECT COUNT(*) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            JOIN pos_outlets o ON s.outlet_id = o.outlet_id
            JOIN users u ON s.user_id = u.user_id
            WHERE DATE(s.sale_time) = ? AND s.payment_status = 'completed'
            ORDER BY s.sale_time
        
[23-Feb-2026 12:16:57 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 12:20:48 Africa/Kigali] Validating session on init
[23-Feb-2026 12:20:48 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:20:48 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:20:56 Africa/Kigali] Validating session on init
[23-Feb-2026 12:20:56 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:20:56 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:21:06 Africa/Kigali] Validating session on init
[23-Feb-2026 12:21:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:21:06 Africa/Kigali] Session validated successfully
[2026-02-23 12:21:06] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 12:21:06 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 12:21:08 Africa/Kigali] Validating session on init
[23-Feb-2026 12:21:08 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:21:08 Africa/Kigali] Session validated successfully
[2026-02-23 12:21:08] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
        SELECT 
            s.payment_method,
            COUNT(*) as transaction_count,
            COALESCE(SUM(s.total_amount), 0) as total
        FROM pos_sales s
        WHERE s.shift_id = ? AND s.payment_status = 'completed'
        GROUP BY s.payment_method
    
[23-Feb-2026 12:21:08 Africa/Kigali] Error fetching sales summary: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 12:22:22 Africa/Kigali] Validating session on init
[23-Feb-2026 12:22:22 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:22:22 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:22:30 Africa/Kigali] Validating session on init
[23-Feb-2026 12:22:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:22:30 Africa/Kigali] Session validated successfully
[2026-02-23 12:22:30] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, s.receipt_number, s.sale_time, s.total_amount,
                s.customer_name, s.payment_method,
                o.outlet_name,
                u.first_name, u.last_name,
                (SELECT COUNT(*) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            JOIN pos_outlets o ON s.outlet_id = o.outlet_id
            JOIN users u ON s.user_id = u.user_id
            WHERE DATE(s.sale_time) = ? AND s.payment_status = 'completed'
            ORDER BY s.sale_time
        
[23-Feb-2026 12:22:30 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 12:22:39 Africa/Kigali] Validating session on init
[23-Feb-2026 12:22:39 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:22:39 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:23:51 Africa/Kigali] Validating session on init
[23-Feb-2026 12:23:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:23:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:25:25 Africa/Kigali] Validating session on init
[23-Feb-2026 12:25:25 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:25:25 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:28:38 Africa/Kigali] Validating session on init
[23-Feb-2026 12:28:38 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:28:38 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:28:52 Africa/Kigali] Validating session on init
[23-Feb-2026 12:28:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:28:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:31:02 Africa/Kigali] Validating session on init
[23-Feb-2026 12:31:02 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:31:02 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:31:53 Africa/Kigali] Validating session on init
[23-Feb-2026 12:31:53 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:31:53 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:31:53 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_categories | Record: 10
[23-Feb-2026 12:31:53 Africa/Kigali] Validating session on init
[23-Feb-2026 12:31:53 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:31:53 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:32:06 Africa/Kigali] Validating session on init
[23-Feb-2026 12:32:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:32:06 Africa/Kigali] Session validated successfully
[2026-02-23 12:32:06] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 12:32:06 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 12:32:10 Africa/Kigali] Validating session on init
[23-Feb-2026 12:32:10 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:32:10 Africa/Kigali] Session validated successfully
[2026-02-23 12:32:10] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.sale_time' in 'where clause' SQL: SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales WHERE 1=1 AND DATE(s.sale_time) >= ? AND DATE(s.sale_time) <= ?
[23-Feb-2026 12:32:10 Africa/Kigali] Error calculating stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.sale_time' in 'where clause'
[23-Feb-2026 12:35:02 Africa/Kigali] Validating session on init
[23-Feb-2026 12:35:02 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:35:02 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:35:15 Africa/Kigali] Validating session on init
[23-Feb-2026 12:35:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:35:15 Africa/Kigali] Session validated successfully
[2026-02-23 12:35:15] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 12:35:15 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 12:35:17 Africa/Kigali] Validating session on init
[23-Feb-2026 12:35:17 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:35:17 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:35:22 Africa/Kigali] Validating session on init
[23-Feb-2026 12:35:22 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:35:22 Africa/Kigali] Session validated successfully
[2026-02-23 12:35:22] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.sale_time' in 'where clause' SQL: SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales WHERE 1=1 AND DATE(s.sale_time) >= ? AND DATE(s.sale_time) <= ?
[23-Feb-2026 12:35:22 Africa/Kigali] Error calculating stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.sale_time' in 'where clause'
[23-Feb-2026 12:39:42 Africa/Kigali] Validating session on init
[23-Feb-2026 12:39:42 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:39:42 Africa/Kigali] Session validated successfully
[23-Feb-2026 12:39:42 Africa/Kigali] Revenue Stats - Total: 4, Revenue: 133.93, Items: 2
[23-Feb-2026 12:39:56 Africa/Kigali] Validating session on init
[23-Feb-2026 12:39:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:39:57 Africa/Kigali] Session validated successfully
[2026-02-23 12:39:57] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, s.receipt_number, s.sale_time, s.total_amount,
                s.customer_name, s.payment_method,
                o.outlet_name,
                u.first_name, u.last_name,
                (SELECT COUNT(*) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            JOIN pos_outlets o ON s.outlet_id = o.outlet_id
            JOIN users u ON s.user_id = u.user_id
            WHERE DATE(s.sale_time) = ? AND s.payment_status = 'completed'
            ORDER BY s.sale_time
        
[23-Feb-2026 12:39:57 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 12:43:24 Africa/Kigali] Validating session on init
[23-Feb-2026 12:43:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:43:24 Africa/Kigali] Session validated successfully
[2026-02-23 12:43:24] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, s.receipt_number, s.sale_time, s.total_amount,
                s.customer_name, s.payment_method, s.payment_status,
                o.outlet_name,
                u.first_name, u.last_name,
                (SELECT COUNT(*) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            JOIN pos_outlets o ON s.outlet_id = o.outlet_id
            JOIN users u ON s.user_id = u.user_id
            WHERE DATE(s.sale_time) = ?
            ORDER BY s.sale_time
        
[23-Feb-2026 12:43:24 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 12:43:24 Africa/Kigali] Daily Sales Report - Date: 2026-02-23, Transactions: 0, Total Sales: 0
[23-Feb-2026 12:52:00 Africa/Kigali] Validating session on init
[23-Feb-2026 12:52:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:52:00 Africa/Kigali] Session validated successfully
[2026-02-23 12:52:00] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, 
                s.receipt_number, 
                s.sale_time, 
                s.total_amount,
                s.customer_name, 
                s.payment_method, 
                s.payment_status,
                o.outlet_name,
                u.first_name, 
                u.last_name,
                (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            LEFT JOIN pos_outlets o ON s.outlet_id = o.outlet_id
            LEFT JOIN users u ON s.user_id = u.user_id
            WHERE DATE(s.sale_time) = ?
            ORDER BY s.sale_time
        
[23-Feb-2026 12:52:00 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 12:52:00 Africa/Kigali] Daily Sales Report - Date: 2026-02-23, Transactions: 0, Total Sales: 0
[23-Feb-2026 12:52:11 Africa/Kigali] Validating session on init
[23-Feb-2026 12:52:11 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:52:11 Africa/Kigali] Session validated successfully
[2026-02-23 12:52:11] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, 
                s.receipt_number, 
                s.sale_time, 
                s.total_amount,
                s.customer_name, 
                s.payment_method, 
                s.payment_status,
                o.outlet_name,
                u.first_name, 
                u.last_name,
                (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            LEFT JOIN pos_outlets o ON s.outlet_id = o.outlet_id
            LEFT JOIN users u ON s.user_id = u.user_id
            WHERE DATE(s.sale_time) = ?
            ORDER BY s.sale_time
        
[23-Feb-2026 12:52:11 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 12:52:11 Africa/Kigali] Daily Sales Report - Date: 2026-02-22, Transactions: 0, Total Sales: 0
[23-Feb-2026 12:52:37 Africa/Kigali] Validating session on init
[23-Feb-2026 12:52:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 12:52:37 Africa/Kigali] Session validated successfully
[2026-02-23 12:52:37] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, 
                s.receipt_number, 
                s.sale_time, 
                s.total_amount,
                s.customer_name, 
                s.payment_method, 
                s.payment_status,
                o.outlet_name,
                u.first_name, 
                u.last_name,
                (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            LEFT JOIN pos_outlets o ON s.outlet_id = o.outlet_id
            LEFT JOIN users u ON s.user_id = u.user_id
            WHERE DATE(s.sale_time) = ?
            ORDER BY s.sale_time
        
[23-Feb-2026 12:52:37 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 12:52:37 Africa/Kigali] Daily Sales Report - Date: 2026-02-23, Transactions: 0, Total Sales: 0
[23-Feb-2026 13:01:35 Africa/Kigali] Validating session on init
[23-Feb-2026 13:01:35 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:01:35 Africa/Kigali] Session validated successfully
[2026-02-23 13:01:35] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, 
                s.receipt_number, 
                s.sale_time, 
                s.total_amount,
                s.customer_name, 
                s.payment_method, 
                s.payment_status,
                o.outlet_name,
                u.first_name, 
                u.last_name,
                (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            LEFT JOIN pos_outlets o ON s.outlet_id = o.outlet_id
            LEFT JOIN users u ON s.user_id = u.user_id
            WHERE DATE(s.sale_time) = ?
            ORDER BY s.sale_time
        
[23-Feb-2026 13:01:35 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 13:01:37 Africa/Kigali] Validating session on init
[23-Feb-2026 13:01:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:01:37 Africa/Kigali] Session validated successfully
[2026-02-23 13:01:37] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, 
                s.receipt_number, 
                s.sale_time, 
                s.total_amount,
                s.customer_name, 
                s.payment_method, 
                s.payment_status,
                o.outlet_name,
                u.first_name, 
                u.last_name,
                (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            LEFT JOIN pos_outlets o ON s.outlet_id = o.outlet_id
            LEFT JOIN users u ON s.user_id = u.user_id
            WHERE DATE(s.sale_time) = ?
            ORDER BY s.sale_time
        
[23-Feb-2026 13:01:37 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 13:06:00 Africa/Kigali] Validating session on init
[23-Feb-2026 13:06:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:06:00 Africa/Kigali] Session validated successfully
[2026-02-23 13:06:00] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, 
                s.receipt_number, 
                s.sale_time, 
                s.total_amount,
                s.customer_name, 
                s.payment_method,
                (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            WHERE DATE(s.sale_time) = ?
            ORDER BY s.sale_time
        
[23-Feb-2026 13:06:00 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 13:06:12 Africa/Kigali] Validating session on init
[23-Feb-2026 13:06:12 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:06:12 Africa/Kigali] Session validated successfully
[2026-02-23 13:06:12] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, 
                s.receipt_number, 
                s.sale_time, 
                s.total_amount,
                s.customer_name, 
                s.payment_method,
                (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            WHERE DATE(s.sale_time) = ?
            ORDER BY s.sale_time
        
[23-Feb-2026 13:06:12 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 13:06:15 Africa/Kigali] Validating session on init
[23-Feb-2026 13:06:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:06:15 Africa/Kigali] Session validated successfully
[2026-02-23 13:06:15] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, 
                s.receipt_number, 
                s.sale_time, 
                s.total_amount,
                s.customer_name, 
                s.payment_method,
                (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            WHERE DATE(s.sale_time) = ?
            ORDER BY s.sale_time
        
[23-Feb-2026 13:06:15 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 13:06:20 Africa/Kigali] Validating session on init
[23-Feb-2026 13:06:20 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:06:20 Africa/Kigali] Session validated successfully
[2026-02-23 13:06:20] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, 
                s.receipt_number, 
                s.sale_time, 
                s.total_amount,
                s.customer_name, 
                s.payment_method,
                (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            WHERE DATE(s.sale_time) = ? AND s.outlet_id = ?
            ORDER BY s.sale_time
        
[23-Feb-2026 13:06:20 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 13:06:26 Africa/Kigali] Validating session on init
[23-Feb-2026 13:06:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:06:26 Africa/Kigali] Session validated successfully
[2026-02-23 13:06:26] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, 
                s.receipt_number, 
                s.sale_time, 
                s.total_amount,
                s.customer_name, 
                s.payment_method,
                (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            WHERE DATE(s.sale_time) = ? AND s.outlet_id = ?
            ORDER BY s.sale_time
        
[23-Feb-2026 13:06:26 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 13:06:32 Africa/Kigali] Validating session on init
[23-Feb-2026 13:06:32 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:06:32 Africa/Kigali] Session validated successfully
[2026-02-23 13:06:32] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
            SELECT 
                s.sale_id, 
                s.receipt_number, 
                s.sale_time, 
                s.total_amount,
                s.customer_name, 
                s.payment_method,
                (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
            FROM pos_sales s
            WHERE DATE(s.sale_time) = ? AND s.outlet_id = ?
            ORDER BY s.sale_time
        
[23-Feb-2026 13:06:32 Africa/Kigali] Error generating daily sales report: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 13:13:20 Africa/Kigali] Validating session on init
[23-Feb-2026 13:13:20 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:13:20 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:13:20 Africa/Kigali] Daily Sales Report - Date: 2026-02-23, Outlet ID: 6
[23-Feb-2026 13:13:20 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[23-Feb-2026 13:13:20 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ? AND s.outlet_id = ?
                ORDER BY s.sale_time
[23-Feb-2026 13:13:20 Africa/Kigali] Found 0 transactions
[23-Feb-2026 13:13:20 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[23-Feb-2026 13:13:28 Africa/Kigali] Validating session on init
[23-Feb-2026 13:13:28 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:13:28 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:13:28 Africa/Kigali] Daily Sales Report - Date: 2026-02-23, Outlet ID: 6
[23-Feb-2026 13:13:28 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[23-Feb-2026 13:13:28 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ? AND s.outlet_id = ?
                ORDER BY s.sale_time
[23-Feb-2026 13:13:28 Africa/Kigali] Found 0 transactions
[23-Feb-2026 13:13:28 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[23-Feb-2026 13:13:30 Africa/Kigali] Validating session on init
[23-Feb-2026 13:13:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:13:30 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:13:30 Africa/Kigali] Daily Sales Report - Date: 2026-02-23, Outlet ID: 6
[23-Feb-2026 13:13:30 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[23-Feb-2026 13:13:30 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ? AND s.outlet_id = ?
                ORDER BY s.sale_time
[23-Feb-2026 13:13:30 Africa/Kigali] Found 0 transactions
[23-Feb-2026 13:13:30 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[23-Feb-2026 13:13:46 Africa/Kigali] Validating session on init
[23-Feb-2026 13:13:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:13:46 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:13:46 Africa/Kigali] Daily Sales Report - Date: 2026-02-23, Outlet ID: 6
[23-Feb-2026 13:13:46 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[23-Feb-2026 13:13:46 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ? AND s.outlet_id = ?
                ORDER BY s.sale_time
[23-Feb-2026 13:13:46 Africa/Kigali] Found 0 transactions
[23-Feb-2026 13:13:46 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[23-Feb-2026 13:18:19 Africa/Kigali] Validating session on init
[2026-02-23 13:18:19] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 13:18:19 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 13:20:53 Africa/Kigali] Validating session on init
[2026-02-23 13:20:53] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 13:20:53 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 13:21:32 Africa/Kigali] Validating session on init
[2026-02-23 13:21:32] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 13:21:32 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 13:22:20 Africa/Kigali] Validating session on init
[2026-02-23 13:22:20] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 13:22:20 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 13:25:01 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 24
[23-Feb-2026 13:25:01 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 25
[23-Feb-2026 13:25:01 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 26
[23-Feb-2026 13:25:01 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 27
[23-Feb-2026 13:25:01 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 28
[23-Feb-2026 13:25:01 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 29
[23-Feb-2026 13:25:01 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 30
[23-Feb-2026 13:25:01 Africa/Kigali] PHP Warning:  session_name(): Session name cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 33
[23-Feb-2026 13:25:09 Africa/Kigali] Validating session on init
[2026-02-23 13:25:09] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 13:25:09 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 13:25:12 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 24
[23-Feb-2026 13:25:12 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 25
[23-Feb-2026 13:25:12 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 26
[23-Feb-2026 13:25:12 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 27
[23-Feb-2026 13:25:12 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 28
[23-Feb-2026 13:25:12 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 29
[23-Feb-2026 13:25:12 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 30
[23-Feb-2026 13:25:12 Africa/Kigali] PHP Warning:  session_name(): Session name cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 33
[23-Feb-2026 13:25:36 Africa/Kigali] Validating session on init
[2026-02-23 13:25:36] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 13:25:36 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 13:26:31 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 24
[23-Feb-2026 13:26:31 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 25
[23-Feb-2026 13:26:31 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 26
[23-Feb-2026 13:26:31 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 27
[23-Feb-2026 13:26:31 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 28
[23-Feb-2026 13:26:31 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 29
[23-Feb-2026 13:26:31 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 30
[23-Feb-2026 13:26:31 Africa/Kigali] PHP Warning:  session_name(): Session name cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 33
[23-Feb-2026 13:26:45 Africa/Kigali] Validating session on init
[2026-02-23 13:26:45] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 13:26:45 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 13:31:44 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 24
[23-Feb-2026 13:31:44 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 25
[23-Feb-2026 13:31:44 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 26
[23-Feb-2026 13:31:44 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 27
[23-Feb-2026 13:31:44 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 28
[23-Feb-2026 13:31:44 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 29
[23-Feb-2026 13:31:44 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 30
[23-Feb-2026 13:31:44 Africa/Kigali] PHP Warning:  session_name(): Session name cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 33
[23-Feb-2026 13:31:47 Africa/Kigali] Validating session on init
[2026-02-23 13:31:47] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 13:31:47 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 13:31:55 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 24
[23-Feb-2026 13:31:55 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 25
[23-Feb-2026 13:31:55 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 26
[23-Feb-2026 13:31:55 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 27
[23-Feb-2026 13:31:55 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 28
[23-Feb-2026 13:31:55 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 29
[23-Feb-2026 13:31:55 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 30
[23-Feb-2026 13:31:55 Africa/Kigali] PHP Warning:  session_name(): Session name cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 33
[23-Feb-2026 13:32:54 Africa/Kigali] Validating session on init
[23-Feb-2026 13:32:54 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:32:54 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:32:54 Africa/Kigali] Daily Sales Report - Date: 2026-02-23, Outlet ID: 6
[23-Feb-2026 13:32:54 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[23-Feb-2026 13:32:54 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ? AND s.outlet_id = ?
                ORDER BY s.sale_time
[23-Feb-2026 13:32:54 Africa/Kigali] Found 0 transactions
[23-Feb-2026 13:32:54 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[23-Feb-2026 13:33:16 Africa/Kigali] Validating session on init
[2026-02-23 13:33:16] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 13:33:16 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 13:40:00 Africa/Kigali] Validating session on init
[23-Feb-2026 13:40:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:40:00 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:41:16 Africa/Kigali] Validating session on init
[23-Feb-2026 13:41:16 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:41:16 Africa/Kigali] Session validated successfully
[2026-02-23 13:41:16] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 13:41:16 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 13:41:22 Africa/Kigali] Validating session on init
[23-Feb-2026 13:41:22 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:41:22 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:42:06 Africa/Kigali] Validating session on init
[23-Feb-2026 13:42:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:42:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:42:06 Africa/Kigali] Validating session on init
[23-Feb-2026 13:42:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:42:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:42:24 Africa/Kigali] Validating session on init
[23-Feb-2026 13:42:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:42:24 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:43:37 Africa/Kigali] Validating session on init
[23-Feb-2026 13:43:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:43:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:43:57 Africa/Kigali] Validating session on init
[23-Feb-2026 13:43:57 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:43:57 Africa/Kigali] Session validated successfully
[2026-02-23 13:43:57] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'notes' in 'field list' SQL: INSERT INTO guest_documents (guest_id, document_type, document_number, document_path, notes, uploaded_by, uploaded_at) VALUES (:guest_id, :document_type, :document_number, :document_path, :notes, :uploaded_by, :uploaded_at)
[23-Feb-2026 13:43:57 Africa/Kigali] Document upload error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'notes' in 'field list'
[23-Feb-2026 13:45:31 Africa/Kigali] Validating session on init
[23-Feb-2026 13:45:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:45:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:45:31 Africa/Kigali] AUDIT: User: 1 | Action: upload | Table: guest_documents | Record: 1
[23-Feb-2026 13:45:43 Africa/Kigali] Validating session on init
[2026-02-23 13:45:43] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 13:45:43 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 13:48:43 Africa/Kigali] Validating session on init
[23-Feb-2026 13:48:43 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:48:43 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:50:17 Africa/Kigali] Validating session on init
[23-Feb-2026 13:50:17 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:50:17 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:50:31 Africa/Kigali] Validating session on init
[23-Feb-2026 13:50:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:50:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:50:31 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: guests | Record: 9
[23-Feb-2026 13:50:31 Africa/Kigali] Validating session on init
[23-Feb-2026 13:50:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:50:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:50:40 Africa/Kigali] Validating session on init
[23-Feb-2026 13:50:40 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:50:40 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:50:51 Africa/Kigali] Validating session on init
[23-Feb-2026 13:50:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 13:50:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 13:50:51 Africa/Kigali] AUDIT: User: 1 | Action: upload | Table: guest_documents | Record: 2
[23-Feb-2026 13:51:26 Africa/Kigali] Validating session on init
[2026-02-23 13:51:26] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 13:51:26 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 13:54:50 Africa/Kigali] Validating session on init
[23-Feb-2026 13:56:07 Africa/Kigali] Validating session on init
[23-Feb-2026 13:56:39 Africa/Kigali] Validating session on init
[23-Feb-2026 13:57:05 Africa/Kigali] Validating session on init
[23-Feb-2026 13:57:37 Africa/Kigali] Validating session on init
[23-Feb-2026 13:58:07 Africa/Kigali] Validating session on init
[23-Feb-2026 13:58:21 Africa/Kigali] Validating session on init
[23-Feb-2026 13:58:28 Africa/Kigali] Validating session on init
[23-Feb-2026 13:58:28 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function get_db_size() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php:35
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php on line 35
[23-Feb-2026 13:58:35 Africa/Kigali] Validating session on init
[23-Feb-2026 13:58:39 Africa/Kigali] Validating session on init
[23-Feb-2026 13:58:48 Africa/Kigali] Validating session on init
[23-Feb-2026 13:59:31 Africa/Kigali] Validating session on init
[23-Feb-2026 13:59:42 Africa/Kigali] Validating session on init
[23-Feb-2026 13:59:42 Africa/Kigali] PHP Warning:  Undefined array key "role_name" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/users/view.php on line 163
[23-Feb-2026 14:00:08 Africa/Kigali] Validating session on init
[23-Feb-2026 14:00:24 Africa/Kigali] Validating session on init
[23-Feb-2026 14:00:33 Africa/Kigali] Validating session on init
[23-Feb-2026 14:00:33 Africa/Kigali] PHP Warning:  Undefined array key "role_name" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/users/view.php on line 163
[23-Feb-2026 14:00:55 Africa/Kigali] Validating session on init
[23-Feb-2026 14:00:55 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function get_db_size() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php:35
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php on line 35
[23-Feb-2026 14:00:58 Africa/Kigali] Validating session on init
[23-Feb-2026 14:01:20 Africa/Kigali] Validating session on init
[23-Feb-2026 14:01:20 Africa/Kigali] PHP Warning:  Undefined array key "role_name" in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/users/view.php on line 163
[23-Feb-2026 14:02:33 Africa/Kigali] Validating session on init
[23-Feb-2026 14:02:33 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:02:33 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:12:46 Africa/Kigali] Validating session on init
[23-Feb-2026 14:13:53 Africa/Kigali] Validating session on init
[23-Feb-2026 14:13:53 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:13:53 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:14:21 Africa/Kigali] Validating session on init
[23-Feb-2026 14:14:21 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:14:21 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:18:15 Africa/Kigali] Validating session on init
[23-Feb-2026 14:18:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:18:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:18:33 Africa/Kigali] Validating session on init
[2026-02-23 14:18:33] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 14:18:33 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 14:18:36 Africa/Kigali] Validating session on init
[23-Feb-2026 14:18:36 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:18:36 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:18:46 Africa/Kigali] Validating session on init
[23-Feb-2026 14:18:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:18:46 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:22:26 Africa/Kigali] Validating session on init
[23-Feb-2026 14:22:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:22:26 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:23:01 Africa/Kigali] Validating session on init
[23-Feb-2026 14:23:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:23:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:23:03 Africa/Kigali] Validating session on init
[23-Feb-2026 14:23:03 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:23:03 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:28:06 Africa/Kigali] Validating session on init
[23-Feb-2026 14:28:50 Africa/Kigali] Validating session on init
[23-Feb-2026 14:28:50 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:28:50 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:31:09 Africa/Kigali] Validating session on init
[23-Feb-2026 14:31:09 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:31:09 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:31:15 Africa/Kigali] Validating session on init
[23-Feb-2026 14:31:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:31:15 Africa/Kigali] Session validated successfully
[2026-02-23 14:31:15] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 14:31:15 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 14:31:17 Africa/Kigali] Validating session on init
[23-Feb-2026 14:31:17 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:31:17 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:31:41 Africa/Kigali] Validating session on init
[23-Feb-2026 14:31:41 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:31:41 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:31:41 Africa/Kigali] Validating session on init
[23-Feb-2026 14:31:41 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:31:41 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:32:09 Africa/Kigali] Validating session on init
[23-Feb-2026 14:32:09 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:32:09 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:33:22 Africa/Kigali] Validating session on init
[23-Feb-2026 14:37:54 Africa/Kigali] Validating session on init
[23-Feb-2026 14:38:23 Africa/Kigali] Validating session on init
[23-Feb-2026 14:38:23 Africa/Kigali] Validating session on init
[23-Feb-2026 14:42:41 Africa/Kigali] Validating session on init
[23-Feb-2026 14:43:04 Africa/Kigali] Validating session on init
[23-Feb-2026 14:43:27 Africa/Kigali] Validating session on init
[23-Feb-2026 14:46:16 Africa/Kigali] Validating session on init
[23-Feb-2026 14:46:40 Africa/Kigali] Validating session on init
[23-Feb-2026 14:51:00 Africa/Kigali] Validating session on init
[23-Feb-2026 14:51:19 Africa/Kigali] Validating session on init
[23-Feb-2026 14:51:21 Africa/Kigali] Validating session on init
[23-Feb-2026 14:51:21 Africa/Kigali] Validating session on init
[23-Feb-2026 14:53:39 Africa/Kigali] Validating session on init
[23-Feb-2026 14:53:39 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:53:39 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:53:45 Africa/Kigali] Validating session on init
[23-Feb-2026 14:53:45 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:53:45 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:53:49 Africa/Kigali] Validating session on init
[23-Feb-2026 14:53:49 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:53:49 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:53:51 Africa/Kigali] Validating session on init
[23-Feb-2026 14:53:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:53:51 Africa/Kigali] Session validated successfully
[2026-02-23 14:53:51] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause' SQL: 
        SELECT 
            rt.room_type_id,
            rt.type_name,
            rt.type_code,
            rt.base_price,
            MIN(rp.base_rate) as min_rate,
            MAX(rp.base_rate) as max_rate,
            COUNT(rp.rate_plan_id) as plan_count
        FROM room_types rt
        LEFT JOIN rate_plans rp ON rt.room_type_id = rp.room_type_id AND rp.is_active = 1
        WHERE rt.is_active = 1
        GROUP BY rt.room_type_id
        ORDER BY rt.type_name
    
[23-Feb-2026 14:53:51 Africa/Kigali] Error fetching current rates: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause'
[23-Feb-2026 14:54:05 Africa/Kigali] Validating session on init
[23-Feb-2026 14:54:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:54:05 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:54:11 Africa/Kigali] Validating session on init
[23-Feb-2026 14:54:11 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:54:11 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:54:17 Africa/Kigali] Validating session on init
[23-Feb-2026 14:54:17 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:54:17 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:54:19 Africa/Kigali] Validating session on init
[23-Feb-2026 14:54:19 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:54:19 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:54:26 Africa/Kigali] Validating session on init
[23-Feb-2026 14:54:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:54:26 Africa/Kigali] Session validated successfully
[2026-02-23 14:54:26] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause' SQL: 
        SELECT 
            rt.room_type_id,
            rt.type_name,
            rt.type_code,
            rt.base_price,
            MIN(rp.base_rate) as min_rate,
            MAX(rp.base_rate) as max_rate,
            COUNT(rp.rate_plan_id) as plan_count
        FROM room_types rt
        LEFT JOIN rate_plans rp ON rt.room_type_id = rp.room_type_id AND rp.is_active = 1
        WHERE rt.is_active = 1
        GROUP BY rt.room_type_id
        ORDER BY rt.type_name
    
[23-Feb-2026 14:54:26 Africa/Kigali] Error fetching current rates: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause'
[23-Feb-2026 14:54:44 Africa/Kigali] Validating session on init
[23-Feb-2026 14:54:44 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:54:44 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:55:00 Africa/Kigali] Validating session on init
[23-Feb-2026 14:55:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:55:00 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:55:14 Africa/Kigali] Validating session on init
[23-Feb-2026 14:55:14 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:55:14 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:55:22 Africa/Kigali] Validating session on init
[23-Feb-2026 14:55:22 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:55:22 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:55:27 Africa/Kigali] Validating session on init
[23-Feb-2026 14:55:27 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:55:27 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:56:56 Africa/Kigali] Validating session on init
[23-Feb-2026 14:59:25 Africa/Kigali] Validating session on init
[23-Feb-2026 14:59:44 Africa/Kigali] Validating session on init
[23-Feb-2026 14:59:44 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 14:59:44 Africa/Kigali] Session validated successfully
[23-Feb-2026 14:59:52 Africa/Kigali] Validating session on init
[23-Feb-2026 15:00:46 Africa/Kigali] Validating session on init
[23-Feb-2026 15:00:51 Africa/Kigali] Validating session on init
[23-Feb-2026 15:05:14 Africa/Kigali] Validating session on init
[23-Feb-2026 15:05:31 Africa/Kigali] Validating session on init
[23-Feb-2026 15:05:46 Africa/Kigali] Validating session on init
[23-Feb-2026 15:05:57 Africa/Kigali] Validating session on init
[23-Feb-2026 15:09:06 Africa/Kigali] Validating session on init
[23-Feb-2026 15:09:07 Africa/Kigali] Validating session on init
[23-Feb-2026 15:09:18 Africa/Kigali] Validating session on init
[23-Feb-2026 15:13:28 Africa/Kigali] Validating session on init
[23-Feb-2026 15:15:37 Africa/Kigali] Validating session on init
[23-Feb-2026 15:16:30 Africa/Kigali] Validating session on init
[23-Feb-2026 15:16:32 Africa/Kigali] Validating session on init
[23-Feb-2026 15:16:32 Africa/Kigali] Validating session on init
[23-Feb-2026 15:16:46 Africa/Kigali] Validating session on init
[23-Feb-2026 15:16:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 15:16:46 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:02:01 Africa/Kigali] Validating session on init
[23-Feb-2026 16:02:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:02:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:02:02 Africa/Kigali] Validating session on init
[23-Feb-2026 16:02:02 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:02:02 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:02:17 Africa/Kigali] Validating session on init
[23-Feb-2026 16:02:17 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:02:17 Africa/Kigali] Session validated successfully
[2026-02-23 16:02:17] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 16:02:17 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 16:02:36 Africa/Kigali] Validating session on init
[23-Feb-2026 16:02:36 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:02:36 Africa/Kigali] Session validated successfully
[2026-02-23 16:02:36] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
        SELECT 
            s.payment_method,
            COUNT(*) as transaction_count,
            COALESCE(SUM(s.total_amount), 0) as total
        FROM pos_sales s
        WHERE s.shift_id = ? AND s.payment_status = 'completed'
        GROUP BY s.payment_method
    
[23-Feb-2026 16:02:36 Africa/Kigali] Error fetching sales summary: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 16:02:46 Africa/Kigali] Validating session on init
[23-Feb-2026 16:02:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:02:46 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:02:52 Africa/Kigali] Validating session on init
[23-Feb-2026 16:02:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:02:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:02:53 Africa/Kigali] Validating session on init
[23-Feb-2026 16:02:53 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:02:53 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:02:54 Africa/Kigali] Validating session on init
[23-Feb-2026 16:02:54 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:02:54 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:03:42 Africa/Kigali] Validating session on init
[23-Feb-2026 16:03:42 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:03:42 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:03:42 Africa/Kigali] Validating session on init
[23-Feb-2026 16:03:42 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:03:42 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:03:50 Africa/Kigali] Validating session on init
[23-Feb-2026 16:04:01 Africa/Kigali] Validating session on init
[23-Feb-2026 16:04:23 Africa/Kigali] Validating session on init
[23-Feb-2026 16:04:30 Africa/Kigali] Validating session on init
[23-Feb-2026 16:04:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:04:30 Africa/Kigali] Session validated successfully
[2026-02-23 16:04:30] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 16:04:30 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 16:04:31 Africa/Kigali] Validating session on init
[23-Feb-2026 16:04:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:04:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:04:37 Africa/Kigali] Validating session on init
[23-Feb-2026 16:04:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:04:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:04:37 Africa/Kigali] Validating session on init
[23-Feb-2026 16:04:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:04:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:07:53 Africa/Kigali] Validating session on init
[23-Feb-2026 16:07:53 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:07:53 Africa/Kigali] Session validated successfully
[2026-02-23 16:07:53] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 16:07:53 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 16:08:48 Africa/Kigali] Validating session on init
[23-Feb-2026 16:08:59 Africa/Kigali] Validating session on init
[23-Feb-2026 16:09:19 Africa/Kigali] Validating session on init
[23-Feb-2026 16:09:19 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:09:19 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:09:30 Africa/Kigali] Validating session on init
[23-Feb-2026 16:09:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:09:30 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:09:30 Africa/Kigali] Daily Sales Report - Date: 2026-02-23, Outlet ID: All
[23-Feb-2026 16:09:30 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[23-Feb-2026 16:09:30 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[23-Feb-2026 16:09:30 Africa/Kigali] Found 5 transactions
[23-Feb-2026 16:09:30 Africa/Kigali] Report Summary - Transactions: 5, Total Sales: 140.42
[23-Feb-2026 16:09:55 Africa/Kigali] Validating session on init
[23-Feb-2026 16:09:55 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:09:55 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:10:36 Africa/Kigali] Validating session on init
[23-Feb-2026 16:10:36 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:10:36 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:10:49 Africa/Kigali] Validating session on init
[23-Feb-2026 16:10:49 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:10:49 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:11:02 Africa/Kigali] Validating session on init
[23-Feb-2026 16:11:02 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:11:02 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:11:02 Africa/Kigali] Validating session on init
[23-Feb-2026 16:11:02 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:11:02 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:11:40 Africa/Kigali] Validating session on init
[23-Feb-2026 16:11:43 Africa/Kigali] Validating session on init
[23-Feb-2026 16:11:59 Africa/Kigali] Validating session on init
[23-Feb-2026 16:12:08 Africa/Kigali] Validating session on init
[23-Feb-2026 16:12:21 Africa/Kigali] Validating session on init
[23-Feb-2026 16:12:26 Africa/Kigali] Validating session on init
[23-Feb-2026 16:12:26 Africa/Kigali] Validating session on init
[23-Feb-2026 16:13:15 Africa/Kigali] Validating session on init
[23-Feb-2026 16:13:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:13:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:13:30 Africa/Kigali] Validating session on init
[23-Feb-2026 16:13:39 Africa/Kigali] Validating session on init
[23-Feb-2026 16:13:55 Africa/Kigali] Validating session on init
[23-Feb-2026 16:14:27 Africa/Kigali] Validating session on init
[23-Feb-2026 16:14:36 Africa/Kigali] Validating session on init
[23-Feb-2026 16:14:41 Africa/Kigali] Validating session on init
[23-Feb-2026 16:14:51 Africa/Kigali] Validating session on init
[23-Feb-2026 16:14:55 Africa/Kigali] Validating session on init
[23-Feb-2026 16:14:55 Africa/Kigali] Validating session on init
[23-Feb-2026 16:15:27 Africa/Kigali] Validating session on init
[23-Feb-2026 16:15:40 Africa/Kigali] Validating session on init
[23-Feb-2026 16:15:59 Africa/Kigali] Validating session on init
[23-Feb-2026 16:16:05 Africa/Kigali] Validating session on init
[23-Feb-2026 16:16:07 Africa/Kigali] Validating session on init
[23-Feb-2026 16:16:07 Africa/Kigali] Validating session on init
[23-Feb-2026 16:16:18 Africa/Kigali] Validating session on init
[23-Feb-2026 16:16:23 Africa/Kigali] Validating session on init
[23-Feb-2026 16:16:28 Africa/Kigali] Validating session on init
[23-Feb-2026 16:16:41 Africa/Kigali] Validating session on init
[23-Feb-2026 16:16:41 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:16:41 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:16:42 Africa/Kigali] Validating session on init
[23-Feb-2026 16:16:42 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:16:42 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:16:53 Africa/Kigali] Validating session on init
[23-Feb-2026 16:16:53 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:16:53 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:17:00 Africa/Kigali] Validating session on init
[23-Feb-2026 16:17:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:17:00 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:17:15 Africa/Kigali] Validating session on init
[23-Feb-2026 16:17:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:17:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:17:18 Africa/Kigali] Validating session on init
[23-Feb-2026 16:17:18 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:17:18 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:17:55 Africa/Kigali] Validating session on init
[23-Feb-2026 16:17:55 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:17:55 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:18:11 Africa/Kigali] Validating session on init
[23-Feb-2026 16:18:11 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:18:11 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:18:22 Africa/Kigali] Validating session on init
[23-Feb-2026 16:18:22 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:18:22 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:18:22 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: guests | Record: 10
[23-Feb-2026 16:18:27 Africa/Kigali] Validating session on init
[23-Feb-2026 16:18:27 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:18:27 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:18:36 Africa/Kigali] Validating session on init
[23-Feb-2026 16:18:36 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:18:36 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:18:58 Africa/Kigali] Validating session on init
[23-Feb-2026 16:18:58 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:18:58 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:18:58 Africa/Kigali] AUDIT: User: 1 | Action: upload | Table: guest_documents | Record: 3
[23-Feb-2026 16:19:22 Africa/Kigali] Validating session on init
[2026-02-23 16:19:22] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[23-Feb-2026 16:19:22 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[23-Feb-2026 16:19:23 Africa/Kigali] Validating session on init
[23-Feb-2026 16:19:23 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:19:23 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:19:27 Africa/Kigali] Validating session on init
[23-Feb-2026 16:19:27 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:19:27 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:19:36 Africa/Kigali] Validating session on init
[23-Feb-2026 16:19:36 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:19:36 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:19:39 Africa/Kigali] Validating session on init
[23-Feb-2026 16:19:39 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:19:39 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:21:34 Africa/Kigali] Validating session on init
[23-Feb-2026 16:21:34 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:21:34 Africa/Kigali] Session validated successfully
[2026-02-23 16:21:34] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value SQL: INSERT INTO folio_charges (reservation_id, transaction_code, charge_type, description, amount, posted_by, posted_at) VALUES (:reservation_id, :transaction_code, :charge_type, :description, :amount, :posted_by, :posted_at)
[2026-02-23 16:21:34] [ERROR] Reservation creation failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value
[23-Feb-2026 16:26:00 Africa/Kigali] Validating session on init
[23-Feb-2026 16:26:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:26:00 Africa/Kigali] Session validated successfully
[2026-02-23 16:26:00] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 16:26:00 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 16:28:58 Africa/Kigali] Validating session on init
[23-Feb-2026 16:29:13 Africa/Kigali] Validating session on init
[23-Feb-2026 16:36:06 Africa/Kigali] Validating session on init
[23-Feb-2026 16:36:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:36:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:36:10 Africa/Kigali] Validating session on init
[23-Feb-2026 16:36:10 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:36:10 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:37:14 Africa/Kigali] Validating session on init
[23-Feb-2026 16:37:14 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:37:14 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:38:13 Africa/Kigali] Login attempt - Username: cashier1
[23-Feb-2026 16:38:13 Africa/Kigali] User found: Yes
[23-Feb-2026 16:38:14 Africa/Kigali] Login successful for user: cashier1
[23-Feb-2026 16:38:14 Africa/Kigali] AUDIT: User: 7 | Action: login | Table: users | Record: 7
[23-Feb-2026 16:38:14 Africa/Kigali] NOTIFICATION: User 7 - New Login: You logged in from 127.0.0.1
[2026-02-23 16:38:14] [INFO] Successful login for user: cashier1
[23-Feb-2026 16:38:14 Africa/Kigali] Validating session on init
[23-Feb-2026 16:38:14 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:38:14 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:38:29 Africa/Kigali] Validating session on init
[23-Feb-2026 16:38:29 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:38:29 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:38:31 Africa/Kigali] Validating session on init
[23-Feb-2026 16:38:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:38:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:38:41 Africa/Kigali] Validating session on init
[23-Feb-2026 16:38:47 Africa/Kigali] Validating session on init
[23-Feb-2026 16:38:47 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:38:47 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:38:55 Africa/Kigali] Validating session on init
[23-Feb-2026 16:38:55 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:38:55 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:40:32 Africa/Kigali] Validating session on init
[23-Feb-2026 16:40:32 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:40:32 Africa/Kigali] Session validated successfully
[2026-02-23 16:40:32] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 16:40:32 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 16:41:26 Africa/Kigali] Validating session on init
[23-Feb-2026 16:41:26 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:41:26 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:41:46 Africa/Kigali] Validating session on init
[23-Feb-2026 16:41:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:41:46 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:41:46 Africa/Kigali] AUDIT: User: 7 | Action: open_shift | Table: pos_shifts | Record: 4
[23-Feb-2026 16:41:46 Africa/Kigali] Validating session on init
[23-Feb-2026 16:41:46 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:41:46 Africa/Kigali] Session validated successfully
[2026-02-23 16:41:46] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
        SELECT 
            s.payment_method,
            COUNT(*) as transaction_count,
            COALESCE(SUM(s.total_amount), 0) as total
        FROM pos_sales s
        WHERE s.shift_id = ? AND s.payment_status = 'completed'
        GROUP BY s.payment_method
    
[23-Feb-2026 16:41:46 Africa/Kigali] Error fetching sales summary: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[23-Feb-2026 16:42:34 Africa/Kigali] Validating session on init
[23-Feb-2026 16:42:34 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:42:34 Africa/Kigali] Session validated successfully
[2026-02-23 16:42:34] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 16:42:34 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 16:42:35 Africa/Kigali] Validating session on init
[23-Feb-2026 16:42:35 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:42:35 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:43:01 Africa/Kigali] Validating session on init
[23-Feb-2026 16:43:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:43:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:43:04 Africa/Kigali] Validating session on init
[23-Feb-2026 16:43:04 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:43:04 Africa/Kigali] Session validated successfully
[2026-02-23 16:43:04] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[23-Feb-2026 16:43:04 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[23-Feb-2026 16:43:05 Africa/Kigali] Validating session on init
[23-Feb-2026 16:43:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:43:05 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:43:05 Africa/Kigali] Revenue Stats - Total: 9, Revenue: 273.76, Items: 60
[23-Feb-2026 16:43:18 Africa/Kigali] Validating session on init
[23-Feb-2026 16:43:18 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:43:18 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:43:21 Africa/Kigali] Validating session on init
[23-Feb-2026 16:43:21 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:43:21 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:43:25 Africa/Kigali] Validating session on init
[23-Feb-2026 16:43:25 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 16:43:25 Africa/Kigali] Session validated successfully
[23-Feb-2026 16:43:25 Africa/Kigali] Daily Sales Report - Date: 2026-02-23, Outlet ID: All
[23-Feb-2026 16:43:25 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[23-Feb-2026 16:43:25 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[23-Feb-2026 16:43:25 Africa/Kigali] Found 6 transactions
[23-Feb-2026 16:43:25 Africa/Kigali] Report Summary - Transactions: 6, Total Sales: 149.27
[23-Feb-2026 17:09:10 Africa/Kigali] Validating session on init
[23-Feb-2026 17:09:16 Africa/Kigali] Validating session on init
[23-Feb-2026 17:09:16 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:09:16 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:09:16 Africa/Kigali] Daily Sales Report - Date: 2026-02-23, Outlet ID: All
[23-Feb-2026 17:09:16 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[23-Feb-2026 17:09:16 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[23-Feb-2026 17:09:16 Africa/Kigali] Found 6 transactions
[23-Feb-2026 17:09:16 Africa/Kigali] Report Summary - Transactions: 6, Total Sales: 149.27
[23-Feb-2026 17:09:39 Africa/Kigali] Login attempt - Username: superadmin
[23-Feb-2026 17:09:39 Africa/Kigali] User found: Yes
[23-Feb-2026 17:09:39 Africa/Kigali] Login successful for user: superadmin
[23-Feb-2026 17:09:39 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[23-Feb-2026 17:09:39 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-23 17:09:39] [INFO] Successful login for user: superadmin
[23-Feb-2026 17:09:39 Africa/Kigali] Validating session on init
[23-Feb-2026 17:09:39 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:09:39 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:09:47 Africa/Kigali] Validating session on init
[23-Feb-2026 17:11:42 Africa/Kigali] Validating session on init
[23-Feb-2026 17:18:49 Africa/Kigali] Validating session on init
[23-Feb-2026 17:18:51 Africa/Kigali] Validating session on init
[23-Feb-2026 17:19:10 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 24
[23-Feb-2026 17:19:10 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 25
[23-Feb-2026 17:19:10 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 26
[23-Feb-2026 17:19:10 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 27
[23-Feb-2026 17:19:10 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 28
[23-Feb-2026 17:19:10 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 29
[23-Feb-2026 17:19:10 Africa/Kigali] PHP Warning:  ini_set(): Session ini settings cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 30
[23-Feb-2026 17:19:10 Africa/Kigali] PHP Warning:  session_name(): Session name cannot be changed when a session is active in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/config.php on line 33
[23-Feb-2026 17:19:32 Africa/Kigali] Validating session on init
[23-Feb-2026 17:36:49 Africa/Kigali] Validating session on init
[23-Feb-2026 17:36:49 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:36:49 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:36:52 Africa/Kigali] Validating session on init
[23-Feb-2026 17:36:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:36:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:36:54 Africa/Kigali] Validating session on init
[23-Feb-2026 17:36:54 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:36:54 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:37:05 Africa/Kigali] Validating session on init
[23-Feb-2026 17:37:05 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:37:05 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:37:11 Africa/Kigali] Validating session on init
[23-Feb-2026 17:37:11 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:37:11 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:37:33 Africa/Kigali] Validating session on init
[23-Feb-2026 17:37:33 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:37:33 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:37:53 Africa/Kigali] Validating session on init
[23-Feb-2026 17:37:53 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:37:53 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:37:54 Africa/Kigali] Validating session on init
[23-Feb-2026 17:37:54 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:37:54 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:37:55 Africa/Kigali] Validating session on init
[23-Feb-2026 17:37:55 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:37:55 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:37:55 Africa/Kigali] Validating session on init
[23-Feb-2026 17:37:55 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:37:55 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:37:55 Africa/Kigali] Validating session on init
[23-Feb-2026 17:37:55 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:37:55 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:37:55 Africa/Kigali] Validating session on init
[23-Feb-2026 17:37:55 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:37:55 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:38:45 Africa/Kigali] Validating session on init
[23-Feb-2026 17:38:45 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:38:45 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:38:52 Africa/Kigali] Validating session on init
[23-Feb-2026 17:38:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:38:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:39:02 Africa/Kigali] Validating session on init
[23-Feb-2026 17:39:02 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:39:02 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:39:32 Africa/Kigali] Validating session on init
[23-Feb-2026 17:39:32 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:39:32 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:39:33 Africa/Kigali] Validating session on init
[23-Feb-2026 17:39:33 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:39:33 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:39:37 Africa/Kigali] Validating session on init
[23-Feb-2026 17:39:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:39:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:40:31 Africa/Kigali] Validating session on init
[23-Feb-2026 17:40:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:40:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:41:07 Africa/Kigali] Validating session on init
[23-Feb-2026 17:41:07 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:41:07 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:41:24 Africa/Kigali] Validating session on init
[23-Feb-2026 17:41:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:41:24 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:45:02 Africa/Kigali] Validating session on init
[23-Feb-2026 17:45:02 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:45:02 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:45:03 Africa/Kigali] Validating session on init
[23-Feb-2026 17:45:03 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:45:03 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:45:04 Africa/Kigali] Validating session on init
[23-Feb-2026 17:45:04 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:45:04 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:45:06 Africa/Kigali] Validating session on init
[23-Feb-2026 17:45:29 Africa/Kigali] Validating session on init
[23-Feb-2026 17:47:17 Africa/Kigali] Validating session on init
[23-Feb-2026 17:47:29 Africa/Kigali] Validating session on init
[23-Feb-2026 17:50:16 Africa/Kigali] Validating session on init
[23-Feb-2026 17:50:16 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:50:16 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:50:56 Africa/Kigali] Validating session on init
[23-Feb-2026 17:50:56 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:50:56 Africa/Kigali] Session validated successfully
[2026-02-23 17:50:56] [ERROR] Query failed: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'ruhondo_hms.quotations' doesn't exist SQL: 
    SELECT q.*, 
           DATEDIFF(q.valid_until, CURDATE()) as days_valid,
           CASE 
               WHEN q.status = 'accepted' THEN 'accepted'
               WHEN q.status = 'cancelled' THEN 'cancelled'
               WHEN q.valid_until < CURDATE() THEN 'expired'
               ELSE q.status 
           END as current_status
    FROM quotations q
    ORDER BY q.created_at DESC

[23-Feb-2026 17:50:56 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'ruhondo_hms.quotations' doesn't exist in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:79
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(79): PDO->prepare('\n    SELECT q.*...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(102): db_query('\n    SELECT q.*...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/quotations/index.php(28): db_fetch_all('\n    SELECT q.*...')
#3 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 79
[23-Feb-2026 17:51:09 Africa/Kigali] Validating session on init
[23-Feb-2026 17:51:09 Africa/Kigali] Validating session on init
[23-Feb-2026 17:51:09 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:51:09 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:52:12 Africa/Kigali] Login attempt - Username: superadmin
[23-Feb-2026 17:52:12 Africa/Kigali] User found: Yes
[23-Feb-2026 17:52:12 Africa/Kigali] Login successful for user: superadmin
[23-Feb-2026 17:52:12 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[23-Feb-2026 17:52:12 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-23 17:52:12] [INFO] Successful login for user: superadmin
[23-Feb-2026 17:52:12 Africa/Kigali] Validating session on init
[23-Feb-2026 17:52:12 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:52:12 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:52:14 Africa/Kigali] Validating session on init
[23-Feb-2026 17:53:34 Africa/Kigali] Validating session on init
[23-Feb-2026 17:53:34 Africa/Kigali] Validating session on init
[23-Feb-2026 17:53:34 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:53:34 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:53:47 Africa/Kigali] Login attempt - Username: invmanager
[23-Feb-2026 17:53:47 Africa/Kigali] User found: Yes
[23-Feb-2026 17:53:48 Africa/Kigali] Login successful for user: invmanager
[23-Feb-2026 17:53:48 Africa/Kigali] AUDIT: User: 12 | Action: login | Table: users | Record: 12
[23-Feb-2026 17:53:48 Africa/Kigali] NOTIFICATION: User 12 - New Login: You logged in from 127.0.0.1
[2026-02-23 17:53:48] [INFO] Successful login for user: invmanager
[23-Feb-2026 17:53:48 Africa/Kigali] Validating session on init
[23-Feb-2026 17:53:48 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:53:48 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:54:00 Africa/Kigali] Validating session on init
[23-Feb-2026 17:54:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:54:00 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:54:04 Africa/Kigali] Validating session on init
[23-Feb-2026 17:54:04 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:54:04 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:54:12 Africa/Kigali] Validating session on init
[23-Feb-2026 17:54:12 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:54:12 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:54:17 Africa/Kigali] Validating session on init
[23-Feb-2026 17:54:22 Africa/Kigali] Validating session on init
[23-Feb-2026 17:54:47 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:54:47 Africa/Kigali] validate_session failed, checking remember token
[23-Feb-2026 17:54:47 Africa/Kigali] No valid session or remember token - redirecting to login
[23-Feb-2026 17:55:25 Africa/Kigali] Login attempt - Username: superadmin
[23-Feb-2026 17:55:25 Africa/Kigali] User found: Yes
[23-Feb-2026 17:55:25 Africa/Kigali] Login successful for user: superadmin
[23-Feb-2026 17:55:25 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[23-Feb-2026 17:55:25 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-23 17:55:25] [INFO] Successful login for user: superadmin
[23-Feb-2026 17:55:25 Africa/Kigali] Validating session on init
[23-Feb-2026 17:55:25 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 17:55:25 Africa/Kigali] Session validated successfully
[23-Feb-2026 17:55:45 Africa/Kigali] Validating session on init
[23-Feb-2026 18:37:52 Africa/Kigali] Validating session on init
[23-Feb-2026 18:37:52 Africa/Kigali] Validating session on init
[23-Feb-2026 18:37:52 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 18:37:52 Africa/Kigali] Session validated successfully
[23-Feb-2026 18:37:57 Africa/Kigali] Validating session on init
[23-Feb-2026 18:40:47 Africa/Kigali] Validating session on init
[23-Feb-2026 18:40:47 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 18:40:47 Africa/Kigali] Session validated successfully
[2026-02-23 18:40:47] [ERROR] Query failed: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'ruhondo_hms.quotations' doesn't exist SQL: 
    SELECT q.*, 
           DATEDIFF(q.valid_until, CURDATE()) as days_valid,
           CASE 
               WHEN q.status = 'accepted' THEN 'accepted'
               WHEN q.status = 'cancelled' THEN 'cancelled'
               WHEN q.valid_until < CURDATE() THEN 'expired'
               ELSE q.status 
           END as current_status
    FROM quotations q
    ORDER BY q.created_at DESC

[23-Feb-2026 18:40:47 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'ruhondo_hms.quotations' doesn't exist in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php:79
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(79): PDO->prepare('\n    SELECT q.*...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(102): db_query('\n    SELECT q.*...', Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/quotations/index.php(28): db_fetch_all('\n    SELECT q.*...')
#3 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php on line 79
[23-Feb-2026 18:50:44 Africa/Kigali] Validating session on init
[23-Feb-2026 18:50:44 Africa/Kigali] Validating session on init
[23-Feb-2026 18:50:44 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 18:50:44 Africa/Kigali] Session validated successfully
[23-Feb-2026 18:50:47 Africa/Kigali] Validating session on init
[23-Feb-2026 18:50:47 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 18:50:47 Africa/Kigali] Session validated successfully
[23-Feb-2026 18:52:16 Africa/Kigali] Validating session on init
[23-Feb-2026 18:52:16 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 18:52:16 Africa/Kigali] Session validated successfully
[23-Feb-2026 18:52:16 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function db_begin_transaction() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/quotations/create.php:40
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/quotations/create.php on line 40
[23-Feb-2026 18:55:05 Africa/Kigali] Validating session on init
[23-Feb-2026 18:55:11 Africa/Kigali] Validating session on init
[23-Feb-2026 18:55:16 Africa/Kigali] Validating session on init
[23-Feb-2026 18:55:16 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 18:55:16 Africa/Kigali] Session validated successfully
[23-Feb-2026 18:55:40 Africa/Kigali] Validating session on init
[23-Feb-2026 18:55:40 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 18:55:40 Africa/Kigali] Session validated successfully
[23-Feb-2026 18:55:44 Africa/Kigali] Validating session on init
[23-Feb-2026 18:55:44 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 18:55:44 Africa/Kigali] Session validated successfully
[23-Feb-2026 18:59:23 Africa/Kigali] Validating session on init
[23-Feb-2026 18:59:23 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 18:59:23 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:04:00 Africa/Kigali] Validating session on init
[23-Feb-2026 19:04:00 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:04:00 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:04:10 Africa/Kigali] Validating session on init
[23-Feb-2026 19:04:10 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:04:10 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:04:17 Africa/Kigali] Validating session on init
[23-Feb-2026 19:04:17 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:04:17 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:04:38 Africa/Kigali] Validating session on init
[23-Feb-2026 19:04:38 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:04:38 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:04:42 Africa/Kigali] Validating session on init
[23-Feb-2026 19:04:42 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:04:42 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:04:49 Africa/Kigali] Validating session on init
[23-Feb-2026 19:04:49 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:04:49 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:05:23 Africa/Kigali] Validating session on init
[23-Feb-2026 19:05:23 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:05:23 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:05:30 Africa/Kigali] Validating session on init
[23-Feb-2026 19:05:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:05:30 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:05:34 Africa/Kigali] Validating session on init
[23-Feb-2026 19:05:34 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:05:34 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:05:49 Africa/Kigali] Validating session on init
[23-Feb-2026 19:05:49 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:05:49 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:05:59 Africa/Kigali] Validating session on init
[23-Feb-2026 19:05:59 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:05:59 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:06:06 Africa/Kigali] Validating session on init
[23-Feb-2026 19:06:06 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:06:06 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:07:19 Africa/Kigali] Validating session on init
[23-Feb-2026 19:07:19 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:07:19 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:07:24 Africa/Kigali] Validating session on init
[23-Feb-2026 19:07:24 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:07:24 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:10:12 Africa/Kigali] Validating session on init
[23-Feb-2026 19:10:12 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:10:12 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:10:58 Africa/Kigali] Validating session on init
[23-Feb-2026 19:10:58 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:10:58 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:11:04 Africa/Kigali] Validating session on init
[23-Feb-2026 19:11:04 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:11:04 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:20:45 Africa/Kigali] Validating session on init
[23-Feb-2026 19:20:45 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:20:45 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:20:48 Africa/Kigali] Validating session on init
[23-Feb-2026 19:20:48 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:20:48 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:36:01 Africa/Kigali] Validating session on init
[23-Feb-2026 19:36:01 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:36:01 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:37:23 Africa/Kigali] Validating session on init
[23-Feb-2026 19:37:23 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:37:23 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:40:30 Africa/Kigali] Validating session on init
[23-Feb-2026 19:40:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:40:30 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:40:37 Africa/Kigali] Validating session on init
[23-Feb-2026 19:40:37 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:40:37 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:40:39 Africa/Kigali] Validating session on init
[23-Feb-2026 19:40:39 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:40:39 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:42:29 Africa/Kigali] Validating session on init
[23-Feb-2026 19:42:29 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:42:29 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:42:36 Africa/Kigali] Validating session on init
[23-Feb-2026 19:42:36 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:42:36 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:42:38 Africa/Kigali] Validating session on init
[23-Feb-2026 19:42:38 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:42:38 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:49:41 Africa/Kigali] Validating session on init
[23-Feb-2026 19:49:41 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:49:41 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:51:49 Africa/Kigali] Validating session on init
[23-Feb-2026 19:51:49 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:51:49 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:51:51 Africa/Kigali] Validating session on init
[23-Feb-2026 19:51:51 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:51:51 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:52:23 Africa/Kigali] Validating session on init
[23-Feb-2026 19:52:23 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:52:23 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:52:25 Africa/Kigali] Validating session on init
[23-Feb-2026 19:52:25 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:52:25 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:56:15 Africa/Kigali] Validating session on init
[23-Feb-2026 19:56:15 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:56:15 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:57:31 Africa/Kigali] Validating session on init
[23-Feb-2026 19:57:31 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:57:31 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:57:32 Africa/Kigali] Validating session on init
[23-Feb-2026 19:57:32 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:57:32 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:57:32 Africa/Kigali] Validating session on init
[23-Feb-2026 19:57:32 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:57:32 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:57:32 Africa/Kigali] Validating session on init
[23-Feb-2026 19:57:32 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:57:32 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:57:33 Africa/Kigali] Validating session on init
[23-Feb-2026 19:57:33 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:57:33 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:57:33 Africa/Kigali] Validating session on init
[23-Feb-2026 19:57:33 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:57:33 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:57:34 Africa/Kigali] Validating session on init
[23-Feb-2026 19:57:34 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:57:34 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:57:36 Africa/Kigali] Validating session on init
[23-Feb-2026 19:57:36 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:57:36 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:58:44 Africa/Kigali] Validating session on init
[23-Feb-2026 19:58:44 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:58:44 Africa/Kigali] Session validated successfully
[23-Feb-2026 19:58:54 Africa/Kigali] Validating session on init
[23-Feb-2026 19:58:54 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 19:58:54 Africa/Kigali] Session validated successfully
[23-Feb-2026 20:50:27 Africa/Kigali] Validating session on init
[23-Feb-2026 20:50:27 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 20:50:27 Africa/Kigali] Session validated successfully
[23-Feb-2026 20:50:30 Africa/Kigali] Validating session on init
[23-Feb-2026 20:50:30 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 20:50:30 Africa/Kigali] Session validated successfully
[23-Feb-2026 20:51:04 Africa/Kigali] Validating session on init
[23-Feb-2026 20:51:32 Africa/Kigali] Validating session on init
[23-Feb-2026 20:51:32 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 20:51:32 Africa/Kigali] Session validated successfully
[23-Feb-2026 20:51:55 Africa/Kigali] Validating session on init
[23-Feb-2026 20:55:48 Africa/Kigali] Validating session on init
[23-Feb-2026 20:55:48 Africa/Kigali] require_auth called - Checking session
[23-Feb-2026 20:55:48 Africa/Kigali] Session validated successfully
[24-Feb-2026 12:26:27 Africa/Kigali] Login attempt - Username: superadmin
[24-Feb-2026 12:26:27 Africa/Kigali] User found: Yes
[24-Feb-2026 12:26:28 Africa/Kigali] Login successful for user: superadmin
[24-Feb-2026 12:26:28 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[24-Feb-2026 12:26:28 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-24 12:26:28] [INFO] Successful login for user: superadmin
[24-Feb-2026 12:26:28 Africa/Kigali] Validating session on init
[24-Feb-2026 12:26:28 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 12:26:28 Africa/Kigali] Session validated successfully
[24-Feb-2026 12:28:04 Africa/Kigali] Validating session on init
[24-Feb-2026 12:28:04 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function get_db_size() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php:35
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php on line 35
[24-Feb-2026 12:29:02 Africa/Kigali] Validating session on init
[24-Feb-2026 12:29:02 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function get_db_size() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php:35
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php on line 35
[24-Feb-2026 12:29:05 Africa/Kigali] Validating session on init
[24-Feb-2026 12:29:05 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function get_db_size() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php:35
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php on line 35
[24-Feb-2026 12:43:21 Africa/Kigali] Validating session on init
[24-Feb-2026 12:43:21 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function db_connect() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/helpers.php:32
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php(35): get_db_size()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/helpers.php on line 32
[24-Feb-2026 12:43:25 Africa/Kigali] Validating session on init
[24-Feb-2026 12:43:25 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function db_connect() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/helpers.php:32
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/dashboard.php(35): get_db_size()
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/helpers.php on line 32
[24-Feb-2026 12:48:37 Africa/Kigali] Validating session on init
[24-Feb-2026 12:48:37 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:48:37 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:49:32 Africa/Kigali] Validating session on init
[24-Feb-2026 12:50:36 Africa/Kigali] Validating session on init
[24-Feb-2026 12:50:36 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:50:36 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:13 Africa/Kigali] Validating session on init
[24-Feb-2026 12:57:13 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:13 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:16 Africa/Kigali] Validating session on init
[24-Feb-2026 12:57:16 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:16 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:18 Africa/Kigali] Validating session on init
[24-Feb-2026 12:57:18 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:18 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:19 Africa/Kigali] Validating session on init
[24-Feb-2026 12:57:19 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:19 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:19 Africa/Kigali] Validating session on init
[24-Feb-2026 12:57:19 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:19 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:19 Africa/Kigali] Validating session on init
[24-Feb-2026 12:57:19 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:19 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:19 Africa/Kigali] Validating session on init
[24-Feb-2026 12:57:19 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:19 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:19 Africa/Kigali] Validating session on init
[24-Feb-2026 12:57:19 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:19 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[24-Feb-2026 12:57:47 Africa/Kigali] Validating session on init
[24-Feb-2026 12:59:28 Africa/Kigali] Validating session on init
[24-Feb-2026 12:59:28 Africa/Kigali] Validating session on init
[24-Feb-2026 12:59:28 Africa/Kigali] Validating session on init
[24-Feb-2026 12:59:28 Africa/Kigali] Validating session on init
[24-Feb-2026 12:59:29 Africa/Kigali] Validating session on init
[24-Feb-2026 12:59:29 Africa/Kigali] Validating session on init
[24-Feb-2026 12:59:29 Africa/Kigali] Validating session on init
[24-Feb-2026 12:59:58 Africa/Kigali] Validating session on init
[24-Feb-2026 13:00:02 Africa/Kigali] Validating session on init
[24-Feb-2026 13:00:10 Africa/Kigali] Validating session on init
[24-Feb-2026 13:00:15 Africa/Kigali] Validating session on init
[24-Feb-2026 13:00:20 Africa/Kigali] Validating session on init
[24-Feb-2026 13:00:27 Africa/Kigali] Validating session on init
[24-Feb-2026 13:03:09 Africa/Kigali] Validating session on init
[24-Feb-2026 13:03:09 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:03:09 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:03:09 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:03:09 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:03:09 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:03:09 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:03:09 Africa/Kigali] PHP Warning:  require_once(/Applications/XAMPP/xamppfiles/htdocs/views/partials/header.php): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 213
[24-Feb-2026 13:03:09 Africa/Kigali] PHP Fatal error:  Uncaught Error: Failed opening required '/Applications/XAMPP/xamppfiles/htdocs/views/partials/header.php' (include_path='.:/Applications/XAMPP/xamppfiles/lib/php') in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:213
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 213
[24-Feb-2026 13:03:13 Africa/Kigali] Validating session on init
[24-Feb-2026 13:03:13 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:03:13 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:03:13 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:03:13 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:03:13 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:03:13 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:03:13 Africa/Kigali] PHP Warning:  require_once(/Applications/XAMPP/xamppfiles/htdocs/views/partials/header.php): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 213
[24-Feb-2026 13:03:13 Africa/Kigali] PHP Fatal error:  Uncaught Error: Failed opening required '/Applications/XAMPP/xamppfiles/htdocs/views/partials/header.php' (include_path='.:/Applications/XAMPP/xamppfiles/lib/php') in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:213
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 213
[24-Feb-2026 13:10:30 Africa/Kigali] Validating session on init
[2026-02-24 13:10:30] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[24-Feb-2026 13:10:30 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[24-Feb-2026 13:10:35 Africa/Kigali] Validating session on init
[24-Feb-2026 13:10:35 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:10:35 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:10:45 Africa/Kigali] Validating session on init
[24-Feb-2026 13:10:45 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:10:45 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:10:58 Africa/Kigali] Validating session on init
[24-Feb-2026 13:10:58 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:10:58 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:16:11 Africa/Kigali] Validating session on init
[24-Feb-2026 13:16:11 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function formatCurrency() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reports/reservations.php:364
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reports/reservations.php on line 364
[24-Feb-2026 13:16:34 Africa/Kigali] Validating session on init
[24-Feb-2026 13:16:34 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function formatCurrency() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reports/reservations.php:364
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reports/reservations.php on line 364
[24-Feb-2026 13:17:10 Africa/Kigali] Validating session on init
[24-Feb-2026 13:17:10 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function formatCurrency() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reports/reservations.php:364
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reports/reservations.php on line 364
[24-Feb-2026 13:17:23 Africa/Kigali] Validating session on init
[24-Feb-2026 13:17:30 Africa/Kigali] Validating session on init
[2026-02-24 13:17:30] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[24-Feb-2026 13:17:30 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[24-Feb-2026 13:17:34 Africa/Kigali] Validating session on init
[24-Feb-2026 13:17:34 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:17:34 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:21:37 Africa/Kigali] Validating session on init
[24-Feb-2026 13:21:37 Africa/Kigali] Validating session on init
[24-Feb-2026 13:21:37 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:21:37 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:21:50 Africa/Kigali] Validating session on init
[2026-02-24 13:21:50] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[24-Feb-2026 13:21:50 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[24-Feb-2026 13:21:53 Africa/Kigali] Validating session on init
[24-Feb-2026 13:21:53 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:21:53 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:22:04 Africa/Kigali] Validating session on init
[24-Feb-2026 13:22:04 Africa/Kigali] Walk-in check-in error: No rooms available for these dates
[24-Feb-2026 13:22:04 Africa/Kigali] Validating session on init
[24-Feb-2026 13:22:04 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:22:04 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:22:24 Africa/Kigali] Validating session on init
[2026-02-24 13:22:24] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[24-Feb-2026 13:22:24 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[24-Feb-2026 13:22:45 Africa/Kigali] Validating session on init
[24-Feb-2026 13:22:45 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:22:45 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:22:53 Africa/Kigali] Validating session on init
[24-Feb-2026 13:22:53 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:22:53 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:23:08 Africa/Kigali] Validating session on init
[2026-02-24 13:23:08] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[24-Feb-2026 13:23:08 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[24-Feb-2026 13:23:10 Africa/Kigali] Validating session on init
[24-Feb-2026 13:23:10 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:23:10 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:23:59 Africa/Kigali] Validating session on init
[24-Feb-2026 13:23:59 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:23:59 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:24:08 Africa/Kigali] Validating session on init
[24-Feb-2026 13:24:08 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:24:08 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:24:08 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: guests | Record: 12
[24-Feb-2026 13:24:08 Africa/Kigali] Validating session on init
[24-Feb-2026 13:24:08 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:24:08 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:24:20 Africa/Kigali] Validating session on init
[24-Feb-2026 13:24:20 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:24:20 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:24:55 Africa/Kigali] Validating session on init
[24-Feb-2026 13:24:55 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:24:55 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:24:55 Africa/Kigali] Booking confirmation would be sent to: joachimdjihad201723@gmail.com
[24-Feb-2026 13:24:55 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: reservations | Record: 11
[24-Feb-2026 13:28:59 Africa/Kigali] Validating session on init
[24-Feb-2026 13:33:22 Africa/Kigali] Validating session on init
[24-Feb-2026 13:38:42 Africa/Kigali] Validating session on init
[24-Feb-2026 13:39:09 Africa/Kigali] Validating session on init
[24-Feb-2026 13:39:09 Africa/Kigali] Validating session on init
[24-Feb-2026 13:39:15 Africa/Kigali] Validating session on init
[24-Feb-2026 13:39:31 Africa/Kigali] Validating session on init
[24-Feb-2026 13:39:31 Africa/Kigali] Validating session on init
[24-Feb-2026 13:39:56 Africa/Kigali] Validating session on init
[24-Feb-2026 13:39:56 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:39:56 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:40:15 Africa/Kigali] Validating session on init
[24-Feb-2026 13:40:15 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:40:15 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:40:32 Africa/Kigali] Validating session on init
[24-Feb-2026 13:40:32 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:40:32 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:40:46 Africa/Kigali] Validating session on init
[2026-02-24 13:40:46] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[24-Feb-2026 13:40:46 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[24-Feb-2026 13:40:46 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[24-Feb-2026 13:40:55 Africa/Kigali] Validating session on init
[24-Feb-2026 13:40:55 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:40:55 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:41:17 Africa/Kigali] Validating session on init
[24-Feb-2026 13:44:54 Africa/Kigali] Validating session on init
[24-Feb-2026 13:50:45 Africa/Kigali] Validating session on init
[24-Feb-2026 13:51:26 Africa/Kigali] Validating session on init
[24-Feb-2026 13:51:26 Africa/Kigali] Validating session on init
[24-Feb-2026 13:54:05 Africa/Kigali] Validating session on init
[24-Feb-2026 13:55:06 Africa/Kigali] Validating session on init
[24-Feb-2026 13:55:06 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:55:06 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:55:07 Africa/Kigali] Validating session on init
[24-Feb-2026 13:55:07 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 13:55:07 Africa/Kigali] Session validated successfully
[24-Feb-2026 13:55:20 Africa/Kigali] Validating session on init
[24-Feb-2026 13:55:42 Africa/Kigali] Validating session on init
[24-Feb-2026 13:56:08 Africa/Kigali] Validating session on init
[24-Feb-2026 13:56:08 Africa/Kigali] Validating session on init
[24-Feb-2026 13:56:24 Africa/Kigali] Validating session on init
[24-Feb-2026 13:56:27 Africa/Kigali] Validating session on init
[24-Feb-2026 14:00:24 Africa/Kigali] Validating session on init
[24-Feb-2026 14:00:24 Africa/Kigali] Validating session on init
[24-Feb-2026 14:00:24 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:00:24 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:00:30 Africa/Kigali] Validating session on init
[24-Feb-2026 14:00:39 Africa/Kigali] Validating session on init
[24-Feb-2026 14:00:39 Africa/Kigali] Validating session on init
[24-Feb-2026 14:00:57 Africa/Kigali] Validating session on init
[24-Feb-2026 14:04:07 Africa/Kigali] Validating session on init
[24-Feb-2026 14:08:44 Africa/Kigali] Validating session on init
[24-Feb-2026 14:08:57 Africa/Kigali] Validating session on init
[24-Feb-2026 14:09:18 Africa/Kigali] Validating session on init
[24-Feb-2026 14:09:19 Africa/Kigali] Validating session on init
[24-Feb-2026 14:09:29 Africa/Kigali] Validating session on init
[24-Feb-2026 14:09:42 Africa/Kigali] Validating session on init
[24-Feb-2026 14:09:42 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:09:42 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:13:50 Africa/Kigali] Validating session on init
[2026-02-24 14:13:50] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1247 Reference 'total_balance' not supported (reference to group function) SQL: 
            SELECT 
                g.guest_id, g.first_name, g.last_name, g.email, g.phone,
                COUNT(DISTINCT i.invoice_id) as invoice_count,
                COALESCE(SUM(i.balance), 0) as total_balance,
                MAX(i.due_date) as oldest_invoice,
                MIN(i.due_date) as newest_invoice,
                COALESCE(SUM(CASE WHEN i.status = 'overdue' THEN i.balance ELSE 0 END), 0) as overdue_amount,
                COUNT(CASE WHEN i.status = 'overdue' THEN 1 END) as overdue_count
            FROM guests g
            JOIN invoices i ON g.guest_id = i.guest_id
            WHERE i.status IN ('sent', 'partial', 'overdue') AND i.balance > 0
            GROUP BY g.guest_id
            HAVING total_balance > 0
            ORDER BY 
                CASE WHEN 'balance' = 'balance' THEN total_balance END DESC,
                CASE WHEN 'balance' = 'name' THEN g.first_name END DESC,
                CASE WHEN 'balance' = 'invoices' THEN invoice_count END DESC
            LIMIT 25 OFFSET 0
[24-Feb-2026 14:13:50 Africa/Kigali] Error fetching debtors: SQLSTATE[42S22]: Column not found: 1247 Reference 'total_balance' not supported (reference to group function)
[24-Feb-2026 14:14:10 Africa/Kigali] Validating session on init
[24-Feb-2026 14:14:10 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:14:10 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:14:16 Africa/Kigali] Validating session on init
[24-Feb-2026 14:14:16 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:14:16 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:14:21 Africa/Kigali] Validating session on init
[24-Feb-2026 14:14:21 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:14:21 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:14:32 Africa/Kigali] Validating session on init
[24-Feb-2026 14:14:32 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:14:32 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:14:44 Africa/Kigali] Validating session on init
[24-Feb-2026 14:14:44 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:14:44 Africa/Kigali] Session validated successfully
[2026-02-24 14:14:44] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[24-Feb-2026 14:14:44 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[24-Feb-2026 14:15:08 Africa/Kigali] Validating session on init
[24-Feb-2026 14:15:08 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:15:08 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:15:11 Africa/Kigali] Validating session on init
[24-Feb-2026 14:15:11 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:15:11 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:15:13 Africa/Kigali] Validating session on init
[24-Feb-2026 14:15:13 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:15:13 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:15:14 Africa/Kigali] Validating session on init
[24-Feb-2026 14:15:14 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:15:14 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:15:16 Africa/Kigali] Validating session on init
[24-Feb-2026 14:15:16 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:15:16 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:15:16 Africa/Kigali] Validating session on init
[24-Feb-2026 14:15:16 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:15:16 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:15:17 Africa/Kigali] Validating session on init
[24-Feb-2026 14:15:17 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:15:17 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:15:54 Africa/Kigali] Validating session on init
[24-Feb-2026 14:15:54 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:15:54 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:15:54 Africa/Kigali] Validating session on init
[24-Feb-2026 14:15:54 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:15:54 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:16:00 Africa/Kigali] Validating session on init
[24-Feb-2026 14:16:00 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:16:00 Africa/Kigali] Session validated successfully
[2026-02-24 14:16:00] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[24-Feb-2026 14:16:00 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[24-Feb-2026 14:16:02 Africa/Kigali] Validating session on init
[24-Feb-2026 14:16:02 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:16:02 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:16:37 Africa/Kigali] Validating session on init
[24-Feb-2026 14:16:37 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:16:37 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:20:16 Africa/Kigali] Validating session on init
[24-Feb-2026 14:20:30 Africa/Kigali] Validating session on init
[24-Feb-2026 14:20:30 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:20:30 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:21:19 Africa/Kigali] Validating session on init
[24-Feb-2026 14:21:19 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:21:19 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:23:51 Africa/Kigali] Validating session on init
[24-Feb-2026 14:26:38 Africa/Kigali] Validating session on init
[24-Feb-2026 14:27:35 Africa/Kigali] Validating session on init
[24-Feb-2026 14:28:12 Africa/Kigali] Validating session on init
[24-Feb-2026 14:28:17 Africa/Kigali] Validating session on init
[24-Feb-2026 14:28:32 Africa/Kigali] Validating session on init
[24-Feb-2026 14:29:45 Africa/Kigali] Validating session on init
[24-Feb-2026 14:29:45 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:29:45 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:30:21 Africa/Kigali] Validating session on init
[24-Feb-2026 14:30:21 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:30:21 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:30:29 Africa/Kigali] Validating session on init
[24-Feb-2026 14:30:29 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:30:29 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:31:03 Africa/Kigali] Validating session on init
[24-Feb-2026 14:31:03 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:31:03 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:31:22 Africa/Kigali] Validating session on init
[24-Feb-2026 14:31:22 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:31:22 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:34:12 Africa/Kigali] Validating session on init
[2026-02-24 14:34:12] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[24-Feb-2026 14:34:12 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[24-Feb-2026 14:34:12 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[24-Feb-2026 14:34:47 Africa/Kigali] Validating session on init
[24-Feb-2026 14:34:47 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:34:47 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:34:58 Africa/Kigali] Validating session on init
[24-Feb-2026 14:34:58 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:34:58 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:35:02 Africa/Kigali] Validating session on init
[24-Feb-2026 14:35:02 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:35:02 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:35:25 Africa/Kigali] Validating session on init
[24-Feb-2026 14:35:25 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:35:25 Africa/Kigali] Session validated successfully
[2026-02-24 14:35:25] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause' SQL: 
        SELECT 
            rt.room_type_id,
            rt.type_name,
            rt.type_code,
            rt.base_price,
            MIN(rp.base_rate) as min_rate,
            MAX(rp.base_rate) as max_rate,
            COUNT(rp.rate_plan_id) as plan_count
        FROM room_types rt
        LEFT JOIN rate_plans rp ON rt.room_type_id = rp.room_type_id AND rp.is_active = 1
        WHERE rt.is_active = 1
        GROUP BY rt.room_type_id
        ORDER BY rt.type_name
    
[24-Feb-2026 14:35:25 Africa/Kigali] Error fetching current rates: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause'
[24-Feb-2026 14:36:04 Africa/Kigali] Validating session on init
[2026-02-24 14:36:04] [ERROR] Query failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5 SQL: 
        SELECT COUNT(*) FROM (
            SELECT guest_id FROM reservations 
            GROUP BY guest_id 
            HAVING COUNT(*) > 1
        ) as returning
    
[24-Feb-2026 14:36:04 Africa/Kigali] Database query error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 5
[24-Feb-2026 14:36:18 Africa/Kigali] Validating session on init
[24-Feb-2026 14:36:18 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:36:18 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:36:25 Africa/Kigali] Validating session on init
[24-Feb-2026 14:36:28 Africa/Kigali] Validating session on init
[24-Feb-2026 14:39:05 Africa/Kigali] Validating session on init
[24-Feb-2026 14:39:05 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:39:05 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:39:06 Africa/Kigali] Validating session on init
[24-Feb-2026 14:39:06 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 14:39:06 Africa/Kigali] Session validated successfully
[24-Feb-2026 14:39:19 Africa/Kigali] Validating session on init
[2026-02-24 14:39:19] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1247 Reference 'total_balance' not supported (reference to group function) SQL: 
            SELECT 
                g.guest_id, g.first_name, g.last_name, g.email, g.phone,
                COUNT(DISTINCT i.invoice_id) as invoice_count,
                COALESCE(SUM(i.balance), 0) as total_balance,
                MAX(i.due_date) as oldest_invoice,
                MIN(i.due_date) as newest_invoice,
                COALESCE(SUM(CASE WHEN i.status = 'overdue' THEN i.balance ELSE 0 END), 0) as overdue_amount,
                COUNT(CASE WHEN i.status = 'overdue' THEN 1 END) as overdue_count
            FROM guests g
            JOIN invoices i ON g.guest_id = i.guest_id
            WHERE i.status IN ('sent', 'partial', 'overdue') AND i.balance > 0
            GROUP BY g.guest_id
            HAVING total_balance > 0
            ORDER BY 
                CASE WHEN 'balance' = 'balance' THEN total_balance END DESC,
                CASE WHEN 'balance' = 'name' THEN g.first_name END DESC,
                CASE WHEN 'balance' = 'invoices' THEN invoice_count END DESC
            LIMIT 25 OFFSET 0
[24-Feb-2026 14:39:19 Africa/Kigali] Error fetching debtors: SQLSTATE[42S22]: Column not found: 1247 Reference 'total_balance' not supported (reference to group function)
[24-Feb-2026 14:40:58 Africa/Kigali] Validating session on init
[24-Feb-2026 14:41:17 Africa/Kigali] Validating session on init
[24-Feb-2026 14:59:56 Africa/Kigali] Validating session on init
[24-Feb-2026 15:01:33 Africa/Kigali] Validating session on init
[2026-02-24 15:01:33] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'balance' in table 'invoices' has been ignored SQL: INSERT INTO invoices (invoice_number, reservation_id, guest_id, invoice_date, due_date, subtotal, tax_amount, total_amount, paid_amount, balance, status, notes, created_by, created_at) VALUES (:invoice_number, :reservation_id, :guest_id, :invoice_date, :due_date, :subtotal, :tax_amount, :total_amount, :paid_amount, :balance, :status, :notes, :created_by, :created_at)
[2026-02-24 15:01:33] [ERROR] Invoice creation failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'balance' in table 'invoices' has been ignored
[24-Feb-2026 15:06:31 Africa/Kigali] Validating session on init
[24-Feb-2026 15:07:18 Africa/Kigali] Validating session on init
[2026-02-24 15:07:18] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_at' in 'field list' SQL: INSERT INTO invoice_items (invoice_id, description, quantity, unit_price, total_amount, created_at) VALUES (:invoice_id, :description, :quantity, :unit_price, :total_amount, :created_at)
[2026-02-24 15:07:18] [ERROR] Invoice creation failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_at' in 'field list'
[24-Feb-2026 15:08:28 Africa/Kigali] Validating session on init
[24-Feb-2026 15:09:04 Africa/Kigali] Validating session on init
[24-Feb-2026 15:12:14 Africa/Kigali] Validating session on init
[24-Feb-2026 15:22:31 Africa/Kigali] Validating session on init
[24-Feb-2026 15:23:10 Africa/Kigali] Validating session on init
[24-Feb-2026 15:23:10 Africa/Kigali] Validating session on init
[24-Feb-2026 15:23:30 Africa/Kigali] Validating session on init
[24-Feb-2026 15:23:30 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 15:23:30 Africa/Kigali] Session validated successfully
[24-Feb-2026 15:23:48 Africa/Kigali] Validating session on init
[24-Feb-2026 15:23:48 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 15:23:48 Africa/Kigali] Session validated successfully
[24-Feb-2026 15:23:56 Africa/Kigali] Validating session on init
[2026-02-24 15:23:56] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[24-Feb-2026 15:23:56 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[24-Feb-2026 15:23:56 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[24-Feb-2026 15:24:30 Africa/Kigali] Validating session on init
[2026-02-24 15:24:30] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[24-Feb-2026 15:24:30 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[24-Feb-2026 15:24:30 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[24-Feb-2026 15:24:36 Africa/Kigali] Validating session on init
[24-Feb-2026 15:24:36 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 15:24:36 Africa/Kigali] Session validated successfully
[24-Feb-2026 15:24:36 Africa/Kigali] Validating session on init
[24-Feb-2026 15:24:36 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 15:24:36 Africa/Kigali] Session validated successfully
[24-Feb-2026 15:24:41 Africa/Kigali] Validating session on init
[24-Feb-2026 15:24:41 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 15:24:41 Africa/Kigali] Session validated successfully
[24-Feb-2026 15:24:49 Africa/Kigali] Validating session on init
[24-Feb-2026 15:25:01 Africa/Kigali] Validating session on init
[24-Feb-2026 15:25:04 Africa/Kigali] Validating session on init
[24-Feb-2026 15:25:37 Africa/Kigali] Validating session on init
[24-Feb-2026 15:25:43 Africa/Kigali] Validating session on init
[24-Feb-2026 15:26:17 Africa/Kigali] Validating session on init
[24-Feb-2026 15:27:05 Africa/Kigali] Validating session on init
[24-Feb-2026 15:27:07 Africa/Kigali] Validating session on init
[24-Feb-2026 15:27:10 Africa/Kigali] Validating session on init
[24-Feb-2026 15:27:14 Africa/Kigali] Validating session on init
[24-Feb-2026 15:27:44 Africa/Kigali] Validating session on init
[24-Feb-2026 15:28:02 Africa/Kigali] Validating session on init
[24-Feb-2026 15:28:18 Africa/Kigali] Validating session on init
[24-Feb-2026 15:29:02 Africa/Kigali] Validating session on init
[2026-02-24 15:29:02] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1247 Reference 'total_balance' not supported (reference to group function) SQL: 
            SELECT 
                g.guest_id, g.first_name, g.last_name, g.email, g.phone,
                COUNT(DISTINCT i.invoice_id) as invoice_count,
                COALESCE(SUM(i.balance), 0) as total_balance,
                MAX(i.due_date) as oldest_invoice,
                MIN(i.due_date) as newest_invoice,
                COALESCE(SUM(CASE WHEN i.status = 'overdue' THEN i.balance ELSE 0 END), 0) as overdue_amount,
                COUNT(CASE WHEN i.status = 'overdue' THEN 1 END) as overdue_count
            FROM guests g
            JOIN invoices i ON g.guest_id = i.guest_id
            WHERE i.status IN ('sent', 'partial', 'overdue') AND i.balance > 0
            GROUP BY g.guest_id
            HAVING total_balance > 0
            ORDER BY 
                CASE WHEN 'balance' = 'balance' THEN total_balance END DESC,
                CASE WHEN 'balance' = 'name' THEN g.first_name END DESC,
                CASE WHEN 'balance' = 'invoices' THEN invoice_count END DESC
            LIMIT 25 OFFSET 0
[24-Feb-2026 15:29:02 Africa/Kigali] Error fetching debtors: SQLSTATE[42S22]: Column not found: 1247 Reference 'total_balance' not supported (reference to group function)
[24-Feb-2026 15:29:12 Africa/Kigali] Validating session on init
[24-Feb-2026 15:29:30 Africa/Kigali] Validating session on init
[24-Feb-2026 15:29:30 Africa/Kigali] Validating session on init
[24-Feb-2026 15:30:11 Africa/Kigali] Validating session on init
[24-Feb-2026 15:30:12 Africa/Kigali] Validating session on init
[24-Feb-2026 15:30:12 Africa/Kigali] Validating session on init
[24-Feb-2026 15:31:09 Africa/Kigali] Validating session on init
[24-Feb-2026 15:31:52 Africa/Kigali] Validating session on init
[24-Feb-2026 15:33:44 Africa/Kigali] Validating session on init
[2026-02-24 15:33:44] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1247 Reference 'total_balance' not supported (reference to group function) SQL: 
            SELECT 
                g.guest_id, g.first_name, g.last_name, g.email, g.phone,
                COUNT(DISTINCT i.invoice_id) as invoice_count,
                COALESCE(SUM(i.balance), 0) as total_balance,
                MAX(i.due_date) as oldest_invoice,
                MIN(i.due_date) as newest_invoice,
                COALESCE(SUM(CASE WHEN i.status = 'overdue' THEN i.balance ELSE 0 END), 0) as overdue_amount,
                COUNT(CASE WHEN i.status = 'overdue' THEN 1 END) as overdue_count
            FROM guests g
            JOIN invoices i ON g.guest_id = i.guest_id
            WHERE i.status IN ('sent', 'partial', 'overdue') AND i.balance > 0
            GROUP BY g.guest_id
            HAVING total_balance > 0
            ORDER BY 
                CASE WHEN 'balance' = 'balance' THEN total_balance END DESC,
                CASE WHEN 'balance' = 'name' THEN g.first_name END DESC,
                CASE WHEN 'balance' = 'invoices' THEN invoice_count END DESC
            LIMIT 25 OFFSET 0
[24-Feb-2026 15:33:44 Africa/Kigali] Error fetching debtors: SQLSTATE[42S22]: Column not found: 1247 Reference 'total_balance' not supported (reference to group function)
[24-Feb-2026 15:33:53 Africa/Kigali] Validating session on init
[24-Feb-2026 15:33:53 Africa/Kigali] Validating session on init
[24-Feb-2026 15:34:50 Africa/Kigali] Validating session on init
[24-Feb-2026 15:34:54 Africa/Kigali] Validating session on init
[24-Feb-2026 15:34:54 Africa/Kigali] Validating session on init
[24-Feb-2026 15:35:21 Africa/Kigali] Validating session on init
[24-Feb-2026 15:35:45 Africa/Kigali] Validating session on init
[24-Feb-2026 15:35:45 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 15:35:45 Africa/Kigali] Session validated successfully
[24-Feb-2026 15:35:57 Africa/Kigali] Validating session on init
[24-Feb-2026 15:35:57 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 15:35:57 Africa/Kigali] Session validated successfully
[24-Feb-2026 15:35:59 Africa/Kigali] Validating session on init
[24-Feb-2026 15:35:59 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 15:35:59 Africa/Kigali] Session validated successfully
[24-Feb-2026 15:36:04 Africa/Kigali] Validating session on init
[24-Feb-2026 15:36:04 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 15:36:04 Africa/Kigali] Session validated successfully
[24-Feb-2026 15:36:04 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: rooms | Record: 7
[24-Feb-2026 15:36:04 Africa/Kigali] Validating session on init
[24-Feb-2026 15:36:04 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 15:36:04 Africa/Kigali] Session validated successfully
[24-Feb-2026 15:36:13 Africa/Kigali] Validating session on init
[24-Feb-2026 15:36:13 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 15:36:13 Africa/Kigali] Session validated successfully
[24-Feb-2026 15:36:27 Africa/Kigali] Validating session on init
[24-Feb-2026 15:36:59 Africa/Kigali] Validating session on init
[24-Feb-2026 15:37:20 Africa/Kigali] Validating session on init
[24-Feb-2026 15:37:30 Africa/Kigali] Validating session on init
[24-Feb-2026 15:38:23 Africa/Kigali] Validating session on init
[24-Feb-2026 15:38:24 Africa/Kigali] Validating session on init
[24-Feb-2026 15:41:04 Africa/Kigali] Validating session on init
[24-Feb-2026 16:08:07 Africa/Kigali] Validating session on init
[24-Feb-2026 16:08:30 Africa/Kigali] Validating session on init
[24-Feb-2026 16:08:40 Africa/Kigali] Validating session on init
[24-Feb-2026 16:09:29 Africa/Kigali] Validating session on init
[24-Feb-2026 16:09:29 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function formatCurrency() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reports/reservations.php:364
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reports/reservations.php on line 364
[24-Feb-2026 16:09:45 Africa/Kigali] Validating session on init
[24-Feb-2026 16:09:45 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function formatCurrency() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reports/reservations.php:364
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reports/reservations.php on line 364
[24-Feb-2026 16:09:58 Africa/Kigali] Validating session on init
[24-Feb-2026 16:10:09 Africa/Kigali] Validating session on init
[24-Feb-2026 16:10:19 Africa/Kigali] Validating session on init
[24-Feb-2026 16:21:42 Africa/Kigali] Validating session on init
[24-Feb-2026 16:21:42 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 16:21:42 Africa/Kigali] Session validated successfully
[24-Feb-2026 16:21:48 Africa/Kigali] Validating session on init
[24-Feb-2026 16:21:50 Africa/Kigali] Validating session on init
[24-Feb-2026 16:21:50 Africa/Kigali] Validating session on init
[24-Feb-2026 16:22:15 Africa/Kigali] Validating session on init
[24-Feb-2026 16:22:17 Africa/Kigali] Validating session on init
[24-Feb-2026 16:22:42 Africa/Kigali] Validating session on init
[24-Feb-2026 16:22:43 Africa/Kigali] Validating session on init
[24-Feb-2026 16:23:23 Africa/Kigali] Validating session on init
[24-Feb-2026 16:23:23 Africa/Kigali] Validating session on init
[24-Feb-2026 16:23:54 Africa/Kigali] Validating session on init
[24-Feb-2026 16:24:19 Africa/Kigali] Validating session on init
[24-Feb-2026 16:24:23 Africa/Kigali] Validating session on init
[24-Feb-2026 16:24:31 Africa/Kigali] Validating session on init
[24-Feb-2026 16:24:38 Africa/Kigali] Validating session on init
[24-Feb-2026 16:24:43 Africa/Kigali] Validating session on init
[24-Feb-2026 16:25:32 Africa/Kigali] Validating session on init
[24-Feb-2026 16:25:36 Africa/Kigali] Validating session on init
[24-Feb-2026 16:25:38 Africa/Kigali] Validating session on init
[24-Feb-2026 16:26:10 Africa/Kigali] Validating session on init
[24-Feb-2026 16:26:17 Africa/Kigali] Validating session on init
[24-Feb-2026 16:26:17 Africa/Kigali] Validating session on init
[24-Feb-2026 16:26:20 Africa/Kigali] Validating session on init
[24-Feb-2026 16:26:37 Africa/Kigali] Validating session on init
[24-Feb-2026 16:26:37 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 16:26:37 Africa/Kigali] Session validated successfully
[24-Feb-2026 16:26:49 Africa/Kigali] Validating session on init
[24-Feb-2026 16:27:03 Africa/Kigali] Validating session on init
[24-Feb-2026 16:28:05 Africa/Kigali] Validating session on init
[24-Feb-2026 16:28:05 Africa/Kigali] Validating session on init
[24-Feb-2026 16:28:16 Africa/Kigali] Validating session on init
[24-Feb-2026 16:28:36 Africa/Kigali] Validating session on init
[24-Feb-2026 16:28:36 Africa/Kigali] Validating session on init
[24-Feb-2026 16:28:59 Africa/Kigali] Validating session on init
[24-Feb-2026 16:28:59 Africa/Kigali] Validating session on init
[24-Feb-2026 16:29:01 Africa/Kigali] Validating session on init
[2026-02-24 16:29:01] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'total_price' in table 'purchase_order_items' has been ignored SQL: INSERT INTO purchase_order_items (po_id, product_id, quantity_ordered, unit_price, total_price) VALUES (:po_id, :product_id, :quantity_ordered, :unit_price, :total_price)
[2026-02-24 16:29:01] [ERROR] PO creation failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'total_price' in table 'purchase_order_items' has been ignored
[24-Feb-2026 16:29:45 Africa/Kigali] Validating session on init
[24-Feb-2026 16:29:53 Africa/Kigali] Validating session on init
[24-Feb-2026 16:29:59 Africa/Kigali] Validating session on init
[2026-02-24 16:29:59] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[24-Feb-2026 16:29:59 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[24-Feb-2026 16:29:59 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[24-Feb-2026 16:30:19 Africa/Kigali] Validating session on init
[24-Feb-2026 16:30:19 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 16:30:19 Africa/Kigali] Session validated successfully
[24-Feb-2026 16:30:42 Africa/Kigali] Validating session on init
[24-Feb-2026 17:05:58 Africa/Kigali] Validating session on init
[24-Feb-2026 17:06:28 Africa/Kigali] Validating session on init
[24-Feb-2026 17:07:57 Africa/Kigali] Validating session on init
[24-Feb-2026 17:16:05 Africa/Kigali] Validating session on init
[24-Feb-2026 17:16:14 Africa/Kigali] Validating session on init
[24-Feb-2026 17:16:45 Africa/Kigali] Validating session on init
[24-Feb-2026 17:23:14 Africa/Kigali] Validating session on init
[24-Feb-2026 17:23:42 Africa/Kigali] Validating session on init
[2026-02-24 17:23:42] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'notes' in 'field list' SQL: INSERT INTO maintenance_tickets (ticket_code, room_id, reported_by, issue_type, description, priority, status, estimated_cost, notes, created_at) VALUES (:ticket_code, :room_id, :reported_by, :issue_type, :description, :priority, :status, :estimated_cost, :notes, :created_at)
[2026-02-24 17:23:42] [ERROR] Ticket creation failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'notes' in 'field list'
[24-Feb-2026 17:25:32 Africa/Kigali] Validating session on init
[24-Feb-2026 17:25:47 Africa/Kigali] Validating session on init
[24-Feb-2026 17:25:55 Africa/Kigali] Validating session on init
[2026-02-24 17:25:55] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'notes' in 'field list' SQL: INSERT INTO maintenance_tickets (ticket_code, room_id, reported_by, issue_type, description, priority, status, estimated_cost, notes, created_at) VALUES (:ticket_code, :room_id, :reported_by, :issue_type, :description, :priority, :status, :estimated_cost, :notes, :created_at)
[2026-02-24 17:25:55] [ERROR] Ticket creation failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'notes' in 'field list'
[24-Feb-2026 17:27:25 Africa/Kigali] Validating session on init
[24-Feb-2026 17:36:44 Africa/Kigali] Validating session on init
[24-Feb-2026 17:42:16 Africa/Kigali] Validating session on init
[24-Feb-2026 17:42:25 Africa/Kigali] Validating session on init
[24-Feb-2026 17:42:25 Africa/Kigali] Validating session on init
[24-Feb-2026 17:44:30 Africa/Kigali] Validating session on init
[24-Feb-2026 17:44:39 Africa/Kigali] Validating session on init
[24-Feb-2026 17:44:51 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:15 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:17 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:21 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:24 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:36 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:37 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:37 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:37 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:37 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:37 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:37 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:37 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:39 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:39 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:49:39 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:49:51 Africa/Kigali] Validating session on init
[24-Feb-2026 17:49:51 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:49:51 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:50:05 Africa/Kigali] Validating session on init
[24-Feb-2026 17:50:05 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:50:05 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:50:05 Africa/Kigali] AUDIT: User: 1 | Action: status_change | Table: rooms | Record: 1
[24-Feb-2026 17:50:05 Africa/Kigali] Validating session on init
[24-Feb-2026 17:50:05 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:50:05 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:50:13 Africa/Kigali] Validating session on init
[24-Feb-2026 17:50:13 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:50:13 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:50:24 Africa/Kigali] Validating session on init
[24-Feb-2026 17:50:24 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:50:24 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:50:24 Africa/Kigali] AUDIT: User: 1 | Action: upload | Table: room_images
[24-Feb-2026 17:50:29 Africa/Kigali] Validating session on init
[24-Feb-2026 17:50:29 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:50:29 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:50:34 Africa/Kigali] Validating session on init
[24-Feb-2026 17:50:34 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:50:34 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:50:59 Africa/Kigali] Validating session on init
[24-Feb-2026 17:50:59 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:50:59 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:51:04 Africa/Kigali] Validating session on init
[24-Feb-2026 17:51:04 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:51:04 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:51:05 Africa/Kigali] Validating session on init
[24-Feb-2026 17:51:05 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:51:05 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:51:05 Africa/Kigali] Validating session on init
[24-Feb-2026 17:51:05 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:51:05 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:51:06 Africa/Kigali] Validating session on init
[24-Feb-2026 17:51:06 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:51:06 Africa/Kigali] Session validated successfully
[24-Feb-2026 17:51:20 Africa/Kigali] Validating session on init
[24-Feb-2026 17:51:20 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:51:20 Africa/Kigali] Session validated successfully
[2026-02-24 17:51:20] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[24-Feb-2026 17:51:20 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[24-Feb-2026 17:51:21 Africa/Kigali] Validating session on init
[24-Feb-2026 17:51:21 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 17:51:21 Africa/Kigali] Session validated successfully
[24-Feb-2026 18:00:32 Africa/Kigali] Validating session on init
[24-Feb-2026 18:00:32 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:00:32 Africa/Kigali] Session validated successfully
[24-Feb-2026 18:00:35 Africa/Kigali] Validating session on init
[24-Feb-2026 18:00:35 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:00:35 Africa/Kigali] Session validated successfully
[24-Feb-2026 18:00:50 Africa/Kigali] Validating session on init
[24-Feb-2026 18:00:50 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:00:50 Africa/Kigali] Session validated successfully
[2026-02-24 18:00:50] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'sale_number' in 'field list' SQL: INSERT INTO pos_sales (sale_number, outlet_id, guest_id, reservation_id, customer_name, subtotal, tax_amount, discount, discount_type, total_amount, payment_method, status, created_by, created_at) VALUES (:sale_number, :outlet_id, :guest_id, :reservation_id, :customer_name, :subtotal, :tax_amount, :discount, :discount_type, :total_amount, :payment_method, :status, :created_by, :created_at)
[24-Feb-2026 18:04:52 Africa/Kigali] Validating session on init
[24-Feb-2026 18:04:52 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:04:52 Africa/Kigali] Session validated successfully
[24-Feb-2026 18:05:10 Africa/Kigali] Validating session on init
[24-Feb-2026 18:05:10 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:05:10 Africa/Kigali] Session validated successfully
[2026-02-24 18:05:10] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tax' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, reservation_id, customer_name, subtotal, tax, discount, discount_type, total, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :reservation_id, :customer_name, :subtotal, :tax, :discount, :discount_type, :total, :payment_method, :status, :created_by, :created_at)
[24-Feb-2026 18:13:15 Africa/Kigali] Validating session on init
[24-Feb-2026 18:13:15 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:13:15 Africa/Kigali] Session validated successfully
[24-Feb-2026 18:13:38 Africa/Kigali] Validating session on init
[24-Feb-2026 18:13:38 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:13:38 Africa/Kigali] Session validated successfully
[2026-02-24 18:13:38] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tax' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, reservation_id, customer_name, subtotal, tax, discount, discount_type, total, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :reservation_id, :customer_name, :subtotal, :tax, :discount, :discount_type, :total, :payment_method, :status, :created_by, :created_at)
[24-Feb-2026 18:17:24 Africa/Kigali] Validating session on init
[24-Feb-2026 18:17:24 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:17:24 Africa/Kigali] Session validated successfully
[2026-02-24 18:17:24] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tax' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, customer_name, subtotal, tax, discount, discount_type, total, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :customer_name, :subtotal, :tax, :discount, :discount_type, :total, :payment_method, :status, :created_by, :created_at)
[24-Feb-2026 18:17:29 Africa/Kigali] Validating session on init
[24-Feb-2026 18:17:29 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:17:29 Africa/Kigali] Session validated successfully
[2026-02-24 18:17:29] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tax' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, customer_name, subtotal, tax, discount, discount_type, total, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :customer_name, :subtotal, :tax, :discount, :discount_type, :total, :payment_method, :status, :created_by, :created_at)
[24-Feb-2026 18:17:32 Africa/Kigali] Validating session on init
[24-Feb-2026 18:17:32 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:17:32 Africa/Kigali] Session validated successfully
[2026-02-24 18:17:32] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tax' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, customer_name, subtotal, tax, discount, discount_type, total, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :customer_name, :subtotal, :tax, :discount, :discount_type, :total, :payment_method, :status, :created_by, :created_at)
[24-Feb-2026 18:17:42 Africa/Kigali] Validating session on init
[24-Feb-2026 18:17:42 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:17:42 Africa/Kigali] Session validated successfully
[2026-02-24 18:17:42] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tax' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, customer_name, subtotal, tax, discount, discount_type, total, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :customer_name, :subtotal, :tax, :discount, :discount_type, :total, :payment_method, :status, :created_by, :created_at)
[24-Feb-2026 18:17:49 Africa/Kigali] Validating session on init
[24-Feb-2026 18:17:49 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:17:49 Africa/Kigali] Session validated successfully
[2026-02-24 18:17:49] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tax' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, reservation_id, customer_name, subtotal, tax, discount, discount_type, total, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :reservation_id, :customer_name, :subtotal, :tax, :discount, :discount_type, :total, :payment_method, :status, :created_by, :created_at)
[24-Feb-2026 18:20:39 Africa/Kigali] Validating session on init
[24-Feb-2026 18:20:39 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:20:39 Africa/Kigali] Session validated successfully
[24-Feb-2026 18:20:50 Africa/Kigali] Validating session on init
[24-Feb-2026 18:20:50 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:20:50 Africa/Kigali] Session validated successfully
[2026-02-24 18:20:50] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'discount' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, reservation_id, customer_name, subtotal, tax_amount, discount, discount_type, total_amount, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :reservation_id, :customer_name, :subtotal, :tax_amount, :discount, :discount_type, :total_amount, :payment_method, :status, :created_by, :created_at)
[24-Feb-2026 18:20:59 Africa/Kigali] Validating session on init
[24-Feb-2026 18:20:59 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:20:59 Africa/Kigali] Session validated successfully
[2026-02-24 18:20:59] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'discount' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, customer_name, subtotal, tax_amount, discount, discount_type, total_amount, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :customer_name, :subtotal, :tax_amount, :discount, :discount_type, :total_amount, :payment_method, :status, :created_by, :created_at)
[24-Feb-2026 18:22:21 Africa/Kigali] Validating session on init
[24-Feb-2026 18:22:21 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:22:21 Africa/Kigali] Session validated successfully
[2026-02-24 18:22:21] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'discount' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, customer_name, subtotal, tax_amount, discount, discount_type, total_amount, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :customer_name, :subtotal, :tax_amount, :discount, :discount_type, :total_amount, :payment_method, :status, :created_by, :created_at)
[24-Feb-2026 18:25:57 Africa/Kigali] Validating session on init
[24-Feb-2026 18:25:57 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:25:57 Africa/Kigali] Session validated successfully
[24-Feb-2026 18:26:09 Africa/Kigali] Validating session on init
[24-Feb-2026 18:26:09 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:26:09 Africa/Kigali] Session validated successfully
[2026-02-24 18:26:09] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, customer_name, subtotal, tax_amount, discount_amount, discount_type, total_amount, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :customer_name, :subtotal, :tax_amount, :discount_amount, :discount_type, :total_amount, :payment_method, :status, :created_by, :created_at)
[24-Feb-2026 18:26:16 Africa/Kigali] Validating session on init
[24-Feb-2026 18:26:16 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 18:26:16 Africa/Kigali] Session validated successfully
[24-Feb-2026 19:16:25 Africa/Kigali] Validating session on init
[24-Feb-2026 19:16:36 Africa/Kigali] Validating session on init
[24-Feb-2026 19:16:56 Africa/Kigali] Validating session on init
[24-Feb-2026 19:16:56 Africa/Kigali] require_auth called - Checking session
[24-Feb-2026 19:16:56 Africa/Kigali] Session validated successfully
[24-Feb-2026 19:16:59 Africa/Kigali] Validating session on init
[24-Feb-2026 19:17:29 Africa/Kigali] Validating session on init
[24-Feb-2026 19:17:49 Africa/Kigali] Validating session on init
[24-Feb-2026 19:17:51 Africa/Kigali] Validating session on init
[24-Feb-2026 19:19:26 Africa/Kigali] Validating session on init
[24-Feb-2026 19:19:43 Africa/Kigali] Validating session on init
[24-Feb-2026 19:53:19 Africa/Kigali] Validating session on init
[24-Feb-2026 19:53:35 Africa/Kigali] Validating session on init
[26-Feb-2026 12:24:23 Africa/Kigali] Login attempt - Username: superadmin
[26-Feb-2026 12:24:23 Africa/Kigali] User found: Yes
[26-Feb-2026 12:24:23 Africa/Kigali] Login successful for user: superadmin
[26-Feb-2026 12:24:23 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[26-Feb-2026 12:24:23 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-26 12:24:23] [INFO] Successful login for user: superadmin
[26-Feb-2026 12:24:23 Africa/Kigali] Validating session on init
[26-Feb-2026 12:24:23 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:24:23 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:25:03 Africa/Kigali] Validating session on init
[26-Feb-2026 12:25:03 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:25:03 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:25:05 Africa/Kigali] Validating session on init
[26-Feb-2026 12:25:05 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:25:05 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:25:25 Africa/Kigali] Validating session on init
[2026-02-26 12:25:25] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[26-Feb-2026 12:25:25 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[26-Feb-2026 12:25:25 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[26-Feb-2026 12:25:28 Africa/Kigali] Validating session on init
[26-Feb-2026 12:25:28 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:25:28 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:25:31 Africa/Kigali] Validating session on init
[26-Feb-2026 12:25:31 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:25:31 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:25:59 Africa/Kigali] Validating session on init
[26-Feb-2026 12:25:59 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:25:59 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:39:23 Africa/Kigali] Validating session on init
[26-Feb-2026 12:39:23 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:39:23 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:43:12 Africa/Kigali] Validating session on init
[26-Feb-2026 12:43:12 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:43:12 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:43:22 Africa/Kigali] Validating session on init
[26-Feb-2026 12:43:22 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:43:22 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:43:26 Africa/Kigali] Validating session on init
[26-Feb-2026 12:43:26 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:43:26 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:43:29 Africa/Kigali] Validating session on init
[26-Feb-2026 12:43:29 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:43:29 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:43:53 Africa/Kigali] Validating session on init
[26-Feb-2026 12:43:53 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:43:53 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:43:53 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function db_begin_transaction() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/quotations/edit.php:49
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/quotations/edit.php on line 49
[26-Feb-2026 12:43:57 Africa/Kigali] Validating session on init
[26-Feb-2026 12:43:57 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:43:57 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:44:01 Africa/Kigali] Validating session on init
[26-Feb-2026 12:44:01 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:44:01 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:44:18 Africa/Kigali] Validating session on init
[26-Feb-2026 12:44:18 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:44:18 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:44:48 Africa/Kigali] Validating session on init
[26-Feb-2026 12:44:48 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:44:48 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:44:51 Africa/Kigali] Validating session on init
[26-Feb-2026 12:44:51 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:44:51 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:44:56 Africa/Kigali] Validating session on init
[26-Feb-2026 12:44:56 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:44:56 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:45:01 Africa/Kigali] Validating session on init
[26-Feb-2026 12:45:01 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:45:01 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:45:09 Africa/Kigali] Validating session on init
[26-Feb-2026 12:45:09 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:45:09 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:45:13 Africa/Kigali] Validating session on init
[26-Feb-2026 12:45:13 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:45:13 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:46:41 Africa/Kigali] Validating session on init
[26-Feb-2026 12:46:41 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:46:41 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:46:41 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: guests | Record: 13
[26-Feb-2026 12:46:41 Africa/Kigali] Validating session on init
[26-Feb-2026 12:46:57 Africa/Kigali] Validating session on init
[26-Feb-2026 12:47:14 Africa/Kigali] Validating session on init
[26-Feb-2026 12:47:44 Africa/Kigali] Validating session on init
[26-Feb-2026 12:47:58 Africa/Kigali] Validating session on init
[26-Feb-2026 12:47:58 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:47:58 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:48:03 Africa/Kigali] Validating session on init
[26-Feb-2026 12:48:29 Africa/Kigali] Validating session on init
[26-Feb-2026 12:48:29 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:48:29 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:49:32 Africa/Kigali] Validating session on init
[26-Feb-2026 12:49:32 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:49:32 Africa/Kigali] Session validated successfully
[2026-02-26 12:49:32] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value SQL: INSERT INTO folio_charges (reservation_id, transaction_code, charge_type, description, amount, posted_by, posted_at) VALUES (:reservation_id, :transaction_code, :charge_type, :description, :amount, :posted_by, :posted_at)
[2026-02-26 12:49:32] [ERROR] Reservation creation failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value
[26-Feb-2026 12:49:49 Africa/Kigali] Validating session on init
[26-Feb-2026 12:49:49 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:49:49 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:49:54 Africa/Kigali] Validating session on init
[26-Feb-2026 12:50:09 Africa/Kigali] Validating session on init
[26-Feb-2026 12:50:29 Africa/Kigali] Validating session on init
[26-Feb-2026 12:50:44 Africa/Kigali] Validating session on init
[26-Feb-2026 12:50:52 Africa/Kigali] Validating session on init
[26-Feb-2026 12:57:26 Africa/Kigali] Validating session on init
[26-Feb-2026 12:57:55 Africa/Kigali] Validating session on init
[26-Feb-2026 12:58:00 Africa/Kigali] Validating session on init
[26-Feb-2026 12:58:12 Africa/Kigali] Validating session on init
[26-Feb-2026 12:58:12 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:58:12 Africa/Kigali] Session validated successfully
[2026-02-26 12:58:12] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 12:58:12 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 12:58:19 Africa/Kigali] Validating session on init
[26-Feb-2026 12:58:19 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:58:19 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:58:22 Africa/Kigali] Validating session on init
[26-Feb-2026 12:58:22 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:58:22 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:59:20 Africa/Kigali] Validating session on init
[26-Feb-2026 12:59:20 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:59:20 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:59:20 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 25
[26-Feb-2026 12:59:20 Africa/Kigali] Validating session on init
[26-Feb-2026 12:59:20 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:59:20 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:59:24 Africa/Kigali] Validating session on init
[26-Feb-2026 12:59:24 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:59:24 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:59:40 Africa/Kigali] Validating session on init
[26-Feb-2026 12:59:40 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:59:40 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:59:51 Africa/Kigali] Validating session on init
[26-Feb-2026 12:59:51 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:59:51 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:59:55 Africa/Kigali] Validating session on init
[26-Feb-2026 12:59:55 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:59:55 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:59:55 Africa/Kigali] Validating session on init
[26-Feb-2026 12:59:55 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:59:55 Africa/Kigali] Session validated successfully
[26-Feb-2026 12:59:57 Africa/Kigali] Validating session on init
[26-Feb-2026 12:59:57 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 12:59:57 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:00:15 Africa/Kigali] Validating session on init
[26-Feb-2026 13:00:15 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:00:15 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:00:17 Africa/Kigali] Validating session on init
[26-Feb-2026 13:00:17 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:00:17 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:00:57 Africa/Kigali] Validating session on init
[26-Feb-2026 13:01:09 Africa/Kigali] Validating session on init
[26-Feb-2026 13:01:33 Africa/Kigali] Validating session on init
[26-Feb-2026 13:01:34 Africa/Kigali] Validating session on init
[26-Feb-2026 13:01:37 Africa/Kigali] Validating session on init
[2026-02-26 13:01:37] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'total_price' in table 'purchase_order_items' has been ignored SQL: INSERT INTO purchase_order_items (po_id, product_id, quantity_ordered, unit_price, total_price) VALUES (:po_id, :product_id, :quantity_ordered, :unit_price, :total_price)
[2026-02-26 13:01:37] [ERROR] PO creation failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'total_price' in table 'purchase_order_items' has been ignored
[26-Feb-2026 13:02:14 Africa/Kigali] Validating session on init
[26-Feb-2026 13:02:14 Africa/Kigali] Validating session on init
[26-Feb-2026 13:02:27 Africa/Kigali] Validating session on init
[26-Feb-2026 13:02:57 Africa/Kigali] Validating session on init
[26-Feb-2026 13:03:12 Africa/Kigali] Validating session on init
[26-Feb-2026 13:03:25 Africa/Kigali] Validating session on init
[26-Feb-2026 13:03:57 Africa/Kigali] Validating session on init
[26-Feb-2026 13:04:06 Africa/Kigali] Validating session on init
[26-Feb-2026 13:04:23 Africa/Kigali] Validating session on init
[26-Feb-2026 13:04:33 Africa/Kigali] Validating session on init
[26-Feb-2026 13:06:31 Africa/Kigali] Validating session on init
[26-Feb-2026 13:06:31 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:06:31 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:08:51 Africa/Kigali] Validating session on init
[26-Feb-2026 13:08:51 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:08:51 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:09:56 Africa/Kigali] Validating session on init
[26-Feb-2026 13:09:56 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:09:56 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:10:06 Africa/Kigali] Validating session on init
[26-Feb-2026 13:10:06 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:10:06 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:10:13 Africa/Kigali] Validating session on init
[26-Feb-2026 13:10:13 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:10:13 Africa/Kigali] Session validated successfully
[2026-02-26 13:10:13] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 13:10:13 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 13:10:15 Africa/Kigali] Validating session on init
[26-Feb-2026 13:10:15 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:10:15 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:10:33 Africa/Kigali] Validating session on init
[26-Feb-2026 13:10:33 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:10:33 Africa/Kigali] Session validated successfully
[2026-02-26 13:10:33] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, reservation_id, customer_name, subtotal, tax_amount, discount_amount, discount_type, total_amount, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :reservation_id, :customer_name, :subtotal, :tax_amount, :discount_amount, :discount_type, :total_amount, :payment_method, :status, :created_by, :created_at)
[26-Feb-2026 13:12:32 Africa/Kigali] Validating session on init
[26-Feb-2026 13:12:32 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:12:32 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:12:32 Africa/Kigali] Validating session on init
[26-Feb-2026 13:12:32 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:12:32 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:12:34 Africa/Kigali] Validating session on init
[26-Feb-2026 13:12:34 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:12:34 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:12:34 Africa/Kigali] Validating session on init
[26-Feb-2026 13:12:34 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:12:34 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:12:34 Africa/Kigali] Validating session on init
[26-Feb-2026 13:12:34 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:12:34 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:15:21 Africa/Kigali] Validating session on init
[26-Feb-2026 13:15:21 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:15:21 Africa/Kigali] Session validated successfully
[2026-02-26 13:15:21] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, customer_name, subtotal, tax_amount, discount_amount, discount_type, total_amount, payment_method, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :customer_name, :subtotal, :tax_amount, :discount_amount, :discount_type, :total_amount, :payment_method, :status, :created_by, :created_at)
[26-Feb-2026 13:15:35 Africa/Kigali] Validating session on init
[26-Feb-2026 13:15:35 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:15:35 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:15:37 Africa/Kigali] Validating session on init
[26-Feb-2026 13:15:37 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:15:37 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:15:49 Africa/Kigali] Validating session on init
[26-Feb-2026 13:15:49 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:15:49 Africa/Kigali] Session validated successfully
[2026-02-26 13:15:49] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'status' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, customer_name, subtotal, tax_amount, discount_amount, discount_type, total_amount, status, created_by, created_at) VALUES (:outlet_id, :guest_id, :customer_name, :subtotal, :tax_amount, :discount_amount, :discount_type, :total_amount, :status, :created_by, :created_at)
[26-Feb-2026 13:23:26 Africa/Kigali] Validating session on init
[26-Feb-2026 13:23:26 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:23:26 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:23:48 Africa/Kigali] Validating session on init
[26-Feb-2026 13:23:48 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:23:48 Africa/Kigali] Session validated successfully
[2026-02-26 13:23:48] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, reservation_id, customer_name, subtotal, tax_amount, discount_amount, discount_type, total_amount, created_by, created_at) VALUES (:outlet_id, :guest_id, :reservation_id, :customer_name, :subtotal, :tax_amount, :discount_amount, :discount_type, :total_amount, :created_by, :created_at)
[26-Feb-2026 13:23:53 Africa/Kigali] Validating session on init
[26-Feb-2026 13:23:53 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:23:53 Africa/Kigali] Session validated successfully
[2026-02-26 13:23:53] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, customer_name, subtotal, tax_amount, discount_amount, discount_type, total_amount, created_by, created_at) VALUES (:outlet_id, :guest_id, :customer_name, :subtotal, :tax_amount, :discount_amount, :discount_type, :total_amount, :created_by, :created_at)
[26-Feb-2026 13:25:15 Africa/Kigali] Validating session on init
[26-Feb-2026 13:25:15 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:25:15 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:25:25 Africa/Kigali] Validating session on init
[26-Feb-2026 13:25:25 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:25:25 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:25:26 Africa/Kigali] Validating session on init
[26-Feb-2026 13:25:26 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:25:26 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:25:36 Africa/Kigali] Validating session on init
[26-Feb-2026 13:25:36 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:25:36 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:25:42 Africa/Kigali] Validating session on init
[26-Feb-2026 13:25:42 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:25:42 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:26:00 Africa/Kigali] Validating session on init
[26-Feb-2026 13:26:00 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:26:00 Africa/Kigali] Session validated successfully
[2026-02-26 13:26:00] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'field list' SQL: INSERT INTO pos_sales (outlet_id, guest_id, customer_name, subtotal, tax_amount, discount_amount, discount_type, total_amount, created_by, created_at) VALUES (:outlet_id, :guest_id, :customer_name, :subtotal, :tax_amount, :discount_amount, :discount_type, :total_amount, :created_by, :created_at)
[26-Feb-2026 13:34:34 Africa/Kigali] Validating session on init
[26-Feb-2026 13:34:34 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:34:34 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:34:41 Africa/Kigali] Validating session on init
[26-Feb-2026 13:34:41 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:34:41 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:34:46 Africa/Kigali] Validating session on init
[26-Feb-2026 13:34:46 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:34:46 Africa/Kigali] Session validated successfully
[2026-02-26 13:34:46] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1364 Field 'shift_id' doesn't have a default value SQL: INSERT INTO pos_sales (outlet_id, guest_id, customer_name, subtotal, tax_amount, discount_amount, discount_type, total_amount, created_at, user_id, receipt_number) VALUES (:outlet_id, :guest_id, :customer_name, :subtotal, :tax_amount, :discount_amount, :discount_type, :total_amount, :created_at, :user_id, :receipt_number)
[26-Feb-2026 13:35:00 Africa/Kigali] Validating session on init
[26-Feb-2026 13:35:00 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:35:00 Africa/Kigali] Session validated successfully
[2026-02-26 13:35:00] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 13:35:00 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 13:35:03 Africa/Kigali] Validating session on init
[26-Feb-2026 13:35:03 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:35:03 Africa/Kigali] Session validated successfully
[2026-02-26 13:35:03] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
        SELECT 
            s.payment_method,
            COUNT(*) as transaction_count,
            COALESCE(SUM(s.total_amount), 0) as total
        FROM pos_sales s
        WHERE s.shift_id = ? AND s.payment_status = 'completed'
        GROUP BY s.payment_method
    
[26-Feb-2026 13:35:03 Africa/Kigali] Error fetching sales summary: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[26-Feb-2026 13:35:17 Africa/Kigali] Validating session on init
[26-Feb-2026 13:35:17 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:35:17 Africa/Kigali] Session validated successfully
[2026-02-26 13:35:17] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 13:35:17 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 13:35:21 Africa/Kigali] Validating session on init
[26-Feb-2026 13:35:21 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:35:21 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:35:28 Africa/Kigali] Validating session on init
[26-Feb-2026 13:35:28 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:35:28 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:35:41 Africa/Kigali] Validating session on init
[26-Feb-2026 13:35:41 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:35:41 Africa/Kigali] Session validated successfully
[2026-02-26 13:35:41] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1364 Field 'shift_id' doesn't have a default value SQL: INSERT INTO pos_sales (outlet_id, guest_id, reservation_id, customer_name, subtotal, tax_amount, discount_amount, discount_type, total_amount, created_at, user_id, receipt_number) VALUES (:outlet_id, :guest_id, :reservation_id, :customer_name, :subtotal, :tax_amount, :discount_amount, :discount_type, :total_amount, :created_at, :user_id, :receipt_number)
[26-Feb-2026 13:41:27 Africa/Kigali] Validating session on init
[26-Feb-2026 13:41:27 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:41:27 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:41:32 Africa/Kigali] Validating session on init
[26-Feb-2026 13:41:32 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:41:32 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:41:38 Africa/Kigali] Validating session on init
[26-Feb-2026 13:41:38 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:41:38 Africa/Kigali] Session validated successfully
[2026-02-26 13:41:38] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1364 Field 'sale_time' doesn't have a default value SQL: INSERT INTO pos_sales (shift_id, outlet_id, guest_id, customer_name, subtotal, tax_amount, discount_amount, discount_type, total_amount, created_at, user_id, receipt_number) VALUES (:shift_id, :outlet_id, :guest_id, :customer_name, :subtotal, :tax_amount, :discount_amount, :discount_type, :total_amount, :created_at, :user_id, :receipt_number)
[26-Feb-2026 13:47:21 Africa/Kigali] Validating session on init
[26-Feb-2026 13:47:21 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:47:21 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:47:27 Africa/Kigali] Validating session on init
[26-Feb-2026 13:47:27 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:47:27 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:47:33 Africa/Kigali] Validating session on init
[26-Feb-2026 13:47:33 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:47:33 Africa/Kigali] Session validated successfully
[2026-02-26 13:47:33] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'total_price' in 'field list' SQL: INSERT INTO pos_sale_items (sale_id, product_id, quantity, unit_price, total_price) VALUES (:sale_id, :product_id, :quantity, :unit_price, :total_price)
[26-Feb-2026 13:47:44 Africa/Kigali] Validating session on init
[26-Feb-2026 13:47:44 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:47:44 Africa/Kigali] Session validated successfully
[2026-02-26 13:47:44] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'total_price' in 'field list' SQL: INSERT INTO pos_sale_items (sale_id, product_id, quantity, unit_price, total_price) VALUES (:sale_id, :product_id, :quantity, :unit_price, :total_price)
[26-Feb-2026 13:54:53 Africa/Kigali] Validating session on init
[26-Feb-2026 13:54:53 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:54:53 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:54:58 Africa/Kigali] Validating session on init
[26-Feb-2026 13:54:58 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:54:58 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:55:05 Africa/Kigali] Validating session on init
[26-Feb-2026 13:55:05 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:55:05 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:55:05 Africa/Kigali] Validating session on init
[26-Feb-2026 13:55:05 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:55:05 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:55:12 Africa/Kigali] Validating session on init
[26-Feb-2026 13:55:12 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:55:12 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:55:21 Africa/Kigali] Validating session on init
[26-Feb-2026 13:55:21 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:55:21 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:55:28 Africa/Kigali] Validating session on init
[26-Feb-2026 13:55:28 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:55:28 Africa/Kigali] Session validated successfully
[2026-02-26 13:55:28] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_at' in 'field list' SQL: INSERT INTO folio_charges (reservation_id, charge_type, description, amount, created_at) VALUES (:reservation_id, :charge_type, :description, :amount, :created_at)
[26-Feb-2026 13:55:59 Africa/Kigali] Validating session on init
[26-Feb-2026 13:55:59 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:55:59 Africa/Kigali] Session validated successfully
[26-Feb-2026 13:56:00 Africa/Kigali] Validating session on init
[26-Feb-2026 13:56:00 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 13:56:00 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:00:45 Africa/Kigali] Validating session on init
[26-Feb-2026 14:00:45 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:00:45 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:00:48 Africa/Kigali] Validating session on init
[26-Feb-2026 14:00:48 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:00:48 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:00:55 Africa/Kigali] Validating session on init
[26-Feb-2026 14:00:55 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:00:55 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:01:02 Africa/Kigali] Validating session on init
[26-Feb-2026 14:01:02 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:01:02 Africa/Kigali] Session validated successfully
[2026-02-26 14:01:02] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1364 Field 'transaction_code' doesn't have a default value SQL: INSERT INTO folio_charges (reservation_id, charge_type, description, amount) VALUES (:reservation_id, :charge_type, :description, :amount)
[26-Feb-2026 14:05:46 Africa/Kigali] Validating session on init
[26-Feb-2026 14:05:46 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:05:46 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:05:52 Africa/Kigali] Validating session on init
[26-Feb-2026 14:05:52 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:05:52 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:06:01 Africa/Kigali] Validating session on init
[26-Feb-2026 14:06:01 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:06:01 Africa/Kigali] Session validated successfully
[2026-02-26 14:06:01] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value SQL: INSERT INTO folio_charges (reservation_id, transaction_code, charge_type, description, amount) VALUES (:reservation_id, :transaction_code, :charge_type, :description, :amount)
[26-Feb-2026 14:06:11 Africa/Kigali] Validating session on init
[26-Feb-2026 14:06:11 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:06:11 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:06:11 Africa/Kigali] Validating session on init
[26-Feb-2026 14:06:11 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:06:11 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:06:16 Africa/Kigali] Validating session on init
[26-Feb-2026 14:06:16 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:06:16 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:06:35 Africa/Kigali] Validating session on init
[26-Feb-2026 14:06:35 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:06:35 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:06:35 Africa/Kigali] Validating session on init
[26-Feb-2026 14:06:35 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:06:35 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:06:41 Africa/Kigali] Validating session on init
[26-Feb-2026 14:06:41 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:06:41 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:06:48 Africa/Kigali] Validating session on init
[26-Feb-2026 14:06:48 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:06:48 Africa/Kigali] Session validated successfully
[2026-02-26 14:06:48] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value SQL: INSERT INTO folio_charges (reservation_id, transaction_code, charge_type, description, amount) VALUES (:reservation_id, :transaction_code, :charge_type, :description, :amount)
[26-Feb-2026 14:14:24 Africa/Kigali] Validating session on init
[26-Feb-2026 14:14:24 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:14:24 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:15:12 Africa/Kigali] Validating session on init
[26-Feb-2026 14:15:12 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:15:12 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:15:12 Africa/Kigali] Validating session on init
[26-Feb-2026 14:15:12 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:15:12 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:15:56 Africa/Kigali] Validating session on init
[26-Feb-2026 14:15:56 Africa/Kigali] Validating session on init
[26-Feb-2026 14:15:56 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:15:56 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:16:01 Africa/Kigali] Validating session on init
[26-Feb-2026 14:16:01 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:16:01 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:16:05 Africa/Kigali] Validating session on init
[26-Feb-2026 14:16:16 Africa/Kigali] Validating session on init
[26-Feb-2026 14:17:04 Africa/Kigali] Validating session on init
[26-Feb-2026 14:17:04 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:17:04 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:24:51 Africa/Kigali] Validating session on init
[26-Feb-2026 14:24:52 Africa/Kigali] Validating session on init
[26-Feb-2026 14:24:52 Africa/Kigali] Validating session on init
[26-Feb-2026 14:24:58 Africa/Kigali] Validating session on init
[26-Feb-2026 14:27:30 Africa/Kigali] Validating session on init
[26-Feb-2026 14:27:30 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:27:30 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:27:31 Africa/Kigali] Validating session on init
[26-Feb-2026 14:27:31 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:27:31 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:27:36 Africa/Kigali] Validating session on init
[26-Feb-2026 14:27:36 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:27:36 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:27:36 Africa/Kigali] Validating session on init
[26-Feb-2026 14:27:36 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:27:36 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:27:37 Africa/Kigali] Validating session on init
[26-Feb-2026 14:27:37 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:27:37 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:27:38 Africa/Kigali] Validating session on init
[26-Feb-2026 14:27:38 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:27:38 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:27:42 Africa/Kigali] Validating session on init
[26-Feb-2026 14:27:42 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:27:42 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:27:43 Africa/Kigali] Validating session on init
[26-Feb-2026 14:27:43 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:27:43 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:27:48 Africa/Kigali] Validating session on init
[26-Feb-2026 14:27:48 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:27:48 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:28:18 Africa/Kigali] Validating session on init
[26-Feb-2026 14:28:18 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:28:18 Africa/Kigali] Session validated successfully
[2026-02-26 14:28:18] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:28:18 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:28:43 Africa/Kigali] Validating session on init
[26-Feb-2026 14:28:43 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:28:43 Africa/Kigali] Session validated successfully
[2026-02-26 14:28:43] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:28:43 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:30:11 Africa/Kigali] Validating session on init
[26-Feb-2026 14:30:11 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:30:11 Africa/Kigali] Session validated successfully
[2026-02-26 14:30:11] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:30:11 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:30:27 Africa/Kigali] Validating session on init
[26-Feb-2026 14:30:27 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:30:27 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:33:32 Africa/Kigali] Validating session on init
[26-Feb-2026 14:33:32 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:33:32 Africa/Kigali] Session validated successfully
[2026-02-26 14:33:32] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:33:32 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:33:35 Africa/Kigali] Validating session on init
[26-Feb-2026 14:33:44 Africa/Kigali] Validating session on init
[26-Feb-2026 14:33:44 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:33:44 Africa/Kigali] Session validated successfully
[2026-02-26 14:33:44] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:33:44 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:34:03 Africa/Kigali] Validating session on init
[26-Feb-2026 14:34:03 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:34:03 Africa/Kigali] Session validated successfully
[2026-02-26 14:34:03] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:34:03 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:34:10 Africa/Kigali] Validating session on init
[26-Feb-2026 14:34:10 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:34:10 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:35:24 Africa/Kigali] Validating session on init
[26-Feb-2026 14:35:24 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:35:24 Africa/Kigali] Session validated successfully
[2026-02-26 14:35:24] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:35:24 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:35:45 Africa/Kigali] Validating session on init
[26-Feb-2026 14:35:45 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:35:45 Africa/Kigali] Session validated successfully
[2026-02-26 14:35:45] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:35:45 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:35:47 Africa/Kigali] Validating session on init
[26-Feb-2026 14:35:47 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:35:47 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:36:22 Africa/Kigali] Validating session on init
[26-Feb-2026 14:36:22 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:36:22 Africa/Kigali] Session validated successfully
[2026-02-26 14:36:22] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:36:22 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:36:35 Africa/Kigali] Validating session on init
[26-Feb-2026 14:36:35 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:36:35 Africa/Kigali] Session validated successfully
[2026-02-26 14:36:35] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:36:35 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:36:51 Africa/Kigali] Validating session on init
[26-Feb-2026 14:36:51 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:36:51 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:37:08 Africa/Kigali] Validating session on init
[26-Feb-2026 14:37:08 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:37:08 Africa/Kigali] Session validated successfully
[2026-02-26 14:37:08] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:37:08 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:37:13 Africa/Kigali] Validating session on init
[26-Feb-2026 14:37:13 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:37:13 Africa/Kigali] Session validated successfully
[2026-02-26 14:37:13] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 14:37:13 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 14:37:22 Africa/Kigali] Validating session on init
[26-Feb-2026 14:37:22 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:37:22 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:37:22 Africa/Kigali] Revenue Stats - Total: 18, Revenue: 826423.62, Items: 93
[26-Feb-2026 14:37:26 Africa/Kigali] Validating session on init
[26-Feb-2026 14:37:26 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:37:26 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:37:37 Africa/Kigali] Validating session on init
[26-Feb-2026 14:37:37 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:37:37 Africa/Kigali] Session validated successfully
[2026-02-26 14:37:37] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:37:37 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:38:18 Africa/Kigali] Validating session on init
[26-Feb-2026 14:38:18 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:38:18 Africa/Kigali] Session validated successfully
[2026-02-26 14:38:18] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:38:18 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:38:20 Africa/Kigali] Validating session on init
[26-Feb-2026 14:38:20 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:38:20 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:38:41 Africa/Kigali] Validating session on init
[26-Feb-2026 14:38:41 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:38:41 Africa/Kigali] Session validated successfully
[2026-02-26 14:38:41] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:38:41 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:38:53 Africa/Kigali] Validating session on init
[26-Feb-2026 14:38:53 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:38:53 Africa/Kigali] Session validated successfully
[2026-02-26 14:38:53] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:38:53 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:38:59 Africa/Kigali] Validating session on init
[26-Feb-2026 14:38:59 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:38:59 Africa/Kigali] Session validated successfully
[2026-02-26 14:38:59] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:38:59 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:39:12 Africa/Kigali] Validating session on init
[26-Feb-2026 14:39:12 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:39:12 Africa/Kigali] Session validated successfully
[2026-02-26 14:39:12] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:39:12 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:39:17 Africa/Kigali] Validating session on init
[26-Feb-2026 14:39:17 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:39:17 Africa/Kigali] Session validated successfully
[2026-02-26 14:39:17] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:39:17 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:39:26 Africa/Kigali] Validating session on init
[26-Feb-2026 14:39:26 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:39:26 Africa/Kigali] Session validated successfully
[2026-02-26 14:39:26] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:39:26 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:39:33 Africa/Kigali] Validating session on init
[26-Feb-2026 14:39:53 Africa/Kigali] Validating session on init
[26-Feb-2026 14:39:53 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:39:53 Africa/Kigali] Session validated successfully
[2026-02-26 14:39:53] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:39:53 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:42:19 Africa/Kigali] Validating session on init
[26-Feb-2026 14:42:19 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:42:19 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:43:43 Africa/Kigali] Validating session on init
[26-Feb-2026 14:43:43 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:43:43 Africa/Kigali] Session validated successfully
[2026-02-26 14:43:43] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:43:43 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:44:07 Africa/Kigali] Validating session on init
[26-Feb-2026 14:44:07 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:44:07 Africa/Kigali] Session validated successfully
[2026-02-26 14:44:07] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:44:07 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:44:12 Africa/Kigali] Validating session on init
[26-Feb-2026 14:44:12 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:44:12 Africa/Kigali] Session validated successfully
[2026-02-26 14:44:12] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:44:12 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:44:16 Africa/Kigali] Validating session on init
[26-Feb-2026 14:44:16 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:44:16 Africa/Kigali] Session validated successfully
[2026-02-26 14:44:16] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:44:16 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:44:24 Africa/Kigali] Validating session on init
[26-Feb-2026 14:44:24 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:44:24 Africa/Kigali] Session validated successfully
[2026-02-26 14:44:24] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:44:24 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:44:39 Africa/Kigali] Validating session on init
[26-Feb-2026 14:44:39 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:44:39 Africa/Kigali] Session validated successfully
[2026-02-26 14:44:39] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:44:39 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:44:43 Africa/Kigali] Validating session on init
[26-Feb-2026 14:44:43 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:44:43 Africa/Kigali] Session validated successfully
[2026-02-26 14:44:43] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:44:43 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:44:48 Africa/Kigali] Validating session on init
[26-Feb-2026 14:44:48 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:44:48 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:47:16 Africa/Kigali] Validating session on init
[26-Feb-2026 14:47:16 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:47:16 Africa/Kigali] Session validated successfully
[2026-02-26 14:47:16] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 14:47:16 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 14:52:14 Africa/Kigali] Validating session on init
[26-Feb-2026 14:52:14 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:52:14 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:52:17 Africa/Kigali] Validating session on init
[26-Feb-2026 14:52:17 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:52:17 Africa/Kigali] Session validated successfully
[26-Feb-2026 14:55:35 Africa/Kigali] Validating session on init
[26-Feb-2026 14:55:35 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 14:55:35 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:00:06 Africa/Kigali] Validating session on init
[26-Feb-2026 15:00:06 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:00:06 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:01:39 Africa/Kigali] Validating session on init
[26-Feb-2026 15:01:39 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:01:39 Africa/Kigali] Session validated successfully
[2026-02-26 15:01:39] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 15:01:39 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 15:01:41 Africa/Kigali] Validating session on init
[26-Feb-2026 15:01:41 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:01:41 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:01:41 Africa/Kigali] Revenue Stats - Total: 20, Revenue: 826507.99, Items: 111
[26-Feb-2026 15:01:43 Africa/Kigali] Validating session on init
[26-Feb-2026 15:01:43 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:01:43 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:02:04 Africa/Kigali] Validating session on init
[26-Feb-2026 15:02:04 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:02:04 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:02:30 Africa/Kigali] Validating session on init
[26-Feb-2026 15:02:30 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:02:30 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:04:49 Africa/Kigali] Validating session on init
[26-Feb-2026 15:04:49 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:04:49 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:08:42 Africa/Kigali] Validating session on init
[26-Feb-2026 15:08:42 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:08:42 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:08:56 Africa/Kigali] Validating session on init
[26-Feb-2026 15:08:56 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:08:56 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:09:53 Africa/Kigali] Validating session on init
[26-Feb-2026 15:09:53 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:09:53 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:10:01 Africa/Kigali] Validating session on init
[26-Feb-2026 15:10:01 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:10:01 Africa/Kigali] Session validated successfully
[2026-02-26 15:10:01] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 15:10:01 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 15:10:03 Africa/Kigali] Validating session on init
[26-Feb-2026 15:10:03 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:10:03 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:10:03 Africa/Kigali] Revenue Stats - Total: 20, Revenue: 826507.99, Items: 111
[26-Feb-2026 15:10:09 Africa/Kigali] Validating session on init
[26-Feb-2026 15:10:09 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:10:09 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:10:31 Africa/Kigali] Validating session on init
[26-Feb-2026 15:10:31 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:10:31 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:10:42 Africa/Kigali] Validating session on init
[26-Feb-2026 15:10:42 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:10:42 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:10:45 Africa/Kigali] Validating session on init
[26-Feb-2026 15:10:45 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[26-Feb-2026 15:10:45 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[26-Feb-2026 15:15:41 Africa/Kigali] Validating session on init
[26-Feb-2026 15:18:45 Africa/Kigali] Validating session on init
[2026-02-26 15:18:45] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[26-Feb-2026 15:18:45 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[26-Feb-2026 15:18:45 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[26-Feb-2026 15:24:03 Africa/Kigali] Validating session on init
[26-Feb-2026 15:24:31 Africa/Kigali] Validating session on init
[26-Feb-2026 15:24:43 Africa/Kigali] Validating session on init
[26-Feb-2026 15:34:52 Africa/Kigali] Validating session on init
[26-Feb-2026 15:35:04 Africa/Kigali] Validating session on init
[2026-02-26 15:35:04] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[26-Feb-2026 15:35:04 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[26-Feb-2026 15:35:04 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[26-Feb-2026 15:35:13 Africa/Kigali] Validating session on init
[26-Feb-2026 15:35:13 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:35:13 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:36:35 Africa/Kigali] Validating session on init
[2026-02-26 15:36:35] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[26-Feb-2026 15:36:35 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[26-Feb-2026 15:36:35 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[26-Feb-2026 15:36:41 Africa/Kigali] Validating session on init
[26-Feb-2026 15:36:41 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:36:41 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:36:45 Africa/Kigali] Validating session on init
[26-Feb-2026 15:36:45 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:36:45 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:36:48 Africa/Kigali] Validating session on init
[26-Feb-2026 15:36:48 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:36:48 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:36:58 Africa/Kigali] Validating session on init
[2026-02-26 15:36:58] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[26-Feb-2026 15:36:58 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[26-Feb-2026 15:36:58 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[26-Feb-2026 15:38:16 Africa/Kigali] Validating session on init
[2026-02-26 15:38:16] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[26-Feb-2026 15:38:16 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[26-Feb-2026 15:38:16 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[26-Feb-2026 15:38:17 Africa/Kigali] Validating session on init
[26-Feb-2026 15:38:17 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:38:17 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:43:17 Africa/Kigali] Validating session on init
[26-Feb-2026 15:43:17 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:43:17 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:43:23 Africa/Kigali] Validating session on init
[26-Feb-2026 15:43:23 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:43:23 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:43:25 Africa/Kigali] Validating session on init
[26-Feb-2026 15:43:25 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:43:25 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:43:25 Africa/Kigali] Validating session on init
[26-Feb-2026 15:43:25 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:43:25 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:43:25 Africa/Kigali] Validating session on init
[26-Feb-2026 15:43:25 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:43:25 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:43:30 Africa/Kigali] Validating session on init
[26-Feb-2026 15:43:30 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:43:30 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:47:55 Africa/Kigali] Validating session on init
[26-Feb-2026 15:47:55 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:47:55 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:48:29 Africa/Kigali] Validating session on init
[26-Feb-2026 15:48:29 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:48:29 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:48:36 Africa/Kigali] Validating session on init
[26-Feb-2026 15:48:36 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:48:36 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:48:37 Africa/Kigali] Validating session on init
[26-Feb-2026 15:48:37 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:48:37 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:48:39 Africa/Kigali] Validating session on init
[26-Feb-2026 15:48:39 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:48:39 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:48:40 Africa/Kigali] Validating session on init
[26-Feb-2026 15:48:40 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:48:40 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:48:52 Africa/Kigali] Validating session on init
[26-Feb-2026 15:48:52 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:48:52 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:48:54 Africa/Kigali] Validating session on init
[26-Feb-2026 15:50:08 Africa/Kigali] Validating session on init
[26-Feb-2026 15:50:56 Africa/Kigali] Validating session on init
[26-Feb-2026 15:50:58 Africa/Kigali] Validating session on init
[26-Feb-2026 15:50:58 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:50:58 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:51:24 Africa/Kigali] Validating session on init
[26-Feb-2026 15:51:24 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:51:24 Africa/Kigali] Session validated successfully
[2026-02-26 15:51:24] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value SQL: INSERT INTO folio_charges (reservation_id, transaction_code, charge_type, description, amount, posted_by, posted_at) VALUES (:reservation_id, :transaction_code, :charge_type, :description, :amount, :posted_by, :posted_at)
[2026-02-26 15:51:24] [ERROR] Reservation creation failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value
[26-Feb-2026 15:56:18 Africa/Kigali] Validating session on init
[26-Feb-2026 15:56:18 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:56:18 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:56:18 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function calculate_nights() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/reservations/create.php:85
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/reservations/create.php on line 85
[26-Feb-2026 15:59:22 Africa/Kigali] Validating session on init
[26-Feb-2026 15:59:22 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:59:22 Africa/Kigali] Session validated successfully
[26-Feb-2026 15:59:35 Africa/Kigali] Validating session on init
[26-Feb-2026 15:59:35 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 15:59:35 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:01:49 Africa/Kigali] Validating session on init
[26-Feb-2026 16:01:49 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:01:49 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:01:51 Africa/Kigali] Validating session on init
[26-Feb-2026 16:01:51 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:01:51 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:02:27 Africa/Kigali] Validating session on init
[26-Feb-2026 16:02:27 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:02:27 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:02:27 Africa/Kigali] Inserting reservation with data: Array
(
    [booking_code] => BK-20260226-347
    [guest_id] => 13
    [room_type_id] => 7
    [adults] => 2
    [children] => 0
    [check_in_date] => 2026-02-26
    [check_out_date] => 2026-02-28
    [booking_source] => direct
    [booking_status] => pending
    [payment_status] => partial
    [total_amount] => 90000
    [paid_amount] => 10000
    [tax_amount] => 0
    [discount_amount] => 0
    [created_by] => 1
)

[2026-02-26 16:02:27] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value SQL: INSERT INTO folio_charges (reservation_id, transaction_code, charge_type, description, amount, posted_by, posted_at) VALUES (:reservation_id, :transaction_code, :charge_type, :description, :amount, :posted_by, :posted_at)
[26-Feb-2026 16:02:27 Africa/Kigali] Reservation creation failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value
[26-Feb-2026 16:02:27 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(128): PDOStatement->execute(Array)
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/reservations/create.php(253): db_insert('folio_charges', Array)
#2 {main}
[26-Feb-2026 16:02:46 Africa/Kigali] Validating session on init
[26-Feb-2026 16:02:46 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:02:46 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:02:56 Africa/Kigali] Validating session on init
[26-Feb-2026 16:02:56 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:02:56 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:06:22 Africa/Kigali] Validating session on init
[26-Feb-2026 16:06:22 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:06:22 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:25:32 Africa/Kigali] Validating session on init
[26-Feb-2026 16:25:32 Africa/Kigali] Validating session on init
[26-Feb-2026 16:25:32 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:25:32 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:25:42 Africa/Kigali] Login attempt - Username: superadmin
[26-Feb-2026 16:25:42 Africa/Kigali] User found: Yes
[26-Feb-2026 16:25:43 Africa/Kigali] Login successful for user: superadmin
[26-Feb-2026 16:25:43 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[26-Feb-2026 16:25:43 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-26 16:25:43] [INFO] Successful login for user: superadmin
[26-Feb-2026 16:25:43 Africa/Kigali] Validating session on init
[26-Feb-2026 16:25:43 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:25:43 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:25:53 Africa/Kigali] Validating session on init
[26-Feb-2026 16:25:53 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:25:53 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:26:08 Africa/Kigali] Validating session on init
[26-Feb-2026 16:26:09 Africa/Kigali] Validating session on init
[26-Feb-2026 16:26:09 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:26:09 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:26:31 Africa/Kigali] Validating session on init
[26-Feb-2026 16:26:31 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:26:31 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:26:31 Africa/Kigali] Booking confirmation would be sent to: ihozoariane@gmail.com
[26-Feb-2026 16:26:31 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: reservations | Record: 15
[26-Feb-2026 16:26:46 Africa/Kigali] Validating session on init
[26-Feb-2026 16:27:07 Africa/Kigali] Validating session on init
[26-Feb-2026 16:27:24 Africa/Kigali] Validating session on init
[26-Feb-2026 16:27:31 Africa/Kigali] Validating session on init
[26-Feb-2026 16:27:31 Africa/Kigali] Validating session on init
[26-Feb-2026 16:27:38 Africa/Kigali] Validating session on init
[26-Feb-2026 16:27:48 Africa/Kigali] Validating session on init
[2026-02-26 16:27:48] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[26-Feb-2026 16:27:48 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[26-Feb-2026 16:27:48 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[26-Feb-2026 16:27:49 Africa/Kigali] Validating session on init
[26-Feb-2026 16:27:49 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:27:49 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:28:23 Africa/Kigali] Validating session on init
[26-Feb-2026 16:28:23 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:28:23 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:30:40 Africa/Kigali] Validating session on init
[26-Feb-2026 16:30:40 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:30:40 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:30:48 Africa/Kigali] Validating session on init
[26-Feb-2026 16:30:48 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:30:48 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:30:57 Africa/Kigali] Validating session on init
[26-Feb-2026 16:30:57 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:30:57 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:30:57 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: guests | Record: 14
[26-Feb-2026 16:30:57 Africa/Kigali] Validating session on init
[26-Feb-2026 16:30:59 Africa/Kigali] Validating session on init
[26-Feb-2026 16:30:59 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:30:59 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:31:29 Africa/Kigali] Validating session on init
[26-Feb-2026 16:31:29 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:31:29 Africa/Kigali] Session validated successfully
[2026-02-26 16:31:29] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value SQL: INSERT INTO folio_charges (reservation_id, transaction_code, charge_type, description, amount, posted_by, posted_at) VALUES (:reservation_id, :transaction_code, :charge_type, :description, :amount, :posted_by, :posted_at)
[2026-02-26 16:31:29] [ERROR] Reservation creation failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value
[26-Feb-2026 16:31:37 Africa/Kigali] Validating session on init
[26-Feb-2026 16:31:37 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:31:37 Africa/Kigali] Session validated successfully
[2026-02-26 16:31:37] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value SQL: INSERT INTO folio_charges (reservation_id, transaction_code, charge_type, description, amount, posted_by, posted_at) VALUES (:reservation_id, :transaction_code, :charge_type, :description, :amount, :posted_by, :posted_at)
[2026-02-26 16:31:37] [ERROR] Reservation creation failed: SQLSTATE[HY000]: General error: 1364 Field 'unit_price' doesn't have a default value
[26-Feb-2026 16:31:44 Africa/Kigali] Validating session on init
[26-Feb-2026 16:31:44 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:31:44 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:31:44 Africa/Kigali] Booking confirmation would be sent to: joachimdjihad@gmail.com
[26-Feb-2026 16:31:44 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: reservations | Record: 18
[26-Feb-2026 16:33:26 Africa/Kigali] Validating session on init
[26-Feb-2026 16:33:52 Africa/Kigali] Validating session on init
[26-Feb-2026 16:33:57 Africa/Kigali] Validating session on init
[26-Feb-2026 16:33:57 Africa/Kigali] Validating session on init
[26-Feb-2026 16:34:05 Africa/Kigali] Validating session on init
[26-Feb-2026 16:34:18 Africa/Kigali] Validating session on init
[26-Feb-2026 16:34:30 Africa/Kigali] Validating session on init
[26-Feb-2026 16:34:55 Africa/Kigali] Validating session on init
[26-Feb-2026 16:34:55 Africa/Kigali] Validating session on init
[26-Feb-2026 16:34:58 Africa/Kigali] Validating session on init
[26-Feb-2026 16:37:56 Africa/Kigali] Validating session on init
[26-Feb-2026 16:37:56 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:37:56 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:38:04 Africa/Kigali] Validating session on init
[26-Feb-2026 16:38:24 Africa/Kigali] Validating session on init
[26-Feb-2026 16:38:29 Africa/Kigali] Validating session on init
[26-Feb-2026 16:38:54 Africa/Kigali] Validating session on init
[26-Feb-2026 16:38:54 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:38:54 Africa/Kigali] Session validated successfully
[2026-02-26 16:38:54] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 16:38:54 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 16:40:10 Africa/Kigali] Validating session on init
[26-Feb-2026 16:40:10 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:40:10 Africa/Kigali] Session validated successfully
[2026-02-26 16:40:10] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 16:40:10 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 16:40:33 Africa/Kigali] Validating session on init
[26-Feb-2026 16:40:33 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:40:33 Africa/Kigali] Session validated successfully
[2026-02-26 16:40:33] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 16:40:33 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 16:40:39 Africa/Kigali] Validating session on init
[26-Feb-2026 16:40:39 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:40:39 Africa/Kigali] Session validated successfully
[2026-02-26 16:40:39] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 16:40:39 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 16:41:19 Africa/Kigali] Validating session on init
[26-Feb-2026 16:41:19 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:41:19 Africa/Kigali] Session validated successfully
[2026-02-26 16:41:19] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 16:41:19 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 16:41:40 Africa/Kigali] Validating session on init
[26-Feb-2026 16:41:40 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:41:40 Africa/Kigali] Session validated successfully
[2026-02-26 16:41:40] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 16:41:40 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 16:41:51 Africa/Kigali] Validating session on init
[26-Feb-2026 16:41:51 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:41:51 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:42:09 Africa/Kigali] Validating session on init
[26-Feb-2026 16:42:12 Africa/Kigali] Validating session on init
[26-Feb-2026 16:42:12 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:42:12 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:42:17 Africa/Kigali] Validating session on init
[26-Feb-2026 16:42:17 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:42:17 Africa/Kigali] Session validated successfully
[2026-02-26 16:42:17] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 16:42:17 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 16:42:18 Africa/Kigali] Validating session on init
[26-Feb-2026 16:42:18 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:42:18 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:42:18 Africa/Kigali] Revenue Stats - Total: 21, Revenue: 826520.97, Items: 114
[26-Feb-2026 16:42:22 Africa/Kigali] Validating session on init
[26-Feb-2026 16:42:22 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:42:22 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:43:01 Africa/Kigali] Validating session on init
[26-Feb-2026 16:43:01 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:43:01 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:43:24 Africa/Kigali] Validating session on init
[26-Feb-2026 16:43:24 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:43:24 Africa/Kigali] Session validated successfully
[2026-02-26 16:43:24] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 16:43:24 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 16:43:28 Africa/Kigali] Validating session on init
[26-Feb-2026 16:43:28 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:43:28 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:43:41 Africa/Kigali] Validating session on init
[26-Feb-2026 16:43:41 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:43:41 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:43:58 Africa/Kigali] Validating session on init
[26-Feb-2026 16:44:03 Africa/Kigali] Validating session on init
[26-Feb-2026 16:44:03 Africa/Kigali] Validating session on init
[26-Feb-2026 16:44:07 Africa/Kigali] Validating session on init
[26-Feb-2026 16:44:42 Africa/Kigali] Validating session on init
[26-Feb-2026 16:44:42 Africa/Kigali] Validating session on init
[26-Feb-2026 16:44:58 Africa/Kigali] Validating session on init
[2026-02-26 16:44:58] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'total_price' in table 'purchase_order_items' has been ignored SQL: INSERT INTO purchase_order_items (po_id, product_id, quantity_ordered, unit_price, total_price) VALUES (:po_id, :product_id, :quantity_ordered, :unit_price, :total_price)
[2026-02-26 16:44:58] [ERROR] PO creation failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'total_price' in table 'purchase_order_items' has been ignored
[26-Feb-2026 16:45:35 Africa/Kigali] Validating session on init
[26-Feb-2026 16:45:35 Africa/Kigali] Validating session on init
[26-Feb-2026 16:45:36 Africa/Kigali] Validating session on init
[2026-02-26 16:45:36] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'total_price' in table 'purchase_order_items' has been ignored SQL: INSERT INTO purchase_order_items (po_id, product_id, quantity_ordered, unit_price, total_price) VALUES (:po_id, :product_id, :quantity_ordered, :unit_price, :total_price)
[2026-02-26 16:45:36] [ERROR] PO creation failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'total_price' in table 'purchase_order_items' has been ignored
[26-Feb-2026 16:46:30 Africa/Kigali] Validating session on init
[26-Feb-2026 16:46:30 Africa/Kigali] Validating session on init
[26-Feb-2026 16:46:31 Africa/Kigali] Validating session on init
[2026-02-26 16:46:31] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'total_price' in table 'purchase_order_items' has been ignored SQL: INSERT INTO purchase_order_items (po_id, product_id, quantity_ordered, unit_price, total_price) VALUES (:po_id, :product_id, :quantity_ordered, :unit_price, :total_price)
[2026-02-26 16:46:31] [ERROR] PO creation failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'total_price' in table 'purchase_order_items' has been ignored
[26-Feb-2026 16:46:59 Africa/Kigali] Validating session on init
[26-Feb-2026 16:47:04 Africa/Kigali] Validating session on init
[26-Feb-2026 16:47:22 Africa/Kigali] Validating session on init
[26-Feb-2026 16:47:23 Africa/Kigali] Validating session on init
[26-Feb-2026 16:47:50 Africa/Kigali] Validating session on init
[26-Feb-2026 16:47:50 Africa/Kigali] Validating session on init
[26-Feb-2026 16:48:06 Africa/Kigali] Validating session on init
[26-Feb-2026 16:48:44 Africa/Kigali] Validating session on init
[26-Feb-2026 16:48:58 Africa/Kigali] Validating session on init
[26-Feb-2026 16:49:35 Africa/Kigali] Validating session on init
[26-Feb-2026 16:51:28 Africa/Kigali] Validating session on init
[26-Feb-2026 16:51:28 Africa/Kigali] PHP Warning:  require_once(/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/views/partials/header.php): Failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/admin/users/create.php on line 241
[26-Feb-2026 16:51:28 Africa/Kigali] PHP Fatal error:  Uncaught Error: Failed opening required '/Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/views/partials/header.php' (include_path='.:/Applications/XAMPP/xamppfiles/lib/php') in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/admin/users/create.php:241
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/admin/admin/users/create.php on line 241
[26-Feb-2026 16:51:53 Africa/Kigali] Validating session on init
[26-Feb-2026 16:52:11 Africa/Kigali] Validating session on init
[26-Feb-2026 16:52:21 Africa/Kigali] Validating session on init
[26-Feb-2026 16:52:36 Africa/Kigali] Validating session on init
[26-Feb-2026 16:52:39 Africa/Kigali] Validating session on init
[26-Feb-2026 16:52:41 Africa/Kigali] Validating session on init
[26-Feb-2026 16:52:43 Africa/Kigali] Validating session on init
[26-Feb-2026 16:52:43 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:52:43 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:52:45 Africa/Kigali] Validating session on init
[26-Feb-2026 16:52:45 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[26-Feb-2026 16:52:45 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[26-Feb-2026 16:53:00 Africa/Kigali] Validating session on init
[26-Feb-2026 16:54:32 Africa/Kigali] Validating session on init
[26-Feb-2026 16:54:32 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:54:32 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:54:35 Africa/Kigali] Validating session on init
[26-Feb-2026 16:56:02 Africa/Kigali] Validating session on init
[26-Feb-2026 16:56:03 Africa/Kigali] Validating session on init
[26-Feb-2026 16:56:08 Africa/Kigali] Validating session on init
[26-Feb-2026 16:57:16 Africa/Kigali] Validating session on init
[26-Feb-2026 16:57:47 Africa/Kigali] Login attempt - Username: cashier1
[26-Feb-2026 16:57:47 Africa/Kigali] User found: Yes
[26-Feb-2026 16:57:47 Africa/Kigali] Login successful for user: cashier1
[26-Feb-2026 16:57:47 Africa/Kigali] AUDIT: User: 7 | Action: login | Table: users | Record: 7
[26-Feb-2026 16:57:47 Africa/Kigali] NOTIFICATION: User 7 - New Login: You logged in from 127.0.0.1
[2026-02-26 16:57:47] [INFO] Successful login for user: cashier1
[26-Feb-2026 16:57:47 Africa/Kigali] Validating session on init
[26-Feb-2026 16:57:47 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:57:47 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:57:53 Africa/Kigali] Validating session on init
[26-Feb-2026 16:57:55 Africa/Kigali] Validating session on init
[26-Feb-2026 16:57:55 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:57:55 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:57:59 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:00 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:00 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:58:00 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:58:03 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:04 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:04 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:58:04 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:58:06 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:07 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:07 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:58:07 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:58:10 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:11 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:11 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:58:11 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:58:23 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:30 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:30 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:58:30 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:58:32 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:34 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:34 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:58:34 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:58:36 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:38 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:38 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:58:38 Africa/Kigali] Session validated successfully
[26-Feb-2026 16:58:41 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:41 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:58:41 Africa/Kigali] Session validated successfully
[2026-02-26 16:58:41] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 16:58:41 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 16:58:54 Africa/Kigali] Validating session on init
[26-Feb-2026 16:58:54 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 16:58:54 Africa/Kigali] Session validated successfully
[2026-02-26 16:58:54] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 16:58:54 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:00:01 Africa/Kigali] Validating session on init
[26-Feb-2026 17:00:21 Africa/Kigali] Validating session on init
[26-Feb-2026 17:00:21 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:00:21 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:02:25 Africa/Kigali] Validating session on init
[26-Feb-2026 17:02:25 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:02:25 Africa/Kigali] Session validated successfully
[2026-02-26 17:02:25] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:02:25 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:02:45 Africa/Kigali] Validating session on init
[26-Feb-2026 17:02:45 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:02:45 Africa/Kigali] Session validated successfully
[2026-02-26 17:02:45] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:02:45 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:03:51 Africa/Kigali] Validating session on init
[26-Feb-2026 17:03:51 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:03:51 Africa/Kigali] Session validated successfully
[2026-02-26 17:03:51] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:03:51 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:03:55 Africa/Kigali] Validating session on init
[26-Feb-2026 17:03:55 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:03:55 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:05:25 Africa/Kigali] Validating session on init
[26-Feb-2026 17:05:25 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:05:25 Africa/Kigali] Session validated successfully
[2026-02-26 17:05:25] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 17:05:25 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 17:05:26 Africa/Kigali] Validating session on init
[26-Feb-2026 17:05:26 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:05:26 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:05:26 Africa/Kigali] Revenue Stats - Total: 22, Revenue: 826536.9, Items: 118
[26-Feb-2026 17:05:38 Africa/Kigali] Validating session on init
[26-Feb-2026 17:05:38 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:05:38 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:08:49 Africa/Kigali] Validating session on init
[26-Feb-2026 17:08:55 Africa/Kigali] Validating session on init
[26-Feb-2026 17:08:55 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:08:55 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:09:14 Africa/Kigali] Login attempt - Username: superadmin
[26-Feb-2026 17:09:14 Africa/Kigali] User found: Yes
[26-Feb-2026 17:09:14 Africa/Kigali] Login successful for user: superadmin
[26-Feb-2026 17:09:14 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[26-Feb-2026 17:09:14 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-26 17:09:14] [INFO] Successful login for user: superadmin
[26-Feb-2026 17:09:14 Africa/Kigali] Validating session on init
[26-Feb-2026 17:09:14 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:09:14 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:09:18 Africa/Kigali] Validating session on init
[26-Feb-2026 17:10:57 Africa/Kigali] Validating session on init
[26-Feb-2026 17:10:57 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:10:57 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:11:13 Africa/Kigali] Validating session on init
[26-Feb-2026 17:11:21 Africa/Kigali] Validating session on init
[26-Feb-2026 17:11:24 Africa/Kigali] Validating session on init
[26-Feb-2026 17:11:24 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:11:24 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:11:26 Africa/Kigali] Validating session on init
[26-Feb-2026 17:11:44 Africa/Kigali] Validating session on init
[26-Feb-2026 17:11:44 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:11:44 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:11:51 Africa/Kigali] Validating session on init
[26-Feb-2026 17:11:56 Africa/Kigali] Validating session on init
[26-Feb-2026 17:11:56 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:11:56 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:12:00 Africa/Kigali] Validating session on init
[26-Feb-2026 17:12:00 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:12:00 Africa/Kigali] Session validated successfully
[2026-02-26 17:12:00] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:12:00 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:12:11 Africa/Kigali] Validating session on init
[26-Feb-2026 17:12:11 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:12:11 Africa/Kigali] Session validated successfully
[2026-02-26 17:12:11] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:12:11 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:12:20 Africa/Kigali] Validating session on init
[26-Feb-2026 17:12:20 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:12:20 Africa/Kigali] Session validated successfully
[2026-02-26 17:12:20] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:12:20 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:12:25 Africa/Kigali] Validating session on init
[26-Feb-2026 17:12:25 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:12:25 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:12:37 Africa/Kigali] Validating session on init
[26-Feb-2026 17:12:37 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:12:37 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:12:44 Africa/Kigali] Validating session on init
[26-Feb-2026 17:12:48 Africa/Kigali] Validating session on init
[26-Feb-2026 17:12:48 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:12:48 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:12:51 Africa/Kigali] Validating session on init
[26-Feb-2026 17:12:55 Africa/Kigali] Validating session on init
[26-Feb-2026 17:13:06 Africa/Kigali] Validating session on init
[26-Feb-2026 17:13:39 Africa/Kigali] Validating session on init
[26-Feb-2026 17:13:58 Africa/Kigali] Validating session on init
[26-Feb-2026 17:14:04 Africa/Kigali] Validating session on init
[26-Feb-2026 17:14:21 Africa/Kigali] Validating session on init
[26-Feb-2026 17:14:29 Africa/Kigali] Validating session on init
[26-Feb-2026 17:14:29 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:14:29 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:14:34 Africa/Kigali] Validating session on init
[26-Feb-2026 17:14:34 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:14:34 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:14:47 Africa/Kigali] Validating session on init
[26-Feb-2026 17:14:53 Africa/Kigali] Validating session on init
[26-Feb-2026 17:15:14 Africa/Kigali] Validating session on init
[26-Feb-2026 17:16:50 Africa/Kigali] Validating session on init
[26-Feb-2026 17:16:54 Africa/Kigali] Validating session on init
[26-Feb-2026 17:17:40 Africa/Kigali] Validating session on init
[26-Feb-2026 17:17:40 Africa/Kigali] Validating session on init
[26-Feb-2026 17:17:48 Africa/Kigali] Validating session on init
[26-Feb-2026 17:18:06 Africa/Kigali] Validating session on init
[26-Feb-2026 17:18:06 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:18:06 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:18:08 Africa/Kigali] Validating session on init
[26-Feb-2026 17:18:08 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:18:08 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:19:04 Africa/Kigali] Validating session on init
[26-Feb-2026 17:19:04 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:19:04 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:19:04 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: guests | Record: 15
[26-Feb-2026 17:19:04 Africa/Kigali] Validating session on init
[26-Feb-2026 17:19:07 Africa/Kigali] Validating session on init
[26-Feb-2026 17:19:07 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:19:07 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:19:28 Africa/Kigali] Validating session on init
[26-Feb-2026 17:19:28 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:19:28 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:19:28 Africa/Kigali] Booking confirmation would be sent to: hakizimana@gmail.com
[26-Feb-2026 17:19:28 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: reservations | Record: 19
[26-Feb-2026 17:19:37 Africa/Kigali] Validating session on init
[26-Feb-2026 17:19:42 Africa/Kigali] Validating session on init
[26-Feb-2026 17:19:49 Africa/Kigali] Validating session on init
[26-Feb-2026 17:19:49 Africa/Kigali] Validating session on init
[26-Feb-2026 17:19:57 Africa/Kigali] Validating session on init
[26-Feb-2026 17:20:12 Africa/Kigali] Validating session on init
[26-Feb-2026 17:20:12 Africa/Kigali] Validating session on init
[26-Feb-2026 17:20:17 Africa/Kigali] Validating session on init
[26-Feb-2026 17:20:22 Africa/Kigali] Validating session on init
[26-Feb-2026 17:20:27 Africa/Kigali] Validating session on init
[26-Feb-2026 17:20:51 Africa/Kigali] Validating session on init
[26-Feb-2026 17:20:51 Africa/Kigali] Validating session on init
[26-Feb-2026 17:20:53 Africa/Kigali] Validating session on init
[26-Feb-2026 17:21:13 Africa/Kigali] Validating session on init
[26-Feb-2026 17:21:13 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:21:13 Africa/Kigali] Session validated successfully
[2026-02-26 17:21:13] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:21:13 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:21:23 Africa/Kigali] Validating session on init
[26-Feb-2026 17:21:23 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:21:23 Africa/Kigali] Session validated successfully
[2026-02-26 17:21:23] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:21:23 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:22:01 Africa/Kigali] Validating session on init
[26-Feb-2026 17:22:01 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:22:01 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:22:02 Africa/Kigali] Validating session on init
[26-Feb-2026 17:22:02 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:22:02 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:22:14 Africa/Kigali] Validating session on init
[26-Feb-2026 17:22:22 Africa/Kigali] Validating session on init
[26-Feb-2026 17:22:22 Africa/Kigali] Validating session on init
[26-Feb-2026 17:22:53 Africa/Kigali] Validating session on init
[26-Feb-2026 17:22:53 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:22:53 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:23:05 Africa/Kigali] Validating session on init
[26-Feb-2026 17:23:05 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:23:05 Africa/Kigali] Session validated successfully
[2026-02-26 17:23:05] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:23:05 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:23:28 Africa/Kigali] Validating session on init
[26-Feb-2026 17:23:42 Africa/Kigali] Validating session on init
[26-Feb-2026 17:23:42 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:23:42 Africa/Kigali] Session validated successfully
[2026-02-26 17:23:42] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:23:42 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:23:43 Africa/Kigali] Validating session on init
[26-Feb-2026 17:23:43 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:23:43 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:23:47 Africa/Kigali] Validating session on init
[26-Feb-2026 17:23:51 Africa/Kigali] Validating session on init
[26-Feb-2026 17:23:51 Africa/Kigali] Validating session on init
[26-Feb-2026 17:23:51 Africa/Kigali] Validating session on init
[26-Feb-2026 17:23:54 Africa/Kigali] Validating session on init
[26-Feb-2026 17:24:05 Africa/Kigali] Validating session on init
[26-Feb-2026 17:24:10 Africa/Kigali] Validating session on init
[26-Feb-2026 17:24:11 Africa/Kigali] Validating session on init
[26-Feb-2026 17:24:11 Africa/Kigali] Validating session on init
[26-Feb-2026 17:24:11 Africa/Kigali] Validating session on init
[26-Feb-2026 17:24:11 Africa/Kigali] Validating session on init
[26-Feb-2026 17:24:23 Africa/Kigali] Validating session on init
[26-Feb-2026 17:24:23 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:24:23 Africa/Kigali] Session validated successfully
[2026-02-26 17:24:23] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 17:24:23 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 17:24:23 Africa/Kigali] Validating session on init
[26-Feb-2026 17:24:23 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:24:23 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:24:23 Africa/Kigali] Revenue Stats - Total: 24, Revenue: 826572.3, Items: 126
[26-Feb-2026 17:24:28 Africa/Kigali] Validating session on init
[26-Feb-2026 17:24:28 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:24:28 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:24:39 Africa/Kigali] Validating session on init
[26-Feb-2026 17:24:39 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:24:39 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:25:01 Africa/Kigali] Validating session on init
[26-Feb-2026 17:25:20 Africa/Kigali] Validating session on init
[26-Feb-2026 17:25:21 Africa/Kigali] Validating session on init
[26-Feb-2026 17:25:21 Africa/Kigali] Validating session on init
[26-Feb-2026 17:25:21 Africa/Kigali] Validating session on init
[26-Feb-2026 17:25:21 Africa/Kigali] Validating session on init
[26-Feb-2026 17:25:21 Africa/Kigali] Validating session on init
[26-Feb-2026 17:25:21 Africa/Kigali] Validating session on init
[26-Feb-2026 17:25:24 Africa/Kigali] Validating session on init
[26-Feb-2026 17:25:27 Africa/Kigali] Validating session on init
[26-Feb-2026 17:25:51 Africa/Kigali] Validating session on init
[26-Feb-2026 17:26:00 Africa/Kigali] Validating session on init
[26-Feb-2026 17:26:04 Africa/Kigali] Validating session on init
[26-Feb-2026 17:26:04 Africa/Kigali] Validating session on init
[26-Feb-2026 17:26:04 Africa/Kigali] Validating session on init
[26-Feb-2026 17:26:04 Africa/Kigali] Validating session on init
[26-Feb-2026 17:26:21 Africa/Kigali] Validating session on init
[26-Feb-2026 17:26:29 Africa/Kigali] Validating session on init
[26-Feb-2026 17:26:29 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:26:29 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:26:35 Africa/Kigali] Validating session on init
[26-Feb-2026 17:26:44 Africa/Kigali] Validating session on init
[26-Feb-2026 17:27:07 Africa/Kigali] Validating session on init
[26-Feb-2026 17:27:07 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:27:07 Africa/Kigali] Session validated successfully
[2026-02-26 17:27:07] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:27:07 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:27:26 Africa/Kigali] Validating session on init
[26-Feb-2026 17:27:26 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:27:26 Africa/Kigali] Session validated successfully
[2026-02-26 17:27:26] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:27:26 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:27:30 Africa/Kigali] Validating session on init
[26-Feb-2026 17:27:51 Africa/Kigali] Validating session on init
[26-Feb-2026 17:27:51 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:27:51 Africa/Kigali] Session validated successfully
[2026-02-26 17:27:51] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:27:51 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:27:57 Africa/Kigali] Validating session on init
[26-Feb-2026 17:27:57 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:27:57 Africa/Kigali] Session validated successfully
[2026-02-26 17:27:57] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:27:57 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:28:23 Africa/Kigali] Validating session on init
[26-Feb-2026 17:28:23 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:28:23 Africa/Kigali] Session validated successfully
[2026-02-26 17:28:23] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 17:28:23 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 17:28:27 Africa/Kigali] Validating session on init
[26-Feb-2026 17:28:48 Africa/Kigali] Validating session on init
[26-Feb-2026 17:28:48 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 17:28:48 Africa/Kigali] Session validated successfully
[26-Feb-2026 17:29:07 Africa/Kigali] Validating session on init
[26-Feb-2026 17:29:39 Africa/Kigali] Validating session on init
[26-Feb-2026 17:29:46 Africa/Kigali] Validating session on init
[26-Feb-2026 17:29:54 Africa/Kigali] Validating session on init
[26-Feb-2026 17:30:06 Africa/Kigali] Validating session on init
[26-Feb-2026 17:32:50 Africa/Kigali] Validating session on init
[26-Feb-2026 17:32:51 Africa/Kigali] Validating session on init
[26-Feb-2026 18:06:04 Africa/Kigali] Validating session on init
[26-Feb-2026 18:06:14 Africa/Kigali] Validating session on init
[26-Feb-2026 18:06:23 Africa/Kigali] Validating session on init
[26-Feb-2026 18:09:55 Africa/Kigali] Validating session on init
[26-Feb-2026 18:11:54 Africa/Kigali] Login attempt - Username: admin
[26-Feb-2026 18:11:54 Africa/Kigali] User found: Yes
[26-Feb-2026 18:11:54 Africa/Kigali] Login successful for user: admin
[26-Feb-2026 18:11:54 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[26-Feb-2026 18:11:54 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 127.0.0.1
[2026-02-26 18:11:54] [INFO] Successful login for user: admin
[26-Feb-2026 18:11:54 Africa/Kigali] Validating session on init
[26-Feb-2026 18:11:54 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:11:54 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:11:58 Africa/Kigali] Validating session on init
[26-Feb-2026 18:12:03 Africa/Kigali] Validating session on init
[26-Feb-2026 18:12:22 Africa/Kigali] Validating session on init
[26-Feb-2026 18:12:27 Africa/Kigali] Validating session on init
[26-Feb-2026 18:12:27 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:12:27 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:12:32 Africa/Kigali] Validating session on init
[26-Feb-2026 18:12:32 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:12:32 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:12:46 Africa/Kigali] Validating session on init
[26-Feb-2026 18:12:46 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:12:46 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:12:53 Africa/Kigali] Validating session on init
[26-Feb-2026 18:12:53 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:12:53 Africa/Kigali] Session validated successfully
[2026-02-26 18:12:53] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause' SQL: 
        SELECT 
            rt.room_type_id,
            rt.type_name,
            rt.type_code,
            rt.base_price,
            MIN(rp.base_rate) as min_rate,
            MAX(rp.base_rate) as max_rate,
            COUNT(rp.rate_plan_id) as plan_count
        FROM room_types rt
        LEFT JOIN rate_plans rp ON rt.room_type_id = rp.room_type_id AND rp.is_active = 1
        WHERE rt.is_active = 1
        GROUP BY rt.room_type_id
        ORDER BY rt.type_name
    
[26-Feb-2026 18:12:53 Africa/Kigali] Error fetching current rates: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause'
[26-Feb-2026 18:13:02 Africa/Kigali] Validating session on init
[26-Feb-2026 18:13:10 Africa/Kigali] Validating session on init
[26-Feb-2026 18:13:10 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:13:10 Africa/Kigali] Session validated successfully
[2026-02-26 18:13:10] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 18:13:10 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 18:13:18 Africa/Kigali] Validating session on init
[26-Feb-2026 18:13:18 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:13:18 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:13:21 Africa/Kigali] Validating session on init
[26-Feb-2026 18:13:21 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:13:21 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:13:25 Africa/Kigali] Validating session on init
[26-Feb-2026 18:13:25 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:13:25 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:13:30 Africa/Kigali] Validating session on init
[26-Feb-2026 18:13:30 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:13:30 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:13:37 Africa/Kigali] Validating session on init
[26-Feb-2026 18:13:41 Africa/Kigali] Validating session on init
[26-Feb-2026 18:13:44 Africa/Kigali] Validating session on init
[26-Feb-2026 18:13:48 Africa/Kigali] Validating session on init
[26-Feb-2026 18:18:43 Africa/Kigali] Validating session on init
[26-Feb-2026 18:18:43 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:18:43 Africa/Kigali] Session validated successfully
[2026-02-26 18:18:43] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 18:18:43 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 18:18:45 Africa/Kigali] Validating session on init
[26-Feb-2026 18:18:45 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:18:45 Africa/Kigali] Session validated successfully
[2026-02-26 18:18:45] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause' SQL: 
        SELECT 
            rt.room_type_id,
            rt.type_name,
            rt.type_code,
            rt.base_price,
            MIN(rp.base_rate) as min_rate,
            MAX(rp.base_rate) as max_rate,
            COUNT(rp.rate_plan_id) as plan_count
        FROM room_types rt
        LEFT JOIN rate_plans rp ON rt.room_type_id = rp.room_type_id AND rp.is_active = 1
        WHERE rt.is_active = 1
        GROUP BY rt.room_type_id
        ORDER BY rt.type_name
    
[26-Feb-2026 18:18:45 Africa/Kigali] Error fetching current rates: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rt.is_active' in 'where clause'
[26-Feb-2026 18:18:50 Africa/Kigali] Validating session on init
[26-Feb-2026 18:19:10 Africa/Kigali] Login attempt - Username: superadmin
[26-Feb-2026 18:19:10 Africa/Kigali] User found: Yes
[26-Feb-2026 18:19:10 Africa/Kigali] Login successful for user: superadmin
[26-Feb-2026 18:19:10 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[26-Feb-2026 18:19:10 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-26 18:19:10] [INFO] Successful login for user: superadmin
[26-Feb-2026 18:19:10 Africa/Kigali] Validating session on init
[26-Feb-2026 18:19:10 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:19:10 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:19:14 Africa/Kigali] Validating session on init
[26-Feb-2026 18:19:14 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[26-Feb-2026 18:19:14 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[26-Feb-2026 18:19:17 Africa/Kigali] Validating session on init
[26-Feb-2026 18:19:19 Africa/Kigali] Validating session on init
[26-Feb-2026 18:19:28 Africa/Kigali] Validating session on init
[26-Feb-2026 18:19:28 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:19:28 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:19:28 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:19:28 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:20:07 Africa/Kigali] Validating session on init
[26-Feb-2026 18:20:13 Africa/Kigali] Validating session on init
[26-Feb-2026 18:20:52 Africa/Kigali] Validating session on init
[26-Feb-2026 18:22:41 Africa/Kigali] Validating session on init
[26-Feb-2026 18:22:41 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:22:41 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:22:42 Africa/Kigali] Validating session on init
[26-Feb-2026 18:22:42 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[26-Feb-2026 18:22:42 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[26-Feb-2026 18:25:07 Africa/Kigali] Validating session on init
[26-Feb-2026 18:25:07 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:25:07 Africa/Kigali] Session validated successfully
[2026-02-26 18:25:07] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 18:25:07 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 18:25:35 Africa/Kigali] Validating session on init
[26-Feb-2026 18:35:12 Africa/Kigali] Validating session on init
[26-Feb-2026 18:35:13 Africa/Kigali] Validating session on init
[26-Feb-2026 18:35:13 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:35:13 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:35:13 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:35:13 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:37:55 Africa/Kigali] Validating session on init
[26-Feb-2026 18:37:55 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:37:55 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:37:55 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:37:55 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:37:55 Africa/Kigali] To Assign: Array
(
    [0] => 63
    [1] => 30
    [2] => 29
)

[26-Feb-2026 18:37:55 Africa/Kigali] To Remove: Array
(
)

[26-Feb-2026 18:37:59 Africa/Kigali] Validating session on init
[26-Feb-2026 18:38:22 Africa/Kigali] Validating session on init
[26-Feb-2026 18:38:45 Africa/Kigali] Validating session on init
[26-Feb-2026 18:38:45 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:38:45 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:38:45 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:38:45 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:38:49 Africa/Kigali] Validating session on init
[26-Feb-2026 18:39:08 Africa/Kigali] Validating session on init
[26-Feb-2026 18:39:15 Africa/Kigali] Validating session on init
[26-Feb-2026 18:39:23 Africa/Kigali] Validating session on init
[26-Feb-2026 18:44:05 Africa/Kigali] Validating session on init
[26-Feb-2026 18:44:18 Africa/Kigali] Validating session on init
[26-Feb-2026 18:44:18 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:44:18 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:44:32 Africa/Kigali] Validating session on init
[26-Feb-2026 18:44:32 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:44:32 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:44:44 Africa/Kigali] Validating session on init
[26-Feb-2026 18:44:44 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:44:44 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:45:12 Africa/Kigali] Validating session on init
[26-Feb-2026 18:45:12 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:45:12 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:45:20 Africa/Kigali] Validating session on init
[26-Feb-2026 18:45:20 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:45:20 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:45:23 Africa/Kigali] Validating session on init
[26-Feb-2026 18:45:25 Africa/Kigali] Validating session on init
[26-Feb-2026 18:45:25 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[26-Feb-2026 18:45:25 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[26-Feb-2026 18:46:45 Africa/Kigali] Validating session on init
[26-Feb-2026 18:48:00 Africa/Kigali] Validating session on init
[26-Feb-2026 18:48:18 Africa/Kigali] Validating session on init
[26-Feb-2026 18:49:05 Africa/Kigali] Validating session on init
[26-Feb-2026 18:49:05 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:49:05 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:49:05 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:49:05 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:49:31 Africa/Kigali] Validating session on init
[26-Feb-2026 18:49:54 Africa/Kigali] Login attempt - Username: superadmin
[26-Feb-2026 18:49:54 Africa/Kigali] User found: Yes
[26-Feb-2026 18:49:54 Africa/Kigali] Login successful for user: superadmin
[26-Feb-2026 18:49:54 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[26-Feb-2026 18:49:54 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-26 18:49:54] [INFO] Successful login for user: superadmin
[26-Feb-2026 18:49:54 Africa/Kigali] Validating session on init
[26-Feb-2026 18:49:54 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 18:49:54 Africa/Kigali] Session validated successfully
[26-Feb-2026 18:49:56 Africa/Kigali] Validating session on init
[26-Feb-2026 18:50:19 Africa/Kigali] Validating session on init
[26-Feb-2026 18:50:49 Africa/Kigali] Validating session on init
[26-Feb-2026 20:52:25 Africa/Kigali] Validating session on init
[26-Feb-2026 20:52:25 Africa/Kigali] AUDIT: User: 1 | Action: logout | Table: users | Record: 1
[26-Feb-2026 20:52:25 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 20:52:25 Africa/Kigali] validate_session failed, checking remember token
[26-Feb-2026 20:52:25 Africa/Kigali] No valid session or remember token - redirecting to login
[26-Feb-2026 20:52:38 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 20:52:38 Africa/Kigali] validate_session failed, checking remember token
[26-Feb-2026 20:52:38 Africa/Kigali] No valid session or remember token - redirecting to login
[26-Feb-2026 20:54:08 Africa/Kigali] Login attempt - Username: superadmin
[26-Feb-2026 20:54:08 Africa/Kigali] User found: Yes
[26-Feb-2026 20:54:08 Africa/Kigali] Login successful for user: superadmin
[26-Feb-2026 20:54:08 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[26-Feb-2026 20:54:08 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-26 20:54:08] [INFO] Successful login for user: superadmin
[26-Feb-2026 20:54:08 Africa/Kigali] Validating session on init
[26-Feb-2026 20:54:08 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 20:54:08 Africa/Kigali] Session validated successfully
[26-Feb-2026 20:54:15 Africa/Kigali] Validating session on init
[26-Feb-2026 20:54:15 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 20:54:15 Africa/Kigali] Session validated successfully
[2026-02-26 20:54:15] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[26-Feb-2026 20:54:15 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[26-Feb-2026 20:54:48 Africa/Kigali] Validating session on init
[26-Feb-2026 20:54:48 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 20:54:48 Africa/Kigali] Session validated successfully
[26-Feb-2026 20:54:51 Africa/Kigali] Validating session on init
[26-Feb-2026 20:54:51 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 20:54:51 Africa/Kigali] Session validated successfully
[26-Feb-2026 20:55:46 Africa/Kigali] Validating session on init
[26-Feb-2026 20:55:46 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 20:55:46 Africa/Kigali] Session validated successfully
[2026-02-26 20:55:46] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 20:55:46 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 20:56:07 Africa/Kigali] Validating session on init
[26-Feb-2026 20:56:10 Africa/Kigali] Validating session on init
[26-Feb-2026 20:56:21 Africa/Kigali] Validating session on init
[26-Feb-2026 20:56:21 Africa/Kigali] Validating session on init
[26-Feb-2026 20:56:30 Africa/Kigali] Validating session on init
[26-Feb-2026 20:56:30 Africa/Kigali] Validating session on init
[26-Feb-2026 20:56:30 Africa/Kigali] Validating session on init
[2026-02-26 20:56:30] [ERROR] Insert failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'total_price' in table 'purchase_order_items' has been ignored SQL: INSERT INTO purchase_order_items (po_id, product_id, quantity_ordered, unit_price, total_price) VALUES (:po_id, :product_id, :quantity_ordered, :unit_price, :total_price)
[2026-02-26 20:56:30] [ERROR] PO creation failed: SQLSTATE[HY000]: General error: 1906 The value specified for generated column 'total_price' in table 'purchase_order_items' has been ignored
[26-Feb-2026 21:05:39 Africa/Kigali] Validating session on init
[26-Feb-2026 21:05:42 Africa/Kigali] Validating session on init
[26-Feb-2026 21:05:43 Africa/Kigali] Validating session on init
[26-Feb-2026 21:05:58 Africa/Kigali] Validating session on init
[26-Feb-2026 21:05:58 Africa/Kigali] Validating session on init
[26-Feb-2026 21:05:59 Africa/Kigali] Validating session on init
[26-Feb-2026 21:05:59 Africa/Kigali] Inserting purchase order item: Array
(
    [po_id] => 7
    [product_id] => 9
    [quantity_ordered] => 100
    [unit_price] => 1200
)

[26-Feb-2026 21:05:59 Africa/Kigali] Inserting purchase order item: Array
(
    [po_id] => 7
    [product_id] => 9
    [quantity_ordered] => 100
    [unit_price] => 1500
)

[26-Feb-2026 21:05:59 Africa/Kigali] Validating session on init
[26-Feb-2026 21:06:25 Africa/Kigali] Validating session on init
[26-Feb-2026 21:06:44 Africa/Kigali] Validating session on init
[26-Feb-2026 21:06:44 Africa/Kigali] Validating session on init
[26-Feb-2026 21:07:20 Africa/Kigali] Validating session on init
[26-Feb-2026 21:09:32 Africa/Kigali] Validating session on init
[26-Feb-2026 21:09:32 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 21:09:32 Africa/Kigali] Session validated successfully
[26-Feb-2026 21:09:35 Africa/Kigali] Validating session on init
[26-Feb-2026 21:09:35 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 21:09:35 Africa/Kigali] Session validated successfully
[26-Feb-2026 21:09:38 Africa/Kigali] Validating session on init
[26-Feb-2026 21:09:38 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 21:09:38 Africa/Kigali] Session validated successfully
[26-Feb-2026 21:09:41 Africa/Kigali] Validating session on init
[26-Feb-2026 21:09:41 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 21:09:41 Africa/Kigali] Session validated successfully
[26-Feb-2026 21:12:59 Africa/Kigali] Validating session on init
[26-Feb-2026 21:12:59 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 21:12:59 Africa/Kigali] Session validated successfully
[26-Feb-2026 21:13:40 Africa/Kigali] Validating session on init
[2026-02-26 21:13:40] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list' SQL: 
            SELECT 
                CASE 
                    WHEN cancel_reason IS NULL OR cancel_reason = '' THEN 'Not specified'
                    ELSE cancel_reason
                END as reason,
                COUNT(*) as count
            FROM reservations
            WHERE booking_status = 'cancelled'
            AND updated_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
            GROUP BY reason
            ORDER BY count DESC
            LIMIT 5
        
[26-Feb-2026 21:13:40 Africa/Kigali] Error fetching cancellation reasons: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'cancel_reason' in 'field list'
[26-Feb-2026 21:13:40 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function timeAgo() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php:772
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/reservations/dashboard.php on line 772
[26-Feb-2026 21:13:59 Africa/Kigali] Validating session on init
[26-Feb-2026 21:13:59 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 21:13:59 Africa/Kigali] Session validated successfully
[26-Feb-2026 21:14:10 Africa/Kigali] Validating session on init
[26-Feb-2026 21:14:10 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 21:14:10 Africa/Kigali] Session validated successfully
[2026-02-26 21:14:10] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[26-Feb-2026 21:14:10 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[26-Feb-2026 21:14:13 Africa/Kigali] Validating session on init
[26-Feb-2026 21:14:13 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 21:14:13 Africa/Kigali] Session validated successfully
[2026-02-26 21:14:13] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
        SELECT 
            s.payment_method,
            COUNT(*) as transaction_count,
            COALESCE(SUM(s.total_amount), 0) as total
        FROM pos_sales s
        WHERE s.shift_id = ? AND s.payment_status = 'completed'
        GROUP BY s.payment_method
    
[26-Feb-2026 21:14:13 Africa/Kigali] Error fetching sales summary: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[26-Feb-2026 21:14:30 Africa/Kigali] Validating session on init
[26-Feb-2026 21:14:30 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 21:14:30 Africa/Kigali] Session validated successfully
[26-Feb-2026 21:14:44 Africa/Kigali] Validating session on init
[26-Feb-2026 21:14:44 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 21:14:44 Africa/Kigali] Session validated successfully
[2026-02-26 21:14:44] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
        SELECT 
            s.payment_method,
            COUNT(*) as transaction_count,
            COALESCE(SUM(s.total_amount), 0) as total
        FROM pos_sales s
        WHERE s.shift_id = ? AND s.payment_status = 'completed'
        GROUP BY s.payment_method
    
[26-Feb-2026 21:14:44 Africa/Kigali] Error fetching sales summary: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[26-Feb-2026 21:14:44 Africa/Kigali] AUDIT: User: 1 | Action: close_shift | Table: pos_shifts | Record: 3
[26-Feb-2026 21:18:58 Africa/Kigali] Validating session on init
[26-Feb-2026 21:21:55 Africa/Kigali] Validating session on init
[26-Feb-2026 21:21:55 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 21:21:55 Africa/Kigali] Session validated successfully
[26-Feb-2026 21:21:56 Africa/Kigali] Validating session on init
[26-Feb-2026 21:21:56 Africa/Kigali] require_auth called - Checking session
[26-Feb-2026 21:21:56 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:46:02 Africa/Kigali] Login attempt - Username: superadmin
[27-Feb-2026 12:46:02 Africa/Kigali] User found: Yes
[27-Feb-2026 12:46:02 Africa/Kigali] Login successful for user: superadmin
[27-Feb-2026 12:46:02 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[27-Feb-2026 12:46:02 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-27 12:46:02] [INFO] Successful login for user: superadmin
[27-Feb-2026 12:46:02 Africa/Kigali] Validating session on init
[27-Feb-2026 12:46:02 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:46:02 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:46:10 Africa/Kigali] Validating session on init
[27-Feb-2026 12:46:10 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:46:10 Africa/Kigali] Session validated successfully
[2026-02-27 12:46:10] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[27-Feb-2026 12:46:10 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[27-Feb-2026 12:46:13 Africa/Kigali] Validating session on init
[27-Feb-2026 12:46:13 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:46:13 Africa/Kigali] Session validated successfully
[2026-02-27 12:46:13] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 12:46:13 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 12:47:19 Africa/Kigali] Validating session on init
[27-Feb-2026 12:47:19 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:47:19 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:47:24 Africa/Kigali] Validating session on init
[27-Feb-2026 12:47:24 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:47:24 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:47:28 Africa/Kigali] Validating session on init
[27-Feb-2026 12:47:28 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:47:28 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:47:30 Africa/Kigali] Validating session on init
[27-Feb-2026 12:47:30 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:47:30 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:47:34 Africa/Kigali] Validating session on init
[27-Feb-2026 12:47:34 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:47:34 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:47:37 Africa/Kigali] Validating session on init
[27-Feb-2026 12:47:37 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:47:37 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:49:31 Africa/Kigali] Validating session on init
[27-Feb-2026 12:49:31 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:49:31 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:49:36 Africa/Kigali] Validating session on init
[27-Feb-2026 12:49:36 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:49:36 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:49:53 Africa/Kigali] Validating session on init
[27-Feb-2026 12:49:53 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:49:53 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:49:57 Africa/Kigali] Validating session on init
[27-Feb-2026 12:49:57 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:49:57 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:50:07 Africa/Kigali] Validating session on init
[27-Feb-2026 12:50:07 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:50:07 Africa/Kigali] Session validated successfully
[2026-02-27 12:50:07] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 12:50:07 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 12:50:10 Africa/Kigali] Validating session on init
[27-Feb-2026 12:50:10 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:50:10 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:50:24 Africa/Kigali] Validating session on init
[27-Feb-2026 12:50:24 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:50:24 Africa/Kigali] Session validated successfully
[27-Feb-2026 12:50:24 Africa/Kigali] AUDIT: User: 1 | Action: open_shift | Table: pos_shifts | Record: 5
[27-Feb-2026 12:50:24 Africa/Kigali] Validating session on init
[27-Feb-2026 12:50:24 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:50:24 Africa/Kigali] Session validated successfully
[2026-02-27 12:50:24] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list' SQL: 
        SELECT 
            s.payment_method,
            COUNT(*) as transaction_count,
            COALESCE(SUM(s.total_amount), 0) as total
        FROM pos_sales s
        WHERE s.shift_id = ? AND s.payment_status = 'completed'
        GROUP BY s.payment_method
    
[27-Feb-2026 12:50:24 Africa/Kigali] Error fetching sales summary: SQLSTATE[42S22]: Column not found: 1054 Unknown column 's.payment_method' in 'field list'
[27-Feb-2026 12:50:32 Africa/Kigali] Validating session on init
[27-Feb-2026 12:50:32 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:50:32 Africa/Kigali] Session validated successfully
[2026-02-27 12:50:32] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[27-Feb-2026 12:50:32 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[27-Feb-2026 12:50:34 Africa/Kigali] Validating session on init
[27-Feb-2026 12:50:34 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 12:50:34 Africa/Kigali] Session validated successfully
[2026-02-27 12:50:34] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 12:50:34 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 14:33:06 Africa/Kigali] Validating session on init
[27-Feb-2026 14:33:06 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 14:33:06 Africa/Kigali] Session validated successfully
[2026-02-27 14:33:06] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 14:33:06 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 14:33:08 Africa/Kigali] Validating session on init
[27-Feb-2026 14:33:08 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 14:33:08 Africa/Kigali] Session validated successfully
[2026-02-27 14:33:08] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 14:33:08 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 14:33:18 Africa/Kigali] Validating session on init
[27-Feb-2026 14:33:18 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 14:33:18 Africa/Kigali] Session validated successfully
[2026-02-27 14:33:18] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 14:33:18 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 14:33:22 Africa/Kigali] Validating session on init
[27-Feb-2026 14:33:22 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 14:33:22 Africa/Kigali] Session validated successfully
[27-Feb-2026 14:33:42 Africa/Kigali] Validating session on init
[27-Feb-2026 14:33:48 Africa/Kigali] Validating session on init
[27-Feb-2026 14:33:48 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 14:33:48 Africa/Kigali] Session validated successfully
[2026-02-27 14:33:48] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 14:33:48 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 14:55:44 Africa/Kigali] Validating session on init
[27-Feb-2026 14:55:44 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 14:55:44 Africa/Kigali] Session validated successfully
[2026-02-27 14:55:44] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 14:55:44 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 14:55:45 Africa/Kigali] Validating session on init
[27-Feb-2026 14:55:45 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 14:55:45 Africa/Kigali] Session validated successfully
[2026-02-27 14:55:45] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 14:55:45 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 14:55:46 Africa/Kigali] Validating session on init
[27-Feb-2026 14:55:46 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 14:55:46 Africa/Kigali] Session validated successfully
[2026-02-27 14:55:46] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 14:55:46 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 14:55:46 Africa/Kigali] Validating session on init
[27-Feb-2026 14:55:46 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 14:55:46 Africa/Kigali] Session validated successfully
[2026-02-27 14:55:46] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 14:55:46 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 14:55:58 Africa/Kigali] Validating session on init
[27-Feb-2026 14:56:03 Africa/Kigali] Validating session on init
[27-Feb-2026 14:56:03 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 14:56:03 Africa/Kigali] Session validated successfully
[2026-02-27 14:56:03] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 14:56:03 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 15:19:06 Africa/Kigali] Validating session on init
[27-Feb-2026 15:19:06 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 15:19:06 Africa/Kigali] Session validated successfully
[2026-02-27 15:19:06] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 15:19:06 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 15:19:08 Africa/Kigali] Validating session on init
[27-Feb-2026 15:19:08 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 15:19:08 Africa/Kigali] Session validated successfully
[2026-02-27 15:19:08] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 15:19:08 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 15:19:34 Africa/Kigali] Validating session on init
[27-Feb-2026 15:19:34 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 15:19:34 Africa/Kigali] Session validated successfully
[2026-02-27 15:19:34] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 15:19:34 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 15:20:06 Africa/Kigali] Validating session on init
[27-Feb-2026 15:20:06 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 15:20:06 Africa/Kigali] Session validated successfully
[2026-02-27 15:20:06] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 15:20:06 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 15:20:07 Africa/Kigali] Validating session on init
[27-Feb-2026 15:20:07 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 15:20:07 Africa/Kigali] Session validated successfully
[2026-02-27 15:20:07] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 15:20:07 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 15:20:17 Africa/Kigali] Validating session on init
[27-Feb-2026 15:20:17 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 15:20:17 Africa/Kigali] Session validated successfully
[2026-02-27 15:20:17] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 15:20:17 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 15:20:19 Africa/Kigali] Validating session on init
[27-Feb-2026 15:20:19 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 15:20:19 Africa/Kigali] Session validated successfully
[27-Feb-2026 15:27:00 Africa/Kigali] Validating session on init
[27-Feb-2026 15:27:00 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 15:27:00 Africa/Kigali] Session validated successfully
[2026-02-27 15:27:00] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 15:27:00 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 16:03:27 Africa/Kigali] Validating session on init
[27-Feb-2026 16:03:27 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:03:27 Africa/Kigali] Session validated successfully
[2026-02-27 16:03:27] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 16:03:27 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 16:03:29 Africa/Kigali] Validating session on init
[27-Feb-2026 16:03:29 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:03:29 Africa/Kigali] Session validated successfully
[2026-02-27 16:03:29] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 16:03:29 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 16:04:56 Africa/Kigali] Validating session on init
[27-Feb-2026 16:04:56 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:04:56 Africa/Kigali] Session validated successfully
[2026-02-27 16:04:56] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 16:04:56 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 16:04:59 Africa/Kigali] Validating session on init
[27-Feb-2026 16:04:59 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:04:59 Africa/Kigali] Session validated successfully
[2026-02-27 16:04:59] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 16:04:59 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 16:05:10 Africa/Kigali] Validating session on init
[27-Feb-2026 16:05:10 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:05:10 Africa/Kigali] Session validated successfully
[2026-02-27 16:05:10] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 16:05:10 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 16:05:11 Africa/Kigali] Validating session on init
[27-Feb-2026 16:05:11 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:05:11 Africa/Kigali] Session validated successfully
[2026-02-27 16:05:11] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 16:05:11 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 16:05:20 Africa/Kigali] Validating session on init
[27-Feb-2026 16:05:20 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:05:20 Africa/Kigali] Session validated successfully
[2026-02-27 16:05:20] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 16:05:20 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 16:05:24 Africa/Kigali] Validating session on init
[27-Feb-2026 16:05:24 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:05:24 Africa/Kigali] Session validated successfully
[2026-02-27 16:05:24] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[27-Feb-2026 16:05:24 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[27-Feb-2026 16:05:29 Africa/Kigali] Validating session on init
[27-Feb-2026 16:05:29 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:05:29 Africa/Kigali] Session validated successfully
[27-Feb-2026 16:05:42 Africa/Kigali] Validating session on init
[27-Feb-2026 16:05:42 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:05:42 Africa/Kigali] Session validated successfully
[27-Feb-2026 16:06:03 Africa/Kigali] Validating session on init
[27-Feb-2026 16:06:03 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:06:03 Africa/Kigali] Session validated successfully
[27-Feb-2026 16:07:35 Africa/Kigali] Validating session on init
[27-Feb-2026 16:07:35 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:07:35 Africa/Kigali] Session validated successfully
[27-Feb-2026 16:07:57 Africa/Kigali] Validating session on init
[27-Feb-2026 16:07:57 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:07:57 Africa/Kigali] Session validated successfully
[27-Feb-2026 16:08:03 Africa/Kigali] Validating session on init
[27-Feb-2026 16:08:10 Africa/Kigali] Validating session on init
[27-Feb-2026 16:08:20 Africa/Kigali] Validating session on init
[27-Feb-2026 16:08:21 Africa/Kigali] Validating session on init
[27-Feb-2026 16:08:21 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:08:21 Africa/Kigali] Session validated successfully
[27-Feb-2026 16:08:26 Africa/Kigali] Validating session on init
[27-Feb-2026 16:08:29 Africa/Kigali] Validating session on init
[27-Feb-2026 16:08:36 Africa/Kigali] Validating session on init
[27-Feb-2026 16:09:35 Africa/Kigali] Validating session on init
[27-Feb-2026 16:09:54 Africa/Kigali] Validating session on init
[27-Feb-2026 16:10:18 Africa/Kigali] Validating session on init
[27-Feb-2026 16:10:31 Africa/Kigali] Validating session on init
[27-Feb-2026 16:10:42 Africa/Kigali] Validating session on init
[27-Feb-2026 16:10:42 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[27-Feb-2026 16:10:42 Africa/Kigali] db_connect() function not found. Make sure database.php is loaded.
[27-Feb-2026 16:10:48 Africa/Kigali] Validating session on init
[27-Feb-2026 16:10:50 Africa/Kigali] Validating session on init
[27-Feb-2026 16:10:50 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:10:50 Africa/Kigali] Session validated successfully
[27-Feb-2026 16:11:00 Africa/Kigali] Validating session on init
[27-Feb-2026 16:11:03 Africa/Kigali] Validating session on init
[27-Feb-2026 16:11:44 Africa/Kigali] Validating session on init
[27-Feb-2026 16:12:38 Africa/Kigali] Validating session on init
[27-Feb-2026 16:12:40 Africa/Kigali] Validating session on init
[27-Feb-2026 16:12:43 Africa/Kigali] Validating session on init
[27-Feb-2026 16:12:49 Africa/Kigali] Validating session on init
[27-Feb-2026 16:58:47 Africa/Kigali] Validating session on init
[27-Feb-2026 16:58:47 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:58:47 Africa/Kigali] Session validated successfully
[2026-02-27 16:58:47] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[27-Feb-2026 16:58:47 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[27-Feb-2026 16:58:49 Africa/Kigali] Validating session on init
[27-Feb-2026 16:58:49 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 16:58:49 Africa/Kigali] Session validated successfully
[2026-02-27 16:58:49] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 16:58:49 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 17:06:37 Africa/Kigali] Validating session on init
[27-Feb-2026 17:06:37 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 17:06:37 Africa/Kigali] Session validated successfully
[27-Feb-2026 17:06:46 Africa/Kigali] Validating session on init
[27-Feb-2026 17:06:46 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 17:06:46 Africa/Kigali] Session validated successfully
[27-Feb-2026 17:06:52 Africa/Kigali] Validating session on init
[27-Feb-2026 17:06:52 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 17:06:52 Africa/Kigali] Session validated successfully
[27-Feb-2026 17:07:03 Africa/Kigali] Validating session on init
[27-Feb-2026 17:07:03 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 17:07:03 Africa/Kigali] Session validated successfully
[2026-02-27 17:07:03] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[27-Feb-2026 17:07:03 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[27-Feb-2026 17:07:09 Africa/Kigali] Validating session on init
[27-Feb-2026 17:07:09 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 17:07:09 Africa/Kigali] Session validated successfully
[27-Feb-2026 17:07:16 Africa/Kigali] Validating session on init
[27-Feb-2026 17:07:16 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 17:07:16 Africa/Kigali] Session validated successfully
[27-Feb-2026 17:24:48 Africa/Kigali] Validating session on init
[27-Feb-2026 17:24:48 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 17:24:48 Africa/Kigali] Session validated successfully
[27-Feb-2026 17:25:05 Africa/Kigali] Validating session on init
[27-Feb-2026 17:25:05 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 17:25:05 Africa/Kigali] Session validated successfully
[27-Feb-2026 17:25:09 Africa/Kigali] Validating session on init
[27-Feb-2026 17:25:09 Africa/Kigali] require_auth called - Checking session
[27-Feb-2026 17:25:09 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:13:47 Africa/Kigali] Login attempt - Username: superadmin
[28-Feb-2026 17:13:47 Africa/Kigali] User found: Yes
[28-Feb-2026 17:13:47 Africa/Kigali] Login successful for user: superadmin
[28-Feb-2026 17:13:47 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[28-Feb-2026 17:13:47 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-02-28 17:13:47] [INFO] Successful login for user: superadmin
[28-Feb-2026 17:13:47 Africa/Kigali] Validating session on init
[28-Feb-2026 17:13:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:13:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:13:59 Africa/Kigali] Validating session on init
[28-Feb-2026 17:13:59 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:13:59 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:14:08 Africa/Kigali] Validating session on init
[28-Feb-2026 17:14:08 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:14:08 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:14:13 Africa/Kigali] Validating session on init
[28-Feb-2026 17:14:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:14:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:14:14 Africa/Kigali] Validating session on init
[28-Feb-2026 17:14:14 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:14:14 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:14:58 Africa/Kigali] Validating session on init
[28-Feb-2026 17:14:58 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:14:58 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:15:27 Africa/Kigali] Validating session on init
[28-Feb-2026 17:15:27 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:15:27 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:15:27 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_categories | Record: 10
[28-Feb-2026 17:15:27 Africa/Kigali] Validating session on init
[28-Feb-2026 17:15:27 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:15:27 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:15:55 Africa/Kigali] Validating session on init
[28-Feb-2026 17:15:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:15:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:16:24 Africa/Kigali] Validating session on init
[28-Feb-2026 17:16:24 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:16:24 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:16:24 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_categories | Record: 1
[28-Feb-2026 17:16:24 Africa/Kigali] Validating session on init
[28-Feb-2026 17:16:24 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:16:24 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:16:39 Africa/Kigali] Validating session on init
[28-Feb-2026 17:16:39 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:16:39 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:17:00 Africa/Kigali] Validating session on init
[28-Feb-2026 17:17:00 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:17:00 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:17:00 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_categories | Record: 2
[28-Feb-2026 17:17:00 Africa/Kigali] Validating session on init
[28-Feb-2026 17:17:00 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:17:00 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:17:24 Africa/Kigali] Validating session on init
[28-Feb-2026 17:17:24 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:17:24 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:17:36 Africa/Kigali] Validating session on init
[28-Feb-2026 17:17:36 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:17:36 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:17:41 Africa/Kigali] Validating session on init
[28-Feb-2026 17:17:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:17:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:18:05 Africa/Kigali] Validating session on init
[28-Feb-2026 17:18:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:18:05 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:18:05 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_categories | Record: 4
[28-Feb-2026 17:18:05 Africa/Kigali] Validating session on init
[28-Feb-2026 17:18:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:18:05 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:18:19 Africa/Kigali] Validating session on init
[28-Feb-2026 17:18:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:18:19 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:18:42 Africa/Kigali] Validating session on init
[28-Feb-2026 17:18:42 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:18:42 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:18:42 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_categories | Record: 5
[28-Feb-2026 17:18:42 Africa/Kigali] Validating session on init
[28-Feb-2026 17:18:42 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:18:42 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:18:45 Africa/Kigali] Validating session on init
[28-Feb-2026 17:18:45 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:18:45 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:18:48 Africa/Kigali] Validating session on init
[28-Feb-2026 17:18:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:18:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:18:48 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_categories | Record: 3
[28-Feb-2026 17:18:48 Africa/Kigali] Validating session on init
[28-Feb-2026 17:18:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:18:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:19:03 Africa/Kigali] Validating session on init
[28-Feb-2026 17:19:03 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:19:03 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:19:23 Africa/Kigali] Validating session on init
[28-Feb-2026 17:19:23 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:19:23 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:19:23 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_categories | Record: 7
[28-Feb-2026 17:19:23 Africa/Kigali] Validating session on init
[28-Feb-2026 17:19:23 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:19:23 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:19:36 Africa/Kigali] Validating session on init
[28-Feb-2026 17:19:36 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:19:36 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:20:01 Africa/Kigali] Validating session on init
[28-Feb-2026 17:20:01 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:20:01 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:20:01 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_categories | Record: 8
[28-Feb-2026 17:20:01 Africa/Kigali] Validating session on init
[28-Feb-2026 17:20:01 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:20:01 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:20:05 Africa/Kigali] Validating session on init
[28-Feb-2026 17:20:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:20:05 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:20:31 Africa/Kigali] Validating session on init
[28-Feb-2026 17:20:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:20:31 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:20:31 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_categories | Record: 11
[28-Feb-2026 17:20:31 Africa/Kigali] Validating session on init
[28-Feb-2026 17:20:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:20:31 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:20:41 Africa/Kigali] Validating session on init
[28-Feb-2026 17:20:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:20:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:20:45 Africa/Kigali] Validating session on init
[28-Feb-2026 17:20:45 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:20:45 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:20:45 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_categories | Record: 11
[28-Feb-2026 17:20:45 Africa/Kigali] Validating session on init
[28-Feb-2026 17:20:45 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:20:45 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:20:50 Africa/Kigali] Validating session on init
[28-Feb-2026 17:20:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:20:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:21:14 Africa/Kigali] Validating session on init
[28-Feb-2026 17:21:14 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:21:14 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:21:14 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_categories | Record: 12
[28-Feb-2026 17:21:14 Africa/Kigali] Validating session on init
[28-Feb-2026 17:21:14 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:21:14 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:21:17 Africa/Kigali] Validating session on init
[28-Feb-2026 17:21:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:21:17 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:21:51 Africa/Kigali] Validating session on init
[28-Feb-2026 17:21:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:21:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:21:51 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_categories | Record: 13
[28-Feb-2026 17:21:51 Africa/Kigali] Validating session on init
[28-Feb-2026 17:21:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:21:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:21:53 Africa/Kigali] Validating session on init
[28-Feb-2026 17:21:53 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:21:53 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:22:58 Africa/Kigali] Validating session on init
[28-Feb-2026 17:22:58 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:22:58 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:22:58 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_categories | Record: 14
[28-Feb-2026 17:22:58 Africa/Kigali] Validating session on init
[28-Feb-2026 17:22:58 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:22:58 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:23:28 Africa/Kigali] Validating session on init
[28-Feb-2026 17:23:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:23:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:24:11 Africa/Kigali] Validating session on init
[28-Feb-2026 17:24:11 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:24:11 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:24:11 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_categories | Record: 15
[28-Feb-2026 17:24:11 Africa/Kigali] Validating session on init
[28-Feb-2026 17:24:11 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:24:11 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:24:25 Africa/Kigali] Validating session on init
[28-Feb-2026 17:24:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:24:25 Africa/Kigali] Session validated successfully
[2026-02-28 17:24:25] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[28-Feb-2026 17:24:25 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[28-Feb-2026 17:24:28 Africa/Kigali] Validating session on init
[28-Feb-2026 17:24:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:24:28 Africa/Kigali] Session validated successfully
[2026-02-28 17:24:28] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:24:28 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:24:48 Africa/Kigali] Validating session on init
[28-Feb-2026 17:24:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:24:48 Africa/Kigali] Session validated successfully
[2026-02-28 17:24:48] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:24:48 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:24:49 Africa/Kigali] Validating session on init
[28-Feb-2026 17:24:49 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:24:49 Africa/Kigali] Session validated successfully
[2026-02-28 17:24:49] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:24:49 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:24:51 Africa/Kigali] Validating session on init
[28-Feb-2026 17:24:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:24:51 Africa/Kigali] Session validated successfully
[2026-02-28 17:24:51] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:24:51 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:24:52 Africa/Kigali] Validating session on init
[28-Feb-2026 17:24:52 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:24:52 Africa/Kigali] Session validated successfully
[2026-02-28 17:24:52] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:24:52 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:24:53 Africa/Kigali] Validating session on init
[28-Feb-2026 17:24:53 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:24:53 Africa/Kigali] Session validated successfully
[2026-02-28 17:24:53] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:24:53 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:24:55 Africa/Kigali] Validating session on init
[28-Feb-2026 17:24:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:24:55 Africa/Kigali] Session validated successfully
[2026-02-28 17:24:55] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:24:55 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:25:00 Africa/Kigali] Validating session on init
[28-Feb-2026 17:25:00 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:25:00 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:25:05 Africa/Kigali] Validating session on init
[28-Feb-2026 17:25:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:25:05 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:26:37 Africa/Kigali] Validating session on init
[28-Feb-2026 17:26:37 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:26:37 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:26:37 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 26
[28-Feb-2026 17:26:37 Africa/Kigali] Validating session on init
[28-Feb-2026 17:26:37 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:26:37 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:26:49 Africa/Kigali] Validating session on init
[28-Feb-2026 17:26:49 Africa/Kigali] Validating session on init
[28-Feb-2026 17:26:49 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:26:49 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:26:52 Africa/Kigali] Validating session on init
[28-Feb-2026 17:26:52 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:26:52 Africa/Kigali] Session validated successfully
[2026-02-28 17:26:52] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[28-Feb-2026 17:26:52 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[28-Feb-2026 17:26:53 Africa/Kigali] Validating session on init
[28-Feb-2026 17:26:53 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:26:53 Africa/Kigali] Session validated successfully
[2026-02-28 17:26:53] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:26:53 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:26:54 Africa/Kigali] Validating session on init
[28-Feb-2026 17:26:54 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:26:54 Africa/Kigali] Session validated successfully
[2026-02-28 17:26:54] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:26:54 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:27:16 Africa/Kigali] Validating session on init
[28-Feb-2026 17:27:20 Africa/Kigali] Validating session on init
[28-Feb-2026 17:28:16 Africa/Kigali] Validating session on init
[28-Feb-2026 17:28:31 Africa/Kigali] Validating session on init
[28-Feb-2026 17:28:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:28:31 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:28:39 Africa/Kigali] Validating session on init
[28-Feb-2026 17:28:39 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:28:39 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:28:44 Africa/Kigali] Validating session on init
[28-Feb-2026 17:28:44 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:28:44 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:28:58 Africa/Kigali] Validating session on init
[28-Feb-2026 17:28:58 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:28:58 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:28:58 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 26
[28-Feb-2026 17:28:58 Africa/Kigali] Validating session on init
[28-Feb-2026 17:28:58 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:28:58 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:29:38 Africa/Kigali] Validating session on init
[28-Feb-2026 17:29:38 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:29:38 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:29:56 Africa/Kigali] Validating session on init
[28-Feb-2026 17:30:02 Africa/Kigali] Validating session on init
[28-Feb-2026 17:30:05 Africa/Kigali] Validating session on init
[28-Feb-2026 17:30:37 Africa/Kigali] Validating session on init
[28-Feb-2026 17:30:37 Africa/Kigali] Validating session on init
[28-Feb-2026 17:30:39 Africa/Kigali] Validating session on init
[28-Feb-2026 17:30:39 Africa/Kigali] Inserting purchase order item: Array
(
    [po_id] => 8
    [product_id] => 26
    [quantity_ordered] => 100
    [unit_price] => 250000
)

[28-Feb-2026 17:30:39 Africa/Kigali] Validating session on init
[28-Feb-2026 17:30:51 Africa/Kigali] Validating session on init
[28-Feb-2026 17:30:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:30:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:31:30 Africa/Kigali] Validating session on init
[28-Feb-2026 17:31:30 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:31:30 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:31:30 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 27
[28-Feb-2026 17:31:30 Africa/Kigali] Validating session on init
[28-Feb-2026 17:31:30 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:31:30 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:31:48 Africa/Kigali] Validating session on init
[28-Feb-2026 17:31:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:31:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:31:51 Africa/Kigali] Validating session on init
[28-Feb-2026 17:31:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:31:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:31:56 Africa/Kigali] Validating session on init
[28-Feb-2026 17:31:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:31:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:31:57 Africa/Kigali] Validating session on init
[28-Feb-2026 17:31:57 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:31:57 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:32:32 Africa/Kigali] Validating session on init
[28-Feb-2026 17:32:32 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:32:32 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:32:32 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 28
[28-Feb-2026 17:32:32 Africa/Kigali] Validating session on init
[28-Feb-2026 17:32:32 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:32:32 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:32:42 Africa/Kigali] Validating session on init
[28-Feb-2026 17:32:49 Africa/Kigali] Validating session on init
[28-Feb-2026 17:32:50 Africa/Kigali] Validating session on init
[28-Feb-2026 17:33:09 Africa/Kigali] Validating session on init
[28-Feb-2026 17:33:09 Africa/Kigali] Validating session on init
[28-Feb-2026 17:33:23 Africa/Kigali] Validating session on init
[28-Feb-2026 17:33:23 Africa/Kigali] Validating session on init
[28-Feb-2026 17:33:28 Africa/Kigali] Validating session on init
[28-Feb-2026 17:33:28 Africa/Kigali] Inserting purchase order item: Array
(
    [po_id] => 9
    [product_id] => 28
    [quantity_ordered] => 100
    [unit_price] => 60000
)

[28-Feb-2026 17:33:28 Africa/Kigali] Inserting purchase order item: Array
(
    [po_id] => 9
    [product_id] => 27
    [quantity_ordered] => 100
    [unit_price] => 250000
)

[28-Feb-2026 17:33:28 Africa/Kigali] Validating session on init
[28-Feb-2026 17:33:33 Africa/Kigali] Validating session on init
[28-Feb-2026 17:33:33 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:33:33 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:34:06 Africa/Kigali] Validating session on init
[28-Feb-2026 17:34:06 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:34:06 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:34:06 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 29
[28-Feb-2026 17:34:06 Africa/Kigali] Validating session on init
[28-Feb-2026 17:34:06 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:34:06 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:34:17 Africa/Kigali] Validating session on init
[28-Feb-2026 17:34:25 Africa/Kigali] Validating session on init
[28-Feb-2026 17:34:25 Africa/Kigali] Validating session on init
[28-Feb-2026 17:34:59 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:06 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:06 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:35:06 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:35:21 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:22 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:22 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:26 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:30 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:30 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:32 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:38 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:50 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:35:50 Africa/Kigali] Session validated successfully
[2026-02-28 17:35:50] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[28-Feb-2026 17:35:50 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[28-Feb-2026 17:35:51 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:35:51 Africa/Kigali] Session validated successfully
[2026-02-28 17:35:51] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:35:51 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:35:53 Africa/Kigali] Validating session on init
[28-Feb-2026 17:35:53 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:35:53 Africa/Kigali] Session validated successfully
[2026-02-28 17:35:53] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:35:53 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:36:05 Africa/Kigali] Validating session on init
[28-Feb-2026 17:36:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:36:05 Africa/Kigali] Session validated successfully
[2026-02-28 17:36:05] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:36:05 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:36:31 Africa/Kigali] Validating session on init
[28-Feb-2026 17:36:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:36:31 Africa/Kigali] Session validated successfully
[2026-02-28 17:36:31] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:36:31 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:36:35 Africa/Kigali] Validating session on init
[28-Feb-2026 17:36:35 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:36:35 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:36:43 Africa/Kigali] Validating session on init
[28-Feb-2026 17:36:43 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:36:43 Africa/Kigali] Session validated successfully
[2026-02-28 17:36:43] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:36:43 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:36:47 Africa/Kigali] Validating session on init
[28-Feb-2026 17:36:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:36:47 Africa/Kigali] Session validated successfully
[2026-02-28 17:36:47] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[28-Feb-2026 17:36:47 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[28-Feb-2026 17:36:50 Africa/Kigali] Validating session on init
[28-Feb-2026 17:36:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:36:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:36:50 Africa/Kigali] Revenue Stats - Total: 30, Revenue: 1489266.2, Items: 644
[28-Feb-2026 17:36:55 Africa/Kigali] Validating session on init
[28-Feb-2026 17:36:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:36:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:40:33 Africa/Kigali] Validating session on init
[28-Feb-2026 17:40:33 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:40:33 Africa/Kigali] Session validated successfully
[2026-02-28 17:40:33] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 17:40:33 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 17:40:46 Africa/Kigali] Validating session on init
[28-Feb-2026 17:40:46 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:40:46 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:40:49 Africa/Kigali] Validating session on init
[28-Feb-2026 17:40:49 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:40:49 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:40:57 Africa/Kigali] Validating session on init
[28-Feb-2026 17:40:57 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:40:57 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:41:01 Africa/Kigali] Validating session on init
[28-Feb-2026 17:41:01 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:41:01 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:41:08 Africa/Kigali] Validating session on init
[28-Feb-2026 17:41:08 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:41:08 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:44:07 Africa/Kigali] Validating session on init
[28-Feb-2026 17:44:07 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:44:07 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:44:42 Africa/Kigali] Validating session on init
[28-Feb-2026 17:44:43 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:44:43 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:44:43 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 30
[28-Feb-2026 17:44:43 Africa/Kigali] Validating session on init
[28-Feb-2026 17:44:43 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:44:43 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:44:48 Africa/Kigali] Validating session on init
[28-Feb-2026 17:44:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:44:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:44:51 Africa/Kigali] Validating session on init
[28-Feb-2026 17:44:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:44:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:44:54 Africa/Kigali] Validating session on init
[28-Feb-2026 17:44:54 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:44:54 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:44:55 Africa/Kigali] Validating session on init
[28-Feb-2026 17:44:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:44:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:45:28 Africa/Kigali] Validating session on init
[28-Feb-2026 17:45:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:45:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:45:28 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 31
[28-Feb-2026 17:45:28 Africa/Kigali] Validating session on init
[28-Feb-2026 17:45:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:45:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:45:29 Africa/Kigali] Validating session on init
[28-Feb-2026 17:45:29 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:45:29 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:46:07 Africa/Kigali] Validating session on init
[28-Feb-2026 17:46:07 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:46:07 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:46:07 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 32
[28-Feb-2026 17:46:07 Africa/Kigali] Validating session on init
[28-Feb-2026 17:46:07 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:46:07 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:46:15 Africa/Kigali] Validating session on init
[28-Feb-2026 17:46:15 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:46:15 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:46:32 Africa/Kigali] Validating session on init
[28-Feb-2026 17:46:32 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:46:32 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:46:32 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 33
[28-Feb-2026 17:46:32 Africa/Kigali] Validating session on init
[28-Feb-2026 17:46:32 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:46:32 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:46:46 Africa/Kigali] Validating session on init
[28-Feb-2026 17:46:46 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:46:46 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:47:05 Africa/Kigali] Validating session on init
[28-Feb-2026 17:47:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:47:05 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:47:05 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 34
[28-Feb-2026 17:47:05 Africa/Kigali] Validating session on init
[28-Feb-2026 17:47:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:47:05 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:47:08 Africa/Kigali] Validating session on init
[28-Feb-2026 17:47:08 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:47:08 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:47:31 Africa/Kigali] Validating session on init
[28-Feb-2026 17:47:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:47:31 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:47:31 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 35
[28-Feb-2026 17:47:31 Africa/Kigali] Validating session on init
[28-Feb-2026 17:47:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:47:31 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:47:41 Africa/Kigali] Validating session on init
[28-Feb-2026 17:47:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:47:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:48:04 Africa/Kigali] Validating session on init
[28-Feb-2026 17:48:04 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:48:04 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:48:04 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 36
[28-Feb-2026 17:48:04 Africa/Kigali] Validating session on init
[28-Feb-2026 17:48:04 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:48:04 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:48:06 Africa/Kigali] Validating session on init
[28-Feb-2026 17:48:06 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:48:06 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:48:33 Africa/Kigali] Validating session on init
[28-Feb-2026 17:48:33 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:48:33 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:48:33 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 37
[28-Feb-2026 17:48:33 Africa/Kigali] Validating session on init
[28-Feb-2026 17:48:33 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:48:33 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:48:35 Africa/Kigali] Validating session on init
[28-Feb-2026 17:48:35 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:48:35 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:49:13 Africa/Kigali] Validating session on init
[28-Feb-2026 17:49:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:49:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:49:13 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 38
[28-Feb-2026 17:49:13 Africa/Kigali] Validating session on init
[28-Feb-2026 17:49:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:49:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:49:14 Africa/Kigali] Validating session on init
[28-Feb-2026 17:49:14 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:49:14 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:49:39 Africa/Kigali] Validating session on init
[28-Feb-2026 17:49:39 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:49:39 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:49:39 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 39
[28-Feb-2026 17:49:39 Africa/Kigali] Validating session on init
[28-Feb-2026 17:49:39 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:49:39 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:49:40 Africa/Kigali] Validating session on init
[28-Feb-2026 17:49:40 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:49:40 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:50:12 Africa/Kigali] Validating session on init
[28-Feb-2026 17:50:12 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:50:12 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:50:12 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 40
[28-Feb-2026 17:50:12 Africa/Kigali] Validating session on init
[28-Feb-2026 17:50:12 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:50:12 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:50:22 Africa/Kigali] Validating session on init
[28-Feb-2026 17:50:22 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:50:22 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:50:50 Africa/Kigali] Validating session on init
[28-Feb-2026 17:50:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:50:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:50:50 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 41
[28-Feb-2026 17:50:50 Africa/Kigali] Validating session on init
[28-Feb-2026 17:50:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:50:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:50:52 Africa/Kigali] Validating session on init
[28-Feb-2026 17:50:52 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:50:52 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:51:23 Africa/Kigali] Validating session on init
[28-Feb-2026 17:51:23 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:51:23 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:51:23 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 42
[28-Feb-2026 17:51:23 Africa/Kigali] Validating session on init
[28-Feb-2026 17:51:23 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:51:23 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:51:57 Africa/Kigali] Validating session on init
[28-Feb-2026 17:51:57 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:51:57 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:51:57 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 43
[28-Feb-2026 17:51:57 Africa/Kigali] Validating session on init
[28-Feb-2026 17:51:57 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:51:57 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:52:26 Africa/Kigali] Validating session on init
[28-Feb-2026 17:52:26 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:52:26 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:52:26 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 44
[28-Feb-2026 17:52:26 Africa/Kigali] Validating session on init
[28-Feb-2026 17:52:26 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:52:26 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:52:29 Africa/Kigali] Validating session on init
[28-Feb-2026 17:52:29 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:52:29 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:53:07 Africa/Kigali] Validating session on init
[28-Feb-2026 17:53:07 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:53:07 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:53:07 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 45
[28-Feb-2026 17:53:07 Africa/Kigali] Validating session on init
[28-Feb-2026 17:53:07 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:53:07 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:53:28 Africa/Kigali] Validating session on init
[28-Feb-2026 17:53:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:53:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:53:28 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 46
[28-Feb-2026 17:53:28 Africa/Kigali] Validating session on init
[28-Feb-2026 17:53:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:53:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:53:47 Africa/Kigali] Validating session on init
[28-Feb-2026 17:53:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:53:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:55:07 Africa/Kigali] Validating session on init
[28-Feb-2026 17:55:07 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:55:07 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:55:16 Africa/Kigali] Validating session on init
[28-Feb-2026 17:55:16 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:55:16 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:55:16 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 47
[28-Feb-2026 17:55:16 Africa/Kigali] Validating session on init
[28-Feb-2026 17:55:16 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:55:16 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:55:48 Africa/Kigali] Validating session on init
[28-Feb-2026 17:55:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:55:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:55:48 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 48
[28-Feb-2026 17:55:48 Africa/Kigali] Validating session on init
[28-Feb-2026 17:55:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:55:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:56:18 Africa/Kigali] Validating session on init
[28-Feb-2026 17:56:18 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:56:18 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:56:18 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 49
[28-Feb-2026 17:56:18 Africa/Kigali] Validating session on init
[28-Feb-2026 17:56:18 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:56:18 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:56:48 Africa/Kigali] Validating session on init
[28-Feb-2026 17:56:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:56:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:56:48 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 50
[28-Feb-2026 17:56:48 Africa/Kigali] Validating session on init
[28-Feb-2026 17:56:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:56:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:56:54 Africa/Kigali] Validating session on init
[28-Feb-2026 17:56:54 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:56:54 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:57:31 Africa/Kigali] Validating session on init
[28-Feb-2026 17:57:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:57:31 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:57:31 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 51
[28-Feb-2026 17:57:31 Africa/Kigali] Validating session on init
[28-Feb-2026 17:57:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:57:31 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:57:33 Africa/Kigali] Validating session on init
[28-Feb-2026 17:57:33 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:57:33 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:58:21 Africa/Kigali] Validating session on init
[28-Feb-2026 17:58:21 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:58:21 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:58:21 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 52
[28-Feb-2026 17:58:21 Africa/Kigali] Validating session on init
[28-Feb-2026 17:58:21 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:58:21 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:58:50 Africa/Kigali] Validating session on init
[28-Feb-2026 17:58:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:58:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:58:50 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 53
[28-Feb-2026 17:58:50 Africa/Kigali] Validating session on init
[28-Feb-2026 17:58:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:58:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:59:17 Africa/Kigali] Validating session on init
[28-Feb-2026 17:59:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:59:17 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:59:17 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 54
[28-Feb-2026 17:59:17 Africa/Kigali] Validating session on init
[28-Feb-2026 17:59:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:59:17 Africa/Kigali] Session validated successfully
[28-Feb-2026 17:59:58 Africa/Kigali] Validating session on init
[28-Feb-2026 17:59:58 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 17:59:58 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:00:10 Africa/Kigali] Validating session on init
[28-Feb-2026 18:00:10 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:00:10 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:00:10 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 55
[28-Feb-2026 18:00:10 Africa/Kigali] Validating session on init
[28-Feb-2026 18:00:10 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:00:10 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:00:40 Africa/Kigali] Validating session on init
[28-Feb-2026 18:00:40 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:00:40 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:00:40 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 56
[28-Feb-2026 18:00:40 Africa/Kigali] Validating session on init
[28-Feb-2026 18:00:40 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:00:40 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:01:05 Africa/Kigali] Validating session on init
[28-Feb-2026 18:01:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:01:05 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:01:05 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 57
[28-Feb-2026 18:01:05 Africa/Kigali] Validating session on init
[28-Feb-2026 18:01:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:01:05 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:01:32 Africa/Kigali] Validating session on init
[28-Feb-2026 18:01:32 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:01:32 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:01:32 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 58
[28-Feb-2026 18:01:32 Africa/Kigali] Validating session on init
[28-Feb-2026 18:01:32 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:01:32 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:01:55 Africa/Kigali] Validating session on init
[28-Feb-2026 18:01:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:01:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:01:55 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 59
[28-Feb-2026 18:01:55 Africa/Kigali] Validating session on init
[28-Feb-2026 18:01:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:01:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:02:57 Africa/Kigali] Validating session on init
[28-Feb-2026 18:02:57 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:02:57 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:02:57 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 60
[28-Feb-2026 18:02:57 Africa/Kigali] Validating session on init
[28-Feb-2026 18:02:57 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:02:57 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:03:21 Africa/Kigali] Validating session on init
[28-Feb-2026 18:03:21 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:03:21 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:03:21 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 61
[28-Feb-2026 18:03:21 Africa/Kigali] Validating session on init
[28-Feb-2026 18:03:21 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:03:21 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:03:47 Africa/Kigali] Validating session on init
[28-Feb-2026 18:03:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:03:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:03:47 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 62
[28-Feb-2026 18:03:47 Africa/Kigali] Validating session on init
[28-Feb-2026 18:03:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:03:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:04:20 Africa/Kigali] Validating session on init
[28-Feb-2026 18:04:20 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:04:20 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:04:20 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 63
[28-Feb-2026 18:04:20 Africa/Kigali] Validating session on init
[28-Feb-2026 18:04:20 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:04:20 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:04:47 Africa/Kigali] Validating session on init
[28-Feb-2026 18:04:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:04:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:04:47 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 64
[28-Feb-2026 18:04:47 Africa/Kigali] Validating session on init
[28-Feb-2026 18:04:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:04:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:05:20 Africa/Kigali] Validating session on init
[28-Feb-2026 18:05:20 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:05:20 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:05:20 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 65
[28-Feb-2026 18:05:20 Africa/Kigali] Validating session on init
[28-Feb-2026 18:05:20 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:05:20 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:06:02 Africa/Kigali] Validating session on init
[28-Feb-2026 18:06:02 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:06:02 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:06:02 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 66
[28-Feb-2026 18:06:02 Africa/Kigali] Validating session on init
[28-Feb-2026 18:06:02 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:06:02 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:06:29 Africa/Kigali] Validating session on init
[28-Feb-2026 18:06:29 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:06:29 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:06:29 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 67
[28-Feb-2026 18:06:29 Africa/Kigali] Validating session on init
[28-Feb-2026 18:06:29 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:06:29 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:06:56 Africa/Kigali] Validating session on init
[28-Feb-2026 18:06:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:06:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:06:56 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 68
[28-Feb-2026 18:06:56 Africa/Kigali] Validating session on init
[28-Feb-2026 18:06:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:06:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:07:34 Africa/Kigali] Validating session on init
[28-Feb-2026 18:07:34 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:07:34 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:07:34 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 69
[28-Feb-2026 18:07:34 Africa/Kigali] Validating session on init
[28-Feb-2026 18:07:34 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:07:34 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:08:00 Africa/Kigali] Validating session on init
[28-Feb-2026 18:08:00 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:08:00 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:08:00 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 70
[28-Feb-2026 18:08:00 Africa/Kigali] Validating session on init
[28-Feb-2026 18:08:00 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:08:00 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:08:32 Africa/Kigali] Validating session on init
[28-Feb-2026 18:08:32 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:08:32 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:08:32 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 71
[28-Feb-2026 18:08:32 Africa/Kigali] Validating session on init
[28-Feb-2026 18:08:32 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:08:32 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:08:56 Africa/Kigali] Validating session on init
[28-Feb-2026 18:08:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:08:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:08:56 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 72
[28-Feb-2026 18:08:56 Africa/Kigali] Validating session on init
[28-Feb-2026 18:08:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:08:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:09:24 Africa/Kigali] Validating session on init
[28-Feb-2026 18:09:24 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:09:24 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:09:24 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 73
[28-Feb-2026 18:09:24 Africa/Kigali] Validating session on init
[28-Feb-2026 18:09:24 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:09:24 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:09:50 Africa/Kigali] Validating session on init
[28-Feb-2026 18:09:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:09:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:09:50 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 74
[28-Feb-2026 18:09:50 Africa/Kigali] Validating session on init
[28-Feb-2026 18:09:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:09:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:10:17 Africa/Kigali] Validating session on init
[28-Feb-2026 18:10:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:10:17 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:10:17 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 75
[28-Feb-2026 18:10:17 Africa/Kigali] Validating session on init
[28-Feb-2026 18:10:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:10:17 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:10:50 Africa/Kigali] Validating session on init
[28-Feb-2026 18:10:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:10:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:10:50 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 76
[28-Feb-2026 18:10:50 Africa/Kigali] Validating session on init
[28-Feb-2026 18:10:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:10:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:11:15 Africa/Kigali] Validating session on init
[28-Feb-2026 18:11:15 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:11:15 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:11:15 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 77
[28-Feb-2026 18:11:15 Africa/Kigali] Validating session on init
[28-Feb-2026 18:11:15 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:11:15 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:11:48 Africa/Kigali] Validating session on init
[28-Feb-2026 18:11:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:11:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:11:48 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 78
[28-Feb-2026 18:11:48 Africa/Kigali] Validating session on init
[28-Feb-2026 18:11:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:11:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:12:44 Africa/Kigali] Validating session on init
[28-Feb-2026 18:12:44 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:12:44 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:12:44 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 79
[28-Feb-2026 18:12:44 Africa/Kigali] Validating session on init
[28-Feb-2026 18:12:44 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:12:44 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:13:13 Africa/Kigali] Validating session on init
[28-Feb-2026 18:13:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:13:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:13:13 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 80
[28-Feb-2026 18:13:13 Africa/Kigali] Validating session on init
[28-Feb-2026 18:13:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:13:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:13:41 Africa/Kigali] Validating session on init
[28-Feb-2026 18:13:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:13:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:13:41 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 81
[28-Feb-2026 18:13:41 Africa/Kigali] Validating session on init
[28-Feb-2026 18:13:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:13:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:14:41 Africa/Kigali] Validating session on init
[28-Feb-2026 18:14:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:14:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:14:41 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 82
[28-Feb-2026 18:14:41 Africa/Kigali] Validating session on init
[28-Feb-2026 18:14:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:14:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:15:19 Africa/Kigali] Validating session on init
[28-Feb-2026 18:15:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:15:19 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:15:19 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 83
[28-Feb-2026 18:15:19 Africa/Kigali] Validating session on init
[28-Feb-2026 18:15:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:15:19 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:15:56 Africa/Kigali] Validating session on init
[28-Feb-2026 18:15:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:15:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:15:56 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 84
[28-Feb-2026 18:15:56 Africa/Kigali] Validating session on init
[28-Feb-2026 18:15:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:15:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:16:25 Africa/Kigali] Validating session on init
[28-Feb-2026 18:16:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:16:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:16:25 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 85
[28-Feb-2026 18:16:25 Africa/Kigali] Validating session on init
[28-Feb-2026 18:16:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:16:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:16:53 Africa/Kigali] Validating session on init
[28-Feb-2026 18:16:53 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:16:53 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:16:53 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 86
[28-Feb-2026 18:16:53 Africa/Kigali] Validating session on init
[28-Feb-2026 18:16:53 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:16:53 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:17:25 Africa/Kigali] Validating session on init
[28-Feb-2026 18:17:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:17:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:17:25 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 87
[28-Feb-2026 18:17:25 Africa/Kigali] Validating session on init
[28-Feb-2026 18:17:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:17:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:17:51 Africa/Kigali] Validating session on init
[28-Feb-2026 18:17:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:17:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:17:51 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 88
[28-Feb-2026 18:17:51 Africa/Kigali] Validating session on init
[28-Feb-2026 18:17:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:17:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:18:09 Africa/Kigali] Validating session on init
[28-Feb-2026 18:18:09 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:18:09 Africa/Kigali] Session validated successfully
[2026-02-28 18:18:09] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[28-Feb-2026 18:18:09 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[28-Feb-2026 18:18:10 Africa/Kigali] Validating session on init
[28-Feb-2026 18:18:10 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:18:10 Africa/Kigali] Session validated successfully
[2026-02-28 18:18:10] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:18:10 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:18:17 Africa/Kigali] Validating session on init
[28-Feb-2026 18:18:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:18:17 Africa/Kigali] Session validated successfully
[2026-02-28 18:18:17] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:18:17 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:18:22 Africa/Kigali] Validating session on init
[28-Feb-2026 18:18:22 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:18:22 Africa/Kigali] Session validated successfully
[2026-02-28 18:18:22] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:18:22 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:18:29 Africa/Kigali] Validating session on init
[28-Feb-2026 18:18:29 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:18:29 Africa/Kigali] Session validated successfully
[2026-02-28 18:18:29] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:18:29 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:18:31 Africa/Kigali] Validating session on init
[28-Feb-2026 18:18:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:18:31 Africa/Kigali] Session validated successfully
[2026-02-28 18:18:31] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:18:31 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:18:32 Africa/Kigali] Validating session on init
[28-Feb-2026 18:18:32 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:18:32 Africa/Kigali] Session validated successfully
[2026-02-28 18:18:32] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:18:32 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:18:38 Africa/Kigali] Validating session on init
[28-Feb-2026 18:18:38 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:18:38 Africa/Kigali] Session validated successfully
[2026-02-28 18:18:38] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:18:38 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:18:40 Africa/Kigali] Validating session on init
[28-Feb-2026 18:18:40 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:18:40 Africa/Kigali] Session validated successfully
[2026-02-28 18:18:40] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:18:40 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:18:42 Africa/Kigali] Validating session on init
[28-Feb-2026 18:18:42 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:18:42 Africa/Kigali] Session validated successfully
[2026-02-28 18:18:43] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:18:43 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:18:44 Africa/Kigali] Validating session on init
[28-Feb-2026 18:18:44 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:18:44 Africa/Kigali] Session validated successfully
[2026-02-28 18:18:44] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:18:44 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:18:46 Africa/Kigali] Validating session on init
[28-Feb-2026 18:18:46 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:18:46 Africa/Kigali] Session validated successfully
[2026-02-28 18:18:46] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:18:46 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:19:46 Africa/Kigali] Validating session on init
[28-Feb-2026 18:19:46 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:19:46 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:19:46 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 89
[28-Feb-2026 18:19:46 Africa/Kigali] Validating session on init
[28-Feb-2026 18:19:46 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:19:46 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:20:21 Africa/Kigali] Validating session on init
[28-Feb-2026 18:20:21 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:20:21 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:20:21 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 90
[28-Feb-2026 18:20:21 Africa/Kigali] Validating session on init
[28-Feb-2026 18:20:21 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:20:21 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:20:56 Africa/Kigali] Validating session on init
[28-Feb-2026 18:20:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:20:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:20:56 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 91
[28-Feb-2026 18:20:56 Africa/Kigali] Validating session on init
[28-Feb-2026 18:20:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:20:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:21:19 Africa/Kigali] Validating session on init
[28-Feb-2026 18:21:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:21:19 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:21:19 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 92
[28-Feb-2026 18:21:19 Africa/Kigali] Validating session on init
[28-Feb-2026 18:21:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:21:19 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:21:37 Africa/Kigali] Validating session on init
[28-Feb-2026 18:21:37 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:21:37 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:21:55 Africa/Kigali] Validating session on init
[28-Feb-2026 18:21:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:21:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:22:01 Africa/Kigali] Validating session on init
[28-Feb-2026 18:22:01 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:22:01 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:22:45 Africa/Kigali] Validating session on init
[28-Feb-2026 18:22:45 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:22:45 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:22:45 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 21
[28-Feb-2026 18:22:45 Africa/Kigali] Validating session on init
[28-Feb-2026 18:22:45 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:22:45 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:22:55 Africa/Kigali] Validating session on init
[28-Feb-2026 18:22:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:22:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:23:02 Africa/Kigali] Validating session on init
[28-Feb-2026 18:23:02 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:23:02 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:23:11 Africa/Kigali] Validating session on init
[28-Feb-2026 18:23:11 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:23:11 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:23:48 Africa/Kigali] Validating session on init
[28-Feb-2026 18:23:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:23:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:23:48 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 23
[28-Feb-2026 18:23:48 Africa/Kigali] Validating session on init
[28-Feb-2026 18:23:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:23:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:23:50 Africa/Kigali] Validating session on init
[28-Feb-2026 18:23:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:23:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:23:57 Africa/Kigali] Validating session on init
[28-Feb-2026 18:23:57 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:23:57 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:24:00 Africa/Kigali] Validating session on init
[28-Feb-2026 18:24:00 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:24:00 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:24:30 Africa/Kigali] Validating session on init
[28-Feb-2026 18:24:30 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:24:30 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:24:30 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 22
[28-Feb-2026 18:24:30 Africa/Kigali] Validating session on init
[28-Feb-2026 18:24:30 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:24:30 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:24:32 Africa/Kigali] Validating session on init
[28-Feb-2026 18:24:32 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:24:32 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:24:34 Africa/Kigali] Validating session on init
[28-Feb-2026 18:24:34 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:24:34 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:25:04 Africa/Kigali] Validating session on init
[28-Feb-2026 18:25:04 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:25:04 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:25:04 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 93
[28-Feb-2026 18:25:04 Africa/Kigali] Validating session on init
[28-Feb-2026 18:25:04 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:25:04 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:25:20 Africa/Kigali] Validating session on init
[28-Feb-2026 18:25:20 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:25:20 Africa/Kigali] Session validated successfully
[2026-02-28 18:25:20] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:25:20 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:25:25 Africa/Kigali] Validating session on init
[28-Feb-2026 18:25:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:25:25 Africa/Kigali] Session validated successfully
[2026-02-28 18:25:25] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:25:25 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:25:30 Africa/Kigali] Validating session on init
[28-Feb-2026 18:25:30 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:25:30 Africa/Kigali] Session validated successfully
[2026-02-28 18:25:30] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:25:30 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:26:10 Africa/Kigali] Validating session on init
[28-Feb-2026 18:26:10 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:26:10 Africa/Kigali] Session validated successfully
[2026-02-28 18:26:10] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:26:10 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:26:25 Africa/Kigali] Validating session on init
[28-Feb-2026 18:26:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:26:25 Africa/Kigali] Session validated successfully
[2026-02-28 18:26:25] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:26:25 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:26:39 Africa/Kigali] Validating session on init
[28-Feb-2026 18:26:39 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:26:39 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:26:43 Africa/Kigali] Validating session on init
[28-Feb-2026 18:26:43 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:26:43 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:26:45 Africa/Kigali] Validating session on init
[28-Feb-2026 18:26:45 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:26:45 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:27:15 Africa/Kigali] Validating session on init
[28-Feb-2026 18:27:15 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:27:15 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:27:15 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 94
[28-Feb-2026 18:27:15 Africa/Kigali] Validating session on init
[28-Feb-2026 18:27:15 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:27:15 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:27:47 Africa/Kigali] Validating session on init
[28-Feb-2026 18:27:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:27:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:27:47 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 95
[28-Feb-2026 18:27:47 Africa/Kigali] Validating session on init
[28-Feb-2026 18:27:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:27:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:28:12 Africa/Kigali] Validating session on init
[28-Feb-2026 18:28:12 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:28:12 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:28:12 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 96
[28-Feb-2026 18:28:12 Africa/Kigali] Validating session on init
[28-Feb-2026 18:28:12 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:28:12 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:28:37 Africa/Kigali] Validating session on init
[28-Feb-2026 18:28:37 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:28:37 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:28:37 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 97
[28-Feb-2026 18:28:37 Africa/Kigali] Validating session on init
[28-Feb-2026 18:28:37 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:28:37 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:29:13 Africa/Kigali] Validating session on init
[28-Feb-2026 18:29:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:29:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:29:13 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 98
[28-Feb-2026 18:29:13 Africa/Kigali] Validating session on init
[28-Feb-2026 18:29:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:29:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:29:36 Africa/Kigali] Validating session on init
[28-Feb-2026 18:29:36 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:29:36 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:29:36 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 99
[28-Feb-2026 18:29:36 Africa/Kigali] Validating session on init
[28-Feb-2026 18:29:36 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:29:36 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:29:59 Africa/Kigali] Validating session on init
[28-Feb-2026 18:29:59 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:29:59 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:29:59 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 100
[28-Feb-2026 18:29:59 Africa/Kigali] Validating session on init
[28-Feb-2026 18:29:59 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:29:59 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:30:28 Africa/Kigali] Validating session on init
[28-Feb-2026 18:30:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:30:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:30:28 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 101
[28-Feb-2026 18:30:28 Africa/Kigali] Validating session on init
[28-Feb-2026 18:30:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:30:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:30:59 Africa/Kigali] Validating session on init
[28-Feb-2026 18:30:59 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:30:59 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:30:59 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 102
[28-Feb-2026 18:30:59 Africa/Kigali] Validating session on init
[28-Feb-2026 18:30:59 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:30:59 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:31:28 Africa/Kigali] Validating session on init
[28-Feb-2026 18:31:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:31:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:31:28 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 103
[28-Feb-2026 18:31:28 Africa/Kigali] Validating session on init
[28-Feb-2026 18:31:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:31:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:31:50 Africa/Kigali] Validating session on init
[28-Feb-2026 18:31:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:31:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:31:50 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 104
[28-Feb-2026 18:31:50 Africa/Kigali] Validating session on init
[28-Feb-2026 18:31:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:31:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:32:10 Africa/Kigali] Validating session on init
[28-Feb-2026 18:32:10 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:32:10 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:32:10 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 105
[28-Feb-2026 18:32:10 Africa/Kigali] Validating session on init
[28-Feb-2026 18:32:10 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:32:10 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:32:35 Africa/Kigali] Validating session on init
[28-Feb-2026 18:32:35 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:32:35 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:32:44 Africa/Kigali] Validating session on init
[28-Feb-2026 18:32:44 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:32:44 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:32:56 Africa/Kigali] Validating session on init
[28-Feb-2026 18:32:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:32:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:33:04 Africa/Kigali] Validating session on init
[28-Feb-2026 18:33:04 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:33:04 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:33:04 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 97
[28-Feb-2026 18:33:04 Africa/Kigali] Validating session on init
[28-Feb-2026 18:33:04 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:33:04 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:33:07 Africa/Kigali] Validating session on init
[28-Feb-2026 18:33:07 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:33:07 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:33:09 Africa/Kigali] Validating session on init
[28-Feb-2026 18:33:09 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:33:09 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:33:44 Africa/Kigali] Validating session on init
[28-Feb-2026 18:33:44 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:33:44 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:33:44 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 106
[28-Feb-2026 18:33:44 Africa/Kigali] Validating session on init
[28-Feb-2026 18:33:44 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:33:44 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:34:12 Africa/Kigali] Validating session on init
[28-Feb-2026 18:34:12 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:34:12 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:34:12 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 107
[28-Feb-2026 18:34:12 Africa/Kigali] Validating session on init
[28-Feb-2026 18:34:12 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:34:12 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:34:35 Africa/Kigali] Validating session on init
[28-Feb-2026 18:34:35 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:34:35 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:34:35 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 108
[28-Feb-2026 18:34:35 Africa/Kigali] Validating session on init
[28-Feb-2026 18:34:35 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:34:35 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:34:57 Africa/Kigali] Validating session on init
[28-Feb-2026 18:34:57 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:34:57 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:34:57 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 109
[28-Feb-2026 18:34:57 Africa/Kigali] Validating session on init
[28-Feb-2026 18:34:57 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:34:57 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:35:25 Africa/Kigali] Validating session on init
[28-Feb-2026 18:35:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:35:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:35:25 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 110
[28-Feb-2026 18:35:25 Africa/Kigali] Validating session on init
[28-Feb-2026 18:35:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:35:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:35:51 Africa/Kigali] Validating session on init
[28-Feb-2026 18:35:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:35:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:35:51 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 111
[28-Feb-2026 18:35:51 Africa/Kigali] Validating session on init
[28-Feb-2026 18:35:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:35:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:36:24 Africa/Kigali] Validating session on init
[28-Feb-2026 18:36:24 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:36:24 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:36:24 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 112
[28-Feb-2026 18:36:24 Africa/Kigali] Validating session on init
[28-Feb-2026 18:36:24 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:36:24 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:36:52 Africa/Kigali] Validating session on init
[28-Feb-2026 18:36:52 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:36:52 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:36:52 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 113
[28-Feb-2026 18:36:52 Africa/Kigali] Validating session on init
[28-Feb-2026 18:36:52 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:36:52 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:37:15 Africa/Kigali] Validating session on init
[28-Feb-2026 18:37:15 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:37:15 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:37:15 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 114
[28-Feb-2026 18:37:15 Africa/Kigali] Validating session on init
[28-Feb-2026 18:37:15 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:37:15 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:37:49 Africa/Kigali] Validating session on init
[28-Feb-2026 18:37:49 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:37:49 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:37:49 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 115
[28-Feb-2026 18:37:49 Africa/Kigali] Validating session on init
[28-Feb-2026 18:37:49 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:37:49 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:38:16 Africa/Kigali] Validating session on init
[28-Feb-2026 18:38:16 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:38:16 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:38:16 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 116
[28-Feb-2026 18:38:16 Africa/Kigali] Validating session on init
[28-Feb-2026 18:38:16 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:38:16 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:38:39 Africa/Kigali] Validating session on init
[28-Feb-2026 18:38:39 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:38:39 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:38:39 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 117
[28-Feb-2026 18:38:39 Africa/Kigali] Validating session on init
[28-Feb-2026 18:38:39 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:38:39 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:39:03 Africa/Kigali] Validating session on init
[28-Feb-2026 18:39:03 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:39:03 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:39:03 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 118
[28-Feb-2026 18:39:03 Africa/Kigali] Validating session on init
[28-Feb-2026 18:39:03 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:39:03 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:39:27 Africa/Kigali] Validating session on init
[28-Feb-2026 18:39:27 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:39:27 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:39:27 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 119
[28-Feb-2026 18:39:27 Africa/Kigali] Validating session on init
[28-Feb-2026 18:39:27 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:39:27 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:39:34 Africa/Kigali] Validating session on init
[28-Feb-2026 18:39:34 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:39:34 Africa/Kigali] Session validated successfully
[2026-02-28 18:39:34] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:39:34 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:39:42 Africa/Kigali] Validating session on init
[28-Feb-2026 18:39:42 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:39:42 Africa/Kigali] Session validated successfully
[2026-02-28 18:39:42] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:39:42 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:42:19 Africa/Kigali] Validating session on init
[28-Feb-2026 18:42:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:42:19 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:42:19 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 120
[28-Feb-2026 18:42:19 Africa/Kigali] Validating session on init
[28-Feb-2026 18:42:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:42:19 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:42:57 Africa/Kigali] Validating session on init
[28-Feb-2026 18:42:57 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:42:57 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:42:57 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 121
[28-Feb-2026 18:42:57 Africa/Kigali] Validating session on init
[28-Feb-2026 18:42:57 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:42:57 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:43:35 Africa/Kigali] Validating session on init
[28-Feb-2026 18:43:35 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:43:35 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:43:35 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 122
[28-Feb-2026 18:43:35 Africa/Kigali] Validating session on init
[28-Feb-2026 18:43:35 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:43:35 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:44:13 Africa/Kigali] Validating session on init
[28-Feb-2026 18:44:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:44:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:44:13 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 123
[28-Feb-2026 18:44:13 Africa/Kigali] Validating session on init
[28-Feb-2026 18:44:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:44:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:44:44 Africa/Kigali] Validating session on init
[28-Feb-2026 18:44:44 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:44:44 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:44:44 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 124
[28-Feb-2026 18:44:44 Africa/Kigali] Validating session on init
[28-Feb-2026 18:44:44 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:44:44 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:45:13 Africa/Kigali] Validating session on init
[28-Feb-2026 18:45:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:45:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:45:13 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 125
[28-Feb-2026 18:45:13 Africa/Kigali] Validating session on init
[28-Feb-2026 18:45:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:45:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:45:45 Africa/Kigali] Validating session on init
[28-Feb-2026 18:45:45 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:45:45 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:45:45 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 126
[28-Feb-2026 18:45:45 Africa/Kigali] Validating session on init
[28-Feb-2026 18:45:45 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:45:45 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:47:03 Africa/Kigali] Validating session on init
[28-Feb-2026 18:47:03 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:47:03 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:47:03 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 127
[28-Feb-2026 18:47:03 Africa/Kigali] Validating session on init
[28-Feb-2026 18:47:03 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:47:03 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:47:28 Africa/Kigali] Validating session on init
[28-Feb-2026 18:47:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:47:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:47:28 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 128
[28-Feb-2026 18:47:28 Africa/Kigali] Validating session on init
[28-Feb-2026 18:47:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:47:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:48:30 Africa/Kigali] Validating session on init
[28-Feb-2026 18:48:30 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:48:30 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:48:30 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 129
[28-Feb-2026 18:48:30 Africa/Kigali] Validating session on init
[28-Feb-2026 18:48:30 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:48:30 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:48:55 Africa/Kigali] Validating session on init
[28-Feb-2026 18:48:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:48:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:48:55 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 130
[28-Feb-2026 18:48:55 Africa/Kigali] Validating session on init
[28-Feb-2026 18:48:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:48:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:49:21 Africa/Kigali] Validating session on init
[28-Feb-2026 18:49:21 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:49:21 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:49:21 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 131
[28-Feb-2026 18:49:21 Africa/Kigali] Validating session on init
[28-Feb-2026 18:49:21 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:49:21 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:49:47 Africa/Kigali] Validating session on init
[28-Feb-2026 18:49:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:49:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:49:47 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 132
[28-Feb-2026 18:49:47 Africa/Kigali] Validating session on init
[28-Feb-2026 18:49:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:49:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:50:19 Africa/Kigali] Validating session on init
[28-Feb-2026 18:50:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:50:19 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:50:19 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 133
[28-Feb-2026 18:50:19 Africa/Kigali] Validating session on init
[28-Feb-2026 18:50:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:50:19 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:50:47 Africa/Kigali] Validating session on init
[28-Feb-2026 18:50:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:50:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:50:47 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 134
[28-Feb-2026 18:50:47 Africa/Kigali] Validating session on init
[28-Feb-2026 18:50:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:50:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:51:14 Africa/Kigali] Validating session on init
[28-Feb-2026 18:51:14 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:51:14 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:51:14 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 135
[28-Feb-2026 18:51:14 Africa/Kigali] Validating session on init
[28-Feb-2026 18:51:14 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:51:14 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:51:51 Africa/Kigali] Validating session on init
[28-Feb-2026 18:51:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:51:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:51:51 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 136
[28-Feb-2026 18:51:51 Africa/Kigali] Validating session on init
[28-Feb-2026 18:51:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:51:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:52:21 Africa/Kigali] Validating session on init
[28-Feb-2026 18:52:21 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:52:21 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:52:21 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 137
[28-Feb-2026 18:52:21 Africa/Kigali] Validating session on init
[28-Feb-2026 18:52:21 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:52:21 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:52:32 Africa/Kigali] Validating session on init
[28-Feb-2026 18:52:32 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:52:32 Africa/Kigali] Session validated successfully
[2026-02-28 18:52:32] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:52:32 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:52:35 Africa/Kigali] Validating session on init
[28-Feb-2026 18:52:35 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:52:35 Africa/Kigali] Session validated successfully
[2026-02-28 18:52:35] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:52:35 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:52:54 Africa/Kigali] Validating session on init
[28-Feb-2026 18:52:54 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:52:54 Africa/Kigali] Session validated successfully
[2026-02-28 18:52:54] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 18:52:54 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 18:53:35 Africa/Kigali] Validating session on init
[28-Feb-2026 18:53:35 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:53:35 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:53:35 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 138
[28-Feb-2026 18:53:35 Africa/Kigali] Validating session on init
[28-Feb-2026 18:53:35 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:53:35 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:54:03 Africa/Kigali] Validating session on init
[28-Feb-2026 18:54:03 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:54:03 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:54:03 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 139
[28-Feb-2026 18:54:03 Africa/Kigali] Validating session on init
[28-Feb-2026 18:54:03 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:54:03 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:54:28 Africa/Kigali] Validating session on init
[28-Feb-2026 18:54:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:54:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:54:28 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 140
[28-Feb-2026 18:54:28 Africa/Kigali] Validating session on init
[28-Feb-2026 18:54:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:54:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:54:55 Africa/Kigali] Validating session on init
[28-Feb-2026 18:54:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:54:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:54:55 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 141
[28-Feb-2026 18:54:55 Africa/Kigali] Validating session on init
[28-Feb-2026 18:54:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:54:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:55:22 Africa/Kigali] Validating session on init
[28-Feb-2026 18:55:22 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:55:22 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:55:22 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 142
[28-Feb-2026 18:55:22 Africa/Kigali] Validating session on init
[28-Feb-2026 18:55:22 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:55:22 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:55:47 Africa/Kigali] Validating session on init
[28-Feb-2026 18:55:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:55:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:55:47 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 143
[28-Feb-2026 18:55:47 Africa/Kigali] Validating session on init
[28-Feb-2026 18:55:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:55:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:56:13 Africa/Kigali] Validating session on init
[28-Feb-2026 18:56:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:56:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:56:13 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 144
[28-Feb-2026 18:56:13 Africa/Kigali] Validating session on init
[28-Feb-2026 18:56:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:56:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:57:34 Africa/Kigali] Validating session on init
[28-Feb-2026 18:57:34 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:57:34 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:57:34 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 145
[28-Feb-2026 18:57:34 Africa/Kigali] Validating session on init
[28-Feb-2026 18:57:34 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:57:34 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:58:01 Africa/Kigali] Validating session on init
[28-Feb-2026 18:58:01 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:58:01 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:58:01 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 146
[28-Feb-2026 18:58:01 Africa/Kigali] Validating session on init
[28-Feb-2026 18:58:01 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:58:01 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:58:27 Africa/Kigali] Validating session on init
[28-Feb-2026 18:58:27 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:58:27 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:58:27 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 147
[28-Feb-2026 18:58:27 Africa/Kigali] Validating session on init
[28-Feb-2026 18:58:27 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:58:27 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:58:54 Africa/Kigali] Validating session on init
[28-Feb-2026 18:58:54 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:58:54 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:58:54 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 148
[28-Feb-2026 18:58:54 Africa/Kigali] Validating session on init
[28-Feb-2026 18:58:54 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:58:54 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:59:15 Africa/Kigali] Validating session on init
[28-Feb-2026 18:59:15 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:59:15 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:59:15 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 149
[28-Feb-2026 18:59:15 Africa/Kigali] Validating session on init
[28-Feb-2026 18:59:15 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:59:15 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:59:44 Africa/Kigali] Validating session on init
[28-Feb-2026 18:59:44 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:59:44 Africa/Kigali] Session validated successfully
[28-Feb-2026 18:59:44 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 150
[28-Feb-2026 18:59:44 Africa/Kigali] Validating session on init
[28-Feb-2026 18:59:44 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 18:59:44 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:00:56 Africa/Kigali] Validating session on init
[28-Feb-2026 19:00:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:00:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:00:56 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 151
[28-Feb-2026 19:00:56 Africa/Kigali] Validating session on init
[28-Feb-2026 19:00:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:00:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:01:25 Africa/Kigali] Validating session on init
[28-Feb-2026 19:01:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:01:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:01:25 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 152
[28-Feb-2026 19:01:25 Africa/Kigali] Validating session on init
[28-Feb-2026 19:01:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:01:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:01:51 Africa/Kigali] Validating session on init
[28-Feb-2026 19:01:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:01:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:01:51 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 153
[28-Feb-2026 19:01:51 Africa/Kigali] Validating session on init
[28-Feb-2026 19:01:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:01:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:02:17 Africa/Kigali] Validating session on init
[28-Feb-2026 19:02:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:02:17 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:02:17 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 154
[28-Feb-2026 19:02:17 Africa/Kigali] Validating session on init
[28-Feb-2026 19:02:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:02:17 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:02:41 Africa/Kigali] Validating session on init
[28-Feb-2026 19:02:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:02:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:02:41 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 155
[28-Feb-2026 19:02:41 Africa/Kigali] Validating session on init
[28-Feb-2026 19:02:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:02:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:03:19 Africa/Kigali] Validating session on init
[28-Feb-2026 19:03:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:03:19 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:03:19 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 156
[28-Feb-2026 19:03:19 Africa/Kigali] Validating session on init
[28-Feb-2026 19:03:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:03:19 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:03:47 Africa/Kigali] Validating session on init
[28-Feb-2026 19:03:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:03:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:03:47 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 157
[28-Feb-2026 19:03:47 Africa/Kigali] Validating session on init
[28-Feb-2026 19:03:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:03:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:04:13 Africa/Kigali] Validating session on init
[28-Feb-2026 19:04:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:04:13 Africa/Kigali] Session validated successfully
[2026-02-28 19:04:13] [ERROR] Insert failed: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'product_name' at row 1 SQL: INSERT INTO pos_products (product_code, barcode, product_name, description, category_id, outlet_id, unit_price, cost_price, tax_id, tax_inclusive, stock_item, current_stock, min_stock, max_stock, unit_of_measure, track_serial, is_active) VALUES (:product_code, :barcode, :product_name, :description, :category_id, :outlet_id, :unit_price, :cost_price, :tax_id, :tax_inclusive, :stock_item, :current_stock, :min_stock, :max_stock, :unit_of_measure, :track_serial, :is_active)
[2026-02-28 19:04:13] [ERROR] Product creation failed: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'product_name' at row 1
[28-Feb-2026 19:04:55 Africa/Kigali] Validating session on init
[28-Feb-2026 19:04:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:04:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:04:55 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 158
[28-Feb-2026 19:04:55 Africa/Kigali] Validating session on init
[28-Feb-2026 19:04:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:04:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:06:17 Africa/Kigali] Validating session on init
[28-Feb-2026 19:06:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:06:17 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:06:17 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_products | Record: 159
[28-Feb-2026 19:06:17 Africa/Kigali] Validating session on init
[28-Feb-2026 19:06:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:06:17 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:06:23 Africa/Kigali] Validating session on init
[28-Feb-2026 19:06:23 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:06:23 Africa/Kigali] Session validated successfully
[2026-02-28 19:06:23] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:06:23 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:06:29 Africa/Kigali] Validating session on init
[28-Feb-2026 19:06:29 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:06:29 Africa/Kigali] Session validated successfully
[2026-02-28 19:06:29] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:06:29 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:06:30 Africa/Kigali] Validating session on init
[28-Feb-2026 19:06:30 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:06:30 Africa/Kigali] Session validated successfully
[2026-02-28 19:06:30] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:06:30 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:06:40 Africa/Kigali] Validating session on init
[28-Feb-2026 19:06:40 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:06:40 Africa/Kigali] Session validated successfully
[2026-02-28 19:06:40] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[28-Feb-2026 19:06:40 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[28-Feb-2026 19:06:43 Africa/Kigali] Validating session on init
[28-Feb-2026 19:06:43 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:06:43 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:06:52 Africa/Kigali] Validating session on init
[28-Feb-2026 19:06:52 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:06:52 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:06:56 Africa/Kigali] Validating session on init
[28-Feb-2026 19:06:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:06:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:07:05 Africa/Kigali] Validating session on init
[28-Feb-2026 19:07:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:07:05 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:07:12 Africa/Kigali] Validating session on init
[28-Feb-2026 19:07:12 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:07:12 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:07:25 Africa/Kigali] Validating session on init
[28-Feb-2026 19:07:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:07:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:07:31 Africa/Kigali] Validating session on init
[28-Feb-2026 19:07:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:07:31 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:07:31 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 24
[28-Feb-2026 19:07:31 Africa/Kigali] Validating session on init
[28-Feb-2026 19:07:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:07:31 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:07:33 Africa/Kigali] Validating session on init
[28-Feb-2026 19:07:33 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:07:33 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:07:39 Africa/Kigali] Validating session on init
[28-Feb-2026 19:07:39 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:07:39 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:07:48 Africa/Kigali] Validating session on init
[28-Feb-2026 19:07:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:07:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:07:52 Africa/Kigali] Validating session on init
[28-Feb-2026 19:07:52 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:07:52 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:07:52 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 18
[28-Feb-2026 19:07:52 Africa/Kigali] Validating session on init
[28-Feb-2026 19:07:52 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:07:52 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:07:54 Africa/Kigali] Validating session on init
[28-Feb-2026 19:07:54 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:07:54 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:07:59 Africa/Kigali] Validating session on init
[28-Feb-2026 19:07:59 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:07:59 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:08:07 Africa/Kigali] Validating session on init
[28-Feb-2026 19:08:07 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:08:07 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:08:18 Africa/Kigali] Validating session on init
[28-Feb-2026 19:08:18 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:08:18 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:08:18 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 19
[28-Feb-2026 19:08:18 Africa/Kigali] Validating session on init
[28-Feb-2026 19:08:18 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:08:18 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:08:26 Africa/Kigali] Validating session on init
[28-Feb-2026 19:08:26 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:08:26 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:08:34 Africa/Kigali] Validating session on init
[28-Feb-2026 19:08:34 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:08:34 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:08:43 Africa/Kigali] Validating session on init
[28-Feb-2026 19:08:43 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:08:43 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:08:47 Africa/Kigali] Validating session on init
[28-Feb-2026 19:08:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:08:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:08:47 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 17
[28-Feb-2026 19:08:47 Africa/Kigali] Validating session on init
[28-Feb-2026 19:08:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:08:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:08:49 Africa/Kigali] Validating session on init
[28-Feb-2026 19:08:49 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:08:49 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:08:54 Africa/Kigali] Validating session on init
[28-Feb-2026 19:08:54 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:08:54 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:08:59 Africa/Kigali] Validating session on init
[28-Feb-2026 19:08:59 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:08:59 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:09:03 Africa/Kigali] Validating session on init
[28-Feb-2026 19:09:03 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:09:03 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:09:03 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 20
[28-Feb-2026 19:09:03 Africa/Kigali] Validating session on init
[28-Feb-2026 19:09:03 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:09:03 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:09:04 Africa/Kigali] Validating session on init
[28-Feb-2026 19:09:04 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:09:04 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:09:27 Africa/Kigali] Validating session on init
[28-Feb-2026 19:09:27 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:09:27 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:09:59 Africa/Kigali] Validating session on init
[28-Feb-2026 19:09:59 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:09:59 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:05 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:05 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:05 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 16
[28-Feb-2026 19:10:05 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:05 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:07 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:07 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:07 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:14 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:14 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:14 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:19 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:19 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:23 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:23 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:23 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:23 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 15
[28-Feb-2026 19:10:23 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:23 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:23 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:25 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:33 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:33 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:33 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:44 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:44 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:44 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:47 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:47 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 14
[28-Feb-2026 19:10:47 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:50 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:50 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:50 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:54 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:54 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:54 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:54 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 14
[28-Feb-2026 19:10:54 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:54 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:54 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:10:58 Africa/Kigali] Validating session on init
[28-Feb-2026 19:10:58 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:10:58 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:11:05 Africa/Kigali] Validating session on init
[28-Feb-2026 19:11:05 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:11:05 Africa/Kigali] Session validated successfully
[2026-02-28 19:11:05] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:11:05 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:11:10 Africa/Kigali] Validating session on init
[28-Feb-2026 19:11:10 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:11:10 Africa/Kigali] Session validated successfully
[2026-02-28 19:11:10] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:11:10 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:11:17 Africa/Kigali] Validating session on init
[28-Feb-2026 19:11:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:11:17 Africa/Kigali] Session validated successfully
[2026-02-28 19:11:17] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:11:17 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:11:28 Africa/Kigali] Validating session on init
[28-Feb-2026 19:11:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:11:28 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:11:41 Africa/Kigali] Validating session on init
[28-Feb-2026 19:11:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:11:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:11:47 Africa/Kigali] Validating session on init
[28-Feb-2026 19:11:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:11:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:11:47 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 2
[28-Feb-2026 19:11:47 Africa/Kigali] Validating session on init
[28-Feb-2026 19:11:47 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:11:47 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:11:48 Africa/Kigali] Validating session on init
[28-Feb-2026 19:11:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:11:48 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:11:56 Africa/Kigali] Validating session on init
[28-Feb-2026 19:11:56 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:11:56 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:07 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:07 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:07 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:12 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:12 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:12 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:12 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 1
[28-Feb-2026 19:12:12 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:12 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:12 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:14 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:14 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:14 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:20 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:20 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:20 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:25 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:30 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:30 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:30 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:30 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 5
[28-Feb-2026 19:12:30 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:30 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:30 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:33 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:33 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:33 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:36 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:36 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:36 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:41 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:46 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:46 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:46 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:46 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 3
[28-Feb-2026 19:12:46 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:46 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:46 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:12:51 Africa/Kigali] Validating session on init
[28-Feb-2026 19:12:51 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:12:51 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:13:00 Africa/Kigali] Validating session on init
[28-Feb-2026 19:13:00 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:13:00 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:13:12 Africa/Kigali] Validating session on init
[28-Feb-2026 19:13:12 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:13:12 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:13:16 Africa/Kigali] Validating session on init
[28-Feb-2026 19:13:16 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:13:16 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:13:16 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 4
[28-Feb-2026 19:13:16 Africa/Kigali] Validating session on init
[28-Feb-2026 19:13:16 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:13:16 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:13:18 Africa/Kigali] Validating session on init
[28-Feb-2026 19:13:18 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:13:18 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:13:20 Africa/Kigali] Validating session on init
[28-Feb-2026 19:13:20 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:13:20 Africa/Kigali] Session validated successfully
[2026-02-28 19:13:20] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:13:20 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:13:22 Africa/Kigali] Validating session on init
[28-Feb-2026 19:13:22 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:13:22 Africa/Kigali] Session validated successfully
[2026-02-28 19:13:22] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:13:22 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:13:28 Africa/Kigali] Validating session on init
[28-Feb-2026 19:13:28 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:13:28 Africa/Kigali] Session validated successfully
[2026-02-28 19:13:28] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:13:28 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:13:55 Africa/Kigali] Validating session on init
[28-Feb-2026 19:13:55 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:13:55 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:13:59 Africa/Kigali] Validating session on init
[28-Feb-2026 19:13:59 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:13:59 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:04 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:04 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:04 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:04 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 7
[28-Feb-2026 19:14:04 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:04 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:04 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:06 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:06 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:06 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:10 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:10 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:10 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:13 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:13 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:17 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:17 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:22 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:22 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:22 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:22 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 8
[28-Feb-2026 19:14:22 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:22 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:22 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:23 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:23 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:23 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:27 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:27 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:27 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:33 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:33 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:33 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:38 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:38 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:38 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:38 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 6
[28-Feb-2026 19:14:38 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:38 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:38 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:40 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:40 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:40 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:14:45 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:45 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:45 Africa/Kigali] Session validated successfully
[2026-02-28 19:14:45] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:14:45 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:14:46 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:46 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:46 Africa/Kigali] Session validated successfully
[2026-02-28 19:14:46] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:14:46 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:14:48 Africa/Kigali] Validating session on init
[28-Feb-2026 19:14:48 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:14:48 Africa/Kigali] Session validated successfully
[2026-02-28 19:14:48] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:14:48 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:15:23 Africa/Kigali] Validating session on init
[28-Feb-2026 19:15:23 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:15:23 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:15:38 Africa/Kigali] Validating session on init
[28-Feb-2026 19:15:38 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:15:38 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:15:41 Africa/Kigali] Validating session on init
[28-Feb-2026 19:15:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:15:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:15:49 Africa/Kigali] Validating session on init
[28-Feb-2026 19:15:49 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:15:49 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:15:53 Africa/Kigali] Validating session on init
[28-Feb-2026 19:15:53 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:15:53 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:15:58 Africa/Kigali] Validating session on init
[28-Feb-2026 19:15:58 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:15:58 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:16:03 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:03 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:03 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:16:03 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 12
[28-Feb-2026 19:16:03 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:03 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:03 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:16:09 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:09 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:09 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:16:09 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 13
[28-Feb-2026 19:16:09 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:09 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:09 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:16:17 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:17 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:16:17 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 9
[28-Feb-2026 19:16:17 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:17 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:17 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:16:24 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:24 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:24 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:16:24 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 10
[28-Feb-2026 19:16:24 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:24 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:24 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:16:31 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:31 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:16:31 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 11
[28-Feb-2026 19:16:31 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:31 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:16:43 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:43 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:43 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:16:54 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:54 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:54 Africa/Kigali] Session validated successfully
[2026-02-28 19:16:54] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:16:54 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:16:57 Africa/Kigali] Validating session on init
[28-Feb-2026 19:16:57 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:16:57 Africa/Kigali] Session validated successfully
[2026-02-28 19:16:57] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:16:57 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:17:07 Africa/Kigali] Validating session on init
[28-Feb-2026 19:17:07 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:17:07 Africa/Kigali] Session validated successfully
[2026-02-28 19:17:07] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:17:07 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:17:10 Africa/Kigali] Validating session on init
[28-Feb-2026 19:17:10 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:17:10 Africa/Kigali] Session validated successfully
[2026-02-28 19:17:10] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:17:10 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:17:13 Africa/Kigali] Validating session on init
[28-Feb-2026 19:17:13 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:17:13 Africa/Kigali] Session validated successfully
[2026-02-28 19:17:13] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:17:13 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:17:15 Africa/Kigali] Validating session on init
[28-Feb-2026 19:17:15 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:17:15 Africa/Kigali] Session validated successfully
[2026-02-28 19:17:15] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:17:15 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:17:19 Africa/Kigali] Validating session on init
[28-Feb-2026 19:17:19 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:17:19 Africa/Kigali] Session validated successfully
[2026-02-28 19:17:19] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:17:19 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:17:22 Africa/Kigali] Validating session on init
[28-Feb-2026 19:17:22 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:17:22 Africa/Kigali] Session validated successfully
[2026-02-28 19:17:22] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:17:22 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:17:29 Africa/Kigali] Validating session on init
[28-Feb-2026 19:17:29 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:17:29 Africa/Kigali] Session validated successfully
[2026-02-28 19:17:29] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:17:29 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:17:36 Africa/Kigali] Validating session on init
[28-Feb-2026 19:17:36 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:17:36 Africa/Kigali] Session validated successfully
[2026-02-28 19:17:36] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:17:36 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:17:40 Africa/Kigali] Validating session on init
[28-Feb-2026 19:17:40 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:17:40 Africa/Kigali] Session validated successfully
[2026-02-28 19:17:40] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:17:40 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:17:42 Africa/Kigali] Validating session on init
[28-Feb-2026 19:17:42 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:17:42 Africa/Kigali] Session validated successfully
[2026-02-28 19:17:42] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:17:42 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:18:12 Africa/Kigali] Validating session on init
[28-Feb-2026 19:18:12 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:18:12 Africa/Kigali] Session validated successfully
[2026-02-28 19:18:12] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[28-Feb-2026 19:18:12 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[28-Feb-2026 19:18:15 Africa/Kigali] Validating session on init
[28-Feb-2026 19:18:15 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:18:15 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:18:36 Africa/Kigali] Validating session on init
[28-Feb-2026 19:18:36 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:18:36 Africa/Kigali] Session validated successfully
[2026-02-28 19:18:36] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:18:36 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:20:43 Africa/Kigali] Validating session on init
[28-Feb-2026 19:20:43 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:20:43 Africa/Kigali] Session validated successfully
[2026-02-28 19:20:43] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:20:43 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:21:32 Africa/Kigali] Validating session on init
[28-Feb-2026 19:43:24 Africa/Kigali] Validating session on init
[28-Feb-2026 19:43:24 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:43:24 Africa/Kigali] Session validated successfully
[2026-02-28 19:43:24] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[28-Feb-2026 19:43:24 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[28-Feb-2026 19:43:25 Africa/Kigali] Validating session on init
[28-Feb-2026 19:43:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:43:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:43:25 Africa/Kigali] Revenue Stats - Total: 15, Revenue: 662888.6, Items: 561
[28-Feb-2026 19:43:41 Africa/Kigali] Validating session on init
[28-Feb-2026 19:43:41 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:43:41 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:43:41 Africa/Kigali] Daily Sales Report - Date: 2026-02-28, Outlet ID: All
[28-Feb-2026 19:43:41 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[28-Feb-2026 19:43:41 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[28-Feb-2026 19:43:41 Africa/Kigali] Found 1 transactions
[28-Feb-2026 19:43:41 Africa/Kigali] Report Summary - Transactions: 1, Total Sales: 660800
[28-Feb-2026 19:43:53 Africa/Kigali] Validating session on init
[28-Feb-2026 19:43:53 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:43:53 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:43:53 Africa/Kigali] Daily Sales Report - Date: 2026-02-26, Outlet ID: All
[28-Feb-2026 19:43:53 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[28-Feb-2026 19:43:53 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[28-Feb-2026 19:43:53 Africa/Kigali] Found 11 transactions
[28-Feb-2026 19:43:53 Africa/Kigali] Report Summary - Transactions: 11, Total Sales: 2050.25
[28-Feb-2026 19:44:20 Africa/Kigali] Validating session on init
[28-Feb-2026 19:44:20 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:44:20 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:44:20 Africa/Kigali] Daily Sales Report - Date: 2026-02-26, Outlet ID: All
[28-Feb-2026 19:44:20 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[28-Feb-2026 19:44:20 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[28-Feb-2026 19:44:20 Africa/Kigali] Found 11 transactions
[28-Feb-2026 19:44:20 Africa/Kigali] Report Summary - Transactions: 11, Total Sales: 2050.25
[28-Feb-2026 19:44:52 Africa/Kigali] Validating session on init
[28-Feb-2026 19:44:52 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:44:52 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:44:52 Africa/Kigali] Daily Sales Report - Date: 2026-02-26, Outlet ID: All
[28-Feb-2026 19:44:52 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[28-Feb-2026 19:44:52 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[28-Feb-2026 19:44:52 Africa/Kigali] Found 11 transactions
[28-Feb-2026 19:44:52 Africa/Kigali] Report Summary - Transactions: 11, Total Sales: 2050.25
[28-Feb-2026 19:46:58 Africa/Kigali] Validating session on init
[28-Feb-2026 19:46:58 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:46:58 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:46:58 Africa/Kigali] Daily Sales Report - Date: 2026-02-28, Outlet ID: All
[28-Feb-2026 19:46:58 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[28-Feb-2026 19:46:58 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[28-Feb-2026 19:46:58 Africa/Kigali] Found 1 transactions
[28-Feb-2026 19:46:58 Africa/Kigali] Report Summary - Transactions: 1, Total Sales: 660800
[28-Feb-2026 19:47:07 Africa/Kigali] Validating session on init
[28-Feb-2026 19:47:07 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:47:07 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:47:07 Africa/Kigali] Daily Sales Report - Date: 2026-02-28, Outlet ID: All
[28-Feb-2026 19:47:07 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[28-Feb-2026 19:47:07 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[28-Feb-2026 19:47:07 Africa/Kigali] Found 1 transactions
[28-Feb-2026 19:47:07 Africa/Kigali] Report Summary - Transactions: 1, Total Sales: 660800
[28-Feb-2026 19:47:10 Africa/Kigali] Validating session on init
[28-Feb-2026 19:47:10 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:47:10 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:47:24 Africa/Kigali] Validating session on init
[28-Feb-2026 19:47:24 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:47:24 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:47:31 Africa/Kigali] Validating session on init
[28-Feb-2026 19:47:31 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:47:31 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:47:44 Africa/Kigali] Validating session on init
[28-Feb-2026 19:48:04 Africa/Kigali] Validating session on init
[28-Feb-2026 19:48:14 Africa/Kigali] Validating session on init
[28-Feb-2026 19:48:15 Africa/Kigali] Validating session on init
[28-Feb-2026 19:48:15 Africa/Kigali] Validating session on init
[28-Feb-2026 19:49:01 Africa/Kigali] Validating session on init
[28-Feb-2026 19:49:16 Africa/Kigali] Validating session on init
[28-Feb-2026 19:49:16 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:49:16 Africa/Kigali] Session validated successfully
[2026-02-28 19:49:16] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[28-Feb-2026 19:49:16 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[28-Feb-2026 19:49:22 Africa/Kigali] Validating session on init
[28-Feb-2026 19:49:22 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:49:22 Africa/Kigali] Session validated successfully
[2026-02-28 19:49:22] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[28-Feb-2026 19:49:22 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[28-Feb-2026 19:49:25 Africa/Kigali] Validating session on init
[28-Feb-2026 19:49:25 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:49:25 Africa/Kigali] Session validated successfully
[28-Feb-2026 19:49:25 Africa/Kigali] Revenue Stats - Total: 15, Revenue: 662888.6, Items: 561
[28-Feb-2026 19:49:36 Africa/Kigali] Validating session on init
[28-Feb-2026 19:49:36 Africa/Kigali] require_auth called - Checking session
[28-Feb-2026 19:49:36 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:35:16 Africa/Kigali] Login attempt - Username: superadmin
[02-Mar-2026 08:35:16 Africa/Kigali] User found: Yes
[02-Mar-2026 08:35:17 Africa/Kigali] Login successful for user: superadmin
[02-Mar-2026 08:35:17 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[02-Mar-2026 08:35:17 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-03-02 08:35:17] [INFO] Successful login for user: superadmin
[02-Mar-2026 08:35:17 Africa/Kigali] Validating session on init
[02-Mar-2026 08:35:17 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:35:17 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:35:28 Africa/Kigali] Validating session on init
[02-Mar-2026 08:35:28 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:35:28 Africa/Kigali] Session validated successfully
[2026-03-02 08:35:28] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[02-Mar-2026 08:35:28 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[02-Mar-2026 08:35:30 Africa/Kigali] Validating session on init
[02-Mar-2026 08:35:30 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:35:30 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:35:30 Africa/Kigali] Revenue Stats - Total: 15, Revenue: 662888.6, Items: 561
[02-Mar-2026 08:35:37 Africa/Kigali] Validating session on init
[02-Mar-2026 08:35:37 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:35:37 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:35:37 Africa/Kigali] Daily Sales Report - Date: 2026-03-02, Outlet ID: All
[02-Mar-2026 08:35:37 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[02-Mar-2026 08:35:37 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[02-Mar-2026 08:35:37 Africa/Kigali] Found 0 transactions
[02-Mar-2026 08:35:37 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[02-Mar-2026 08:43:16 Africa/Kigali] Validating session on init
[02-Mar-2026 08:43:16 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:43:16 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:43:16 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:43:16 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:43:16 Africa/Kigali] Product Sales Report - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 08:43:16 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 08:43:16 Africa/Kigali] Product SQL: 
            SELECT 
                p.product_id, 
                p.product_code, 
                p.product_name, 
                p.unit_price,
                c.category_name,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_products p
            JOIN pos_categories c ON p.category_id = c.category_id
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE p.is_active = 1
            GROUP BY p.product_id
            ORDER BY total_quantity DESC
[02-Mar-2026 08:43:16 Africa/Kigali] Category SQL: 
            SELECT 
                c.category_id, c.category_name,
                COUNT(DISTINCT p.product_id) as product_count,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_categories c
            LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE c.is_active = 1
            GROUP BY c.category_id
            ORDER BY total_revenue DESC
[02-Mar-2026 08:43:16 Africa/Kigali] Report generated - Products: 138, Categories: 14
[02-Mar-2026 08:44:32 Africa/Kigali] Validating session on init
[02-Mar-2026 08:44:32 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:44:32 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:44:32 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:44:32 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:44:32 Africa/Kigali] Product Sales Report - From: 2026-02-24, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 08:44:32 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 08:44:32 Africa/Kigali] Product SQL: 
            SELECT 
                p.product_id, 
                p.product_code, 
                p.product_name, 
                p.unit_price,
                c.category_name,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_products p
            JOIN pos_categories c ON p.category_id = c.category_id
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE p.is_active = 1
            GROUP BY p.product_id
            ORDER BY total_quantity DESC
[02-Mar-2026 08:44:32 Africa/Kigali] Category SQL: 
            SELECT 
                c.category_id, c.category_name,
                COUNT(DISTINCT p.product_id) as product_count,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_categories c
            LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE c.is_active = 1
            GROUP BY c.category_id
            ORDER BY total_revenue DESC
[02-Mar-2026 08:44:32 Africa/Kigali] Report generated - Products: 138, Categories: 14
[02-Mar-2026 08:44:59 Africa/Kigali] Validating session on init
[02-Mar-2026 08:44:59 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:44:59 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:44:59 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:44:59 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:44:59 Africa/Kigali] Product Sales Report - From: 2026-02-24, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 08:44:59 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 08:44:59 Africa/Kigali] Product SQL: 
            SELECT 
                p.product_id, 
                p.product_code, 
                p.product_name, 
                p.unit_price,
                c.category_name,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_products p
            JOIN pos_categories c ON p.category_id = c.category_id
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE p.is_active = 1
            GROUP BY p.product_id
            ORDER BY total_quantity DESC
[02-Mar-2026 08:44:59 Africa/Kigali] Category SQL: 
            SELECT 
                c.category_id, c.category_name,
                COUNT(DISTINCT p.product_id) as product_count,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_categories c
            LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE c.is_active = 1
            GROUP BY c.category_id
            ORDER BY total_revenue DESC
[02-Mar-2026 08:44:59 Africa/Kigali] Report generated - Products: 138, Categories: 14
[02-Mar-2026 08:53:52 Africa/Kigali] Validating session on init
[02-Mar-2026 08:53:52 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:53:52 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:53:52 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:53:52 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:53:52 Africa/Kigali] Cashier Report - From: 2026-03-01, To: 2026-03-02, Cashier: All, Outlet: All
[02-Mar-2026 08:53:52 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 08:53:52 Africa/Kigali] Cashier SQL: 
            SELECT 
                u.user_id, u.first_name, u.last_name, u.username,
                COUNT(DISTINCT s.sale_id) as transactions,
                COALESCE(SUM(s.total_amount), 0) as total_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%cash%' THEN s.total_amount ELSE 0 END), 0) as cash_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%card%' OR LOWER(s.payment_method) LIKE '%credit%' THEN s.total_amount ELSE 0 END), 0) as card_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%mobile%' OR LOWER(s.payment_method) LIKE '%momo%' THEN s.total_amount ELSE 0 END), 0) as mobile_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%room%' OR LOWER(s.payment_method) LIKE '%charge%' THEN s.total_amount ELSE 0 END), 0) as room_charge,
                COALESCE(SUM(si.quantity), 0) as items_sold
            FROM users u
            LEFT JOIN pos_sales s ON u.user_id = s.user_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            LEFT JOIN pos_sale_items si ON s.sale_id = si.sale_id
            WHERE 1=1
            GROUP BY u.user_id
            ORDER BY total_sales DESC
[02-Mar-2026 08:53:52 Africa/Kigali] Error generating cashier report: Unknown column 's.payment_method' in 'field list'
[02-Mar-2026 08:53:52 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(766): mysqli->prepare('\n            SE...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(202): get_cashier_report('2026-03-01', '2026-03-02', NULL, NULL)
#2 {main}
[02-Mar-2026 08:54:07 Africa/Kigali] Validating session on init
[02-Mar-2026 08:54:07 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:54:07 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:54:07 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:54:07 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:54:07 Africa/Kigali] Cashier Report - From: 2026-02-23, To: 2026-03-02, Cashier: All, Outlet: All
[02-Mar-2026 08:54:07 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 08:54:07 Africa/Kigali] Cashier SQL: 
            SELECT 
                u.user_id, u.first_name, u.last_name, u.username,
                COUNT(DISTINCT s.sale_id) as transactions,
                COALESCE(SUM(s.total_amount), 0) as total_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%cash%' THEN s.total_amount ELSE 0 END), 0) as cash_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%card%' OR LOWER(s.payment_method) LIKE '%credit%' THEN s.total_amount ELSE 0 END), 0) as card_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%mobile%' OR LOWER(s.payment_method) LIKE '%momo%' THEN s.total_amount ELSE 0 END), 0) as mobile_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%room%' OR LOWER(s.payment_method) LIKE '%charge%' THEN s.total_amount ELSE 0 END), 0) as room_charge,
                COALESCE(SUM(si.quantity), 0) as items_sold
            FROM users u
            LEFT JOIN pos_sales s ON u.user_id = s.user_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            LEFT JOIN pos_sale_items si ON s.sale_id = si.sale_id
            WHERE 1=1
            GROUP BY u.user_id
            ORDER BY total_sales DESC
[02-Mar-2026 08:54:07 Africa/Kigali] Error generating cashier report: Unknown column 's.payment_method' in 'field list'
[02-Mar-2026 08:54:07 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(766): mysqli->prepare('\n            SE...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(202): get_cashier_report('2026-02-23', '2026-03-02', 0, 0)
#2 {main}
[02-Mar-2026 08:54:43 Africa/Kigali] Validating session on init
[02-Mar-2026 08:54:43 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:54:43 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:54:43 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:54:43 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:54:43 Africa/Kigali] Cashier Report - From: 2026-01-01, To: 2026-03-02, Cashier: All, Outlet: All
[02-Mar-2026 08:54:43 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 08:54:43 Africa/Kigali] Cashier SQL: 
            SELECT 
                u.user_id, u.first_name, u.last_name, u.username,
                COUNT(DISTINCT s.sale_id) as transactions,
                COALESCE(SUM(s.total_amount), 0) as total_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%cash%' THEN s.total_amount ELSE 0 END), 0) as cash_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%card%' OR LOWER(s.payment_method) LIKE '%credit%' THEN s.total_amount ELSE 0 END), 0) as card_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%mobile%' OR LOWER(s.payment_method) LIKE '%momo%' THEN s.total_amount ELSE 0 END), 0) as mobile_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%room%' OR LOWER(s.payment_method) LIKE '%charge%' THEN s.total_amount ELSE 0 END), 0) as room_charge,
                COALESCE(SUM(si.quantity), 0) as items_sold
            FROM users u
            LEFT JOIN pos_sales s ON u.user_id = s.user_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            LEFT JOIN pos_sale_items si ON s.sale_id = si.sale_id
            WHERE 1=1
            GROUP BY u.user_id
            ORDER BY total_sales DESC
[02-Mar-2026 08:54:43 Africa/Kigali] Error generating cashier report: Unknown column 's.payment_method' in 'field list'
[02-Mar-2026 08:54:43 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(766): mysqli->prepare('\n            SE...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(202): get_cashier_report('2026-01-01', '2026-03-02', 0, 0)
#2 {main}
[02-Mar-2026 08:54:44 Africa/Kigali] Validating session on init
[02-Mar-2026 08:54:44 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:54:44 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:54:44 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:54:44 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:54:44 Africa/Kigali] Cashier Report - From: 2026-01-01, To: 2026-03-02, Cashier: All, Outlet: All
[02-Mar-2026 08:54:44 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 08:54:44 Africa/Kigali] Cashier SQL: 
            SELECT 
                u.user_id, u.first_name, u.last_name, u.username,
                COUNT(DISTINCT s.sale_id) as transactions,
                COALESCE(SUM(s.total_amount), 0) as total_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%cash%' THEN s.total_amount ELSE 0 END), 0) as cash_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%card%' OR LOWER(s.payment_method) LIKE '%credit%' THEN s.total_amount ELSE 0 END), 0) as card_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%mobile%' OR LOWER(s.payment_method) LIKE '%momo%' THEN s.total_amount ELSE 0 END), 0) as mobile_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%room%' OR LOWER(s.payment_method) LIKE '%charge%' THEN s.total_amount ELSE 0 END), 0) as room_charge,
                COALESCE(SUM(si.quantity), 0) as items_sold
            FROM users u
            LEFT JOIN pos_sales s ON u.user_id = s.user_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            LEFT JOIN pos_sale_items si ON s.sale_id = si.sale_id
            WHERE 1=1
            GROUP BY u.user_id
            ORDER BY total_sales DESC
[02-Mar-2026 08:54:44 Africa/Kigali] Error generating cashier report: Unknown column 's.payment_method' in 'field list'
[02-Mar-2026 08:54:44 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(766): mysqli->prepare('\n            SE...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(202): get_cashier_report('2026-01-01', '2026-03-02', 0, 0)
#2 {main}
[02-Mar-2026 08:54:44 Africa/Kigali] Validating session on init
[02-Mar-2026 08:54:44 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:54:44 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:54:44 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:54:44 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:54:44 Africa/Kigali] Cashier Report - From: 2026-01-01, To: 2026-03-02, Cashier: All, Outlet: All
[02-Mar-2026 08:54:44 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 08:54:44 Africa/Kigali] Cashier SQL: 
            SELECT 
                u.user_id, u.first_name, u.last_name, u.username,
                COUNT(DISTINCT s.sale_id) as transactions,
                COALESCE(SUM(s.total_amount), 0) as total_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%cash%' THEN s.total_amount ELSE 0 END), 0) as cash_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%card%' OR LOWER(s.payment_method) LIKE '%credit%' THEN s.total_amount ELSE 0 END), 0) as card_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%mobile%' OR LOWER(s.payment_method) LIKE '%momo%' THEN s.total_amount ELSE 0 END), 0) as mobile_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%room%' OR LOWER(s.payment_method) LIKE '%charge%' THEN s.total_amount ELSE 0 END), 0) as room_charge,
                COALESCE(SUM(si.quantity), 0) as items_sold
            FROM users u
            LEFT JOIN pos_sales s ON u.user_id = s.user_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            LEFT JOIN pos_sale_items si ON s.sale_id = si.sale_id
            WHERE 1=1
            GROUP BY u.user_id
            ORDER BY total_sales DESC
[02-Mar-2026 08:54:44 Africa/Kigali] Error generating cashier report: Unknown column 's.payment_method' in 'field list'
[02-Mar-2026 08:54:44 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(766): mysqli->prepare('\n            SE...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(202): get_cashier_report('2026-01-01', '2026-03-02', 0, 0)
#2 {main}
[02-Mar-2026 08:54:44 Africa/Kigali] Validating session on init
[02-Mar-2026 08:54:44 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:54:44 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:54:44 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:54:44 Africa/Kigali] Session validated successfully
[02-Mar-2026 08:54:44 Africa/Kigali] Cashier Report - From: 2026-01-01, To: 2026-03-02, Cashier: All, Outlet: All
[02-Mar-2026 08:54:44 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 08:54:44 Africa/Kigali] Cashier SQL: 
            SELECT 
                u.user_id, u.first_name, u.last_name, u.username,
                COUNT(DISTINCT s.sale_id) as transactions,
                COALESCE(SUM(s.total_amount), 0) as total_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%cash%' THEN s.total_amount ELSE 0 END), 0) as cash_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%card%' OR LOWER(s.payment_method) LIKE '%credit%' THEN s.total_amount ELSE 0 END), 0) as card_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%mobile%' OR LOWER(s.payment_method) LIKE '%momo%' THEN s.total_amount ELSE 0 END), 0) as mobile_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%room%' OR LOWER(s.payment_method) LIKE '%charge%' THEN s.total_amount ELSE 0 END), 0) as room_charge,
                COALESCE(SUM(si.quantity), 0) as items_sold
            FROM users u
            LEFT JOIN pos_sales s ON u.user_id = s.user_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            LEFT JOIN pos_sale_items si ON s.sale_id = si.sale_id
            WHERE 1=1
            GROUP BY u.user_id
            ORDER BY total_sales DESC
[02-Mar-2026 08:54:44 Africa/Kigali] Error generating cashier report: Unknown column 's.payment_method' in 'field list'
[02-Mar-2026 08:54:44 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(766): mysqli->prepare('\n            SE...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(202): get_cashier_report('2026-01-01', '2026-03-02', 0, 0)
#2 {main}
[02-Mar-2026 08:55:04 Africa/Kigali] Validating session on init
[02-Mar-2026 08:55:04 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 08:55:04 Africa/Kigali] Session validated successfully
[2026-03-02 08:55:04] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[02-Mar-2026 08:55:04 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[02-Mar-2026 11:24:39 Africa/Kigali] Validating session on init
[02-Mar-2026 11:24:39 Africa/Kigali] AUDIT: User: 1 | Action: logout | Table: users | Record: 1
[02-Mar-2026 11:24:39 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:24:39 Africa/Kigali] validate_session failed, checking remember token
[02-Mar-2026 11:24:39 Africa/Kigali] No valid session or remember token - redirecting to login
[02-Mar-2026 11:25:06 Africa/Kigali] Login attempt - Username: superadmin
[02-Mar-2026 11:25:06 Africa/Kigali] User found: Yes
[02-Mar-2026 11:25:06 Africa/Kigali] Login successful for user: superadmin
[02-Mar-2026 11:25:06 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[02-Mar-2026 11:25:06 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-03-02 11:25:06] [INFO] Successful login for user: superadmin
[02-Mar-2026 11:25:06 Africa/Kigali] Validating session on init
[02-Mar-2026 11:25:06 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:25:06 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:25:15 Africa/Kigali] Validating session on init
[02-Mar-2026 11:25:15 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:25:15 Africa/Kigali] Session validated successfully
[2026-03-02 11:25:15] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[02-Mar-2026 11:25:15 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[02-Mar-2026 11:25:17 Africa/Kigali] Validating session on init
[02-Mar-2026 11:25:17 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:25:17 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:25:17 Africa/Kigali] Revenue Stats - Total: 15, Revenue: 662888.6, Items: 561
[02-Mar-2026 11:25:26 Africa/Kigali] Validating session on init
[02-Mar-2026 11:25:26 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:25:26 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:25:26 Africa/Kigali] Daily Sales Report - Date: 2026-03-02, Outlet ID: All
[02-Mar-2026 11:25:26 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[02-Mar-2026 11:25:26 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[02-Mar-2026 11:25:26 Africa/Kigali] Found 0 transactions
[02-Mar-2026 11:25:26 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[02-Mar-2026 11:25:37 Africa/Kigali] Validating session on init
[02-Mar-2026 11:25:37 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:25:37 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:25:37 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:25:37 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:25:37 Africa/Kigali] Product Sales Report - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 11:25:37 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 11:25:37 Africa/Kigali] Product SQL: 
            SELECT 
                p.product_id, 
                p.product_code, 
                p.product_name, 
                p.unit_price,
                c.category_name,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_products p
            JOIN pos_categories c ON p.category_id = c.category_id
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE p.is_active = 1
            GROUP BY p.product_id
            ORDER BY total_quantity DESC
[02-Mar-2026 11:25:37 Africa/Kigali] Category SQL: 
            SELECT 
                c.category_id, c.category_name,
                COUNT(DISTINCT p.product_id) as product_count,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_categories c
            LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE c.is_active = 1
            GROUP BY c.category_id
            ORDER BY total_revenue DESC
[02-Mar-2026 11:25:37 Africa/Kigali] Report generated - Products: 138, Categories: 14
[02-Mar-2026 11:26:11 Africa/Kigali] Validating session on init
[02-Mar-2026 11:26:11 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:26:11 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:26:11 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:26:11 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:26:11 Africa/Kigali] Product Sales Report - From: 2026-02-12, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 11:26:11 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 11:26:11 Africa/Kigali] Product SQL: 
            SELECT 
                p.product_id, 
                p.product_code, 
                p.product_name, 
                p.unit_price,
                c.category_name,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_products p
            JOIN pos_categories c ON p.category_id = c.category_id
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE p.is_active = 1
            GROUP BY p.product_id
            ORDER BY product_name
[02-Mar-2026 11:26:11 Africa/Kigali] Category SQL: 
            SELECT 
                c.category_id, c.category_name,
                COUNT(DISTINCT p.product_id) as product_count,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_categories c
            LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE c.is_active = 1
            GROUP BY c.category_id
            ORDER BY total_revenue DESC
[02-Mar-2026 11:26:11 Africa/Kigali] Report generated - Products: 138, Categories: 14
[02-Mar-2026 11:26:20 Africa/Kigali] Validating session on init
[02-Mar-2026 11:26:20 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:26:20 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:26:20 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:26:20 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:26:20 Africa/Kigali] Product Sales Report - From: 2026-02-12, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 11:26:20 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 11:26:20 Africa/Kigali] Product SQL: 
            SELECT 
                p.product_id, 
                p.product_code, 
                p.product_name, 
                p.unit_price,
                c.category_name,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_products p
            JOIN pos_categories c ON p.category_id = c.category_id
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE p.is_active = 1
            GROUP BY p.product_id
            ORDER BY product_name
[02-Mar-2026 11:26:20 Africa/Kigali] Category SQL: 
            SELECT 
                c.category_id, c.category_name,
                COUNT(DISTINCT p.product_id) as product_count,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_categories c
            LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE c.is_active = 1
            GROUP BY c.category_id
            ORDER BY total_revenue DESC
[02-Mar-2026 11:26:20 Africa/Kigali] Report generated - Products: 138, Categories: 14
[02-Mar-2026 11:26:44 Africa/Kigali] Validating session on init
[02-Mar-2026 11:26:44 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:26:44 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:26:44 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:26:44 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:26:44 Africa/Kigali] Product Sales Report - From: 2026-02-12, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 11:26:44 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 11:26:44 Africa/Kigali] Product SQL: 
            SELECT 
                p.product_id, 
                p.product_code, 
                p.product_name, 
                p.unit_price,
                c.category_name,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_products p
            JOIN pos_categories c ON p.category_id = c.category_id
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE p.is_active = 1
            GROUP BY p.product_id
            ORDER BY total_quantity DESC
[02-Mar-2026 11:26:44 Africa/Kigali] Category SQL: 
            SELECT 
                c.category_id, c.category_name,
                COUNT(DISTINCT p.product_id) as product_count,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_categories c
            LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE c.is_active = 1
            GROUP BY c.category_id
            ORDER BY total_revenue DESC
[02-Mar-2026 11:26:44 Africa/Kigali] Report generated - Products: 138, Categories: 14
[02-Mar-2026 11:26:46 Africa/Kigali] Validating session on init
[02-Mar-2026 11:26:46 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:26:46 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:26:46 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 11:26:46 Africa/Kigali] Session validated successfully
[02-Mar-2026 11:26:46 Africa/Kigali] Product Sales Report - From: 2026-02-12, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 11:26:46 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 11:26:46 Africa/Kigali] Product SQL: 
            SELECT 
                p.product_id, 
                p.product_code, 
                p.product_name, 
                p.unit_price,
                c.category_name,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_products p
            JOIN pos_categories c ON p.category_id = c.category_id
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE p.is_active = 1
            GROUP BY p.product_id
            ORDER BY total_quantity DESC
[02-Mar-2026 11:26:46 Africa/Kigali] Category SQL: 
            SELECT 
                c.category_id, c.category_name,
                COUNT(DISTINCT p.product_id) as product_count,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_categories c
            LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE c.is_active = 1
            GROUP BY c.category_id
            ORDER BY total_revenue DESC
[02-Mar-2026 11:26:46 Africa/Kigali] Report generated - Products: 138, Categories: 14
[02-Mar-2026 17:00:28 Africa/Kigali] Login attempt - Username: superadmin
[02-Mar-2026 17:00:28 Africa/Kigali] User found: Yes
[02-Mar-2026 17:00:28 Africa/Kigali] Login successful for user: superadmin
[02-Mar-2026 17:00:28 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[02-Mar-2026 17:00:28 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-03-02 17:00:28] [INFO] Successful login for user: superadmin
[02-Mar-2026 17:00:28 Africa/Kigali] Validating session on init
[02-Mar-2026 17:00:28 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:00:28 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:00:39 Africa/Kigali] Validating session on init
[02-Mar-2026 17:00:39 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:00:39 Africa/Kigali] Session validated successfully
[2026-03-02 17:00:39] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[02-Mar-2026 17:00:39 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[02-Mar-2026 17:00:40 Africa/Kigali] Validating session on init
[02-Mar-2026 17:00:40 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:00:40 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:00:40 Africa/Kigali] Revenue Stats - Total: 15, Revenue: 662888.6, Items: 561
[02-Mar-2026 17:00:41 Africa/Kigali] Validating session on init
[02-Mar-2026 17:00:41 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:00:41 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:00:41 Africa/Kigali] Daily Sales Report - Date: 2026-03-02, Outlet ID: All
[02-Mar-2026 17:00:41 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[02-Mar-2026 17:00:41 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[02-Mar-2026 17:00:41 Africa/Kigali] Found 0 transactions
[02-Mar-2026 17:00:41 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[02-Mar-2026 17:00:48 Africa/Kigali] Validating session on init
[02-Mar-2026 17:00:48 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:00:48 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:00:48 Africa/Kigali] Daily Sales Report - Date: 2026-02-26, Outlet ID: All
[02-Mar-2026 17:00:48 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[02-Mar-2026 17:00:48 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[02-Mar-2026 17:00:48 Africa/Kigali] Found 11 transactions
[02-Mar-2026 17:00:48 Africa/Kigali] Report Summary - Transactions: 11, Total Sales: 2050.25
[02-Mar-2026 17:02:08 Africa/Kigali] Validating session on init
[02-Mar-2026 17:02:08 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:02:08 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:02:08 Africa/Kigali] Revenue Stats - Total: 15, Revenue: 662888.6, Items: 561
[02-Mar-2026 17:02:11 Africa/Kigali] Validating session on init
[02-Mar-2026 17:02:11 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:02:11 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:02:11 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:02:11 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:02:11 Africa/Kigali] Product Sales Report - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 17:02:11 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 17:02:11 Africa/Kigali] Product SQL: 
            SELECT 
                p.product_id, 
                p.product_code, 
                p.product_name, 
                p.unit_price,
                c.category_name,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_products p
            JOIN pos_categories c ON p.category_id = c.category_id
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE p.is_active = 1
            GROUP BY p.product_id
            ORDER BY total_quantity DESC
[02-Mar-2026 17:02:11 Africa/Kigali] Category SQL: 
            SELECT 
                c.category_id, c.category_name,
                COUNT(DISTINCT p.product_id) as product_count,
                COALESCE(SUM(si.quantity), 0) as total_quantity,
                COALESCE(SUM(si.total_amount), 0) as total_revenue
            FROM pos_categories c
            LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
            LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
            LEFT JOIN pos_sales s ON si.sale_id = s.sale_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            WHERE c.is_active = 1
            GROUP BY c.category_id
            ORDER BY total_revenue DESC
[02-Mar-2026 17:02:11 Africa/Kigali] Report generated - Products: 138, Categories: 14
[02-Mar-2026 17:03:12 Africa/Kigali] Validating session on init
[02-Mar-2026 17:03:12 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:03:12 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:03:12 Africa/Kigali] Revenue Stats - Total: 15, Revenue: 662888.6, Items: 561
[02-Mar-2026 17:03:13 Africa/Kigali] Validating session on init
[02-Mar-2026 17:03:13 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:03:13 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:03:13 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:03:13 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:03:13 Africa/Kigali] Cashier Report - From: 2026-03-01, To: 2026-03-02, Cashier: All, Outlet: All
[02-Mar-2026 17:03:13 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 17:03:13 Africa/Kigali] Cashier SQL: 
            SELECT 
                u.user_id, u.first_name, u.last_name, u.username,
                COUNT(DISTINCT s.sale_id) as transactions,
                COALESCE(SUM(s.total_amount), 0) as total_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%cash%' THEN s.total_amount ELSE 0 END), 0) as cash_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%card%' OR LOWER(s.payment_method) LIKE '%credit%' THEN s.total_amount ELSE 0 END), 0) as card_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%mobile%' OR LOWER(s.payment_method) LIKE '%momo%' THEN s.total_amount ELSE 0 END), 0) as mobile_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%room%' OR LOWER(s.payment_method) LIKE '%charge%' THEN s.total_amount ELSE 0 END), 0) as room_charge,
                COALESCE(SUM(si.quantity), 0) as items_sold
            FROM users u
            LEFT JOIN pos_sales s ON u.user_id = s.user_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            LEFT JOIN pos_sale_items si ON s.sale_id = si.sale_id
            WHERE 1=1
            GROUP BY u.user_id
            ORDER BY total_sales DESC
[02-Mar-2026 17:03:13 Africa/Kigali] Error generating cashier report: Unknown column 's.payment_method' in 'field list'
[02-Mar-2026 17:03:13 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(766): mysqli->prepare('\n            SE...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(202): get_cashier_report('2026-03-01', '2026-03-02', NULL, NULL)
#2 {main}
[02-Mar-2026 17:03:25 Africa/Kigali] Validating session on init
[02-Mar-2026 17:03:25 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:03:25 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:03:25 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:03:25 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:03:25 Africa/Kigali] Cashier Report - From: 2026-02-11, To: 2026-03-02, Cashier: All, Outlet: All
[02-Mar-2026 17:03:25 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 17:03:25 Africa/Kigali] Cashier SQL: 
            SELECT 
                u.user_id, u.first_name, u.last_name, u.username,
                COUNT(DISTINCT s.sale_id) as transactions,
                COALESCE(SUM(s.total_amount), 0) as total_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%cash%' THEN s.total_amount ELSE 0 END), 0) as cash_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%card%' OR LOWER(s.payment_method) LIKE '%credit%' THEN s.total_amount ELSE 0 END), 0) as card_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%mobile%' OR LOWER(s.payment_method) LIKE '%momo%' THEN s.total_amount ELSE 0 END), 0) as mobile_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%room%' OR LOWER(s.payment_method) LIKE '%charge%' THEN s.total_amount ELSE 0 END), 0) as room_charge,
                COALESCE(SUM(si.quantity), 0) as items_sold
            FROM users u
            LEFT JOIN pos_sales s ON u.user_id = s.user_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            LEFT JOIN pos_sale_items si ON s.sale_id = si.sale_id
            WHERE 1=1
            GROUP BY u.user_id
            ORDER BY total_sales DESC
[02-Mar-2026 17:03:25 Africa/Kigali] Error generating cashier report: Unknown column 's.payment_method' in 'field list'
[02-Mar-2026 17:03:25 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(766): mysqli->prepare('\n            SE...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(202): get_cashier_report('2026-02-11', '2026-03-02', 0, 0)
#2 {main}
[02-Mar-2026 17:14:58 Africa/Kigali] Validating session on init
[02-Mar-2026 17:14:58 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:14:58 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:14:58 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:14:58 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:14:58 Africa/Kigali] Cashier Report - From: 2026-03-01, To: 2026-03-02, Cashier: All, Outlet: All
[02-Mar-2026 17:14:58 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 17:14:58 Africa/Kigali] Cashier SQL: 
            SELECT 
                u.user_id, u.first_name, u.last_name, u.username,
                COUNT(DISTINCT s.sale_id) as transactions,
                COALESCE(SUM(s.total_amount), 0) as total_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%cash%' THEN s.total_amount ELSE 0 END), 0) as cash_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%card%' OR LOWER(s.payment_method) LIKE '%credit%' THEN s.total_amount ELSE 0 END), 0) as card_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%mobile%' OR LOWER(s.payment_method) LIKE '%momo%' THEN s.total_amount ELSE 0 END), 0) as mobile_sales,
                COALESCE(SUM(CASE WHEN LOWER(s.payment_method) LIKE '%room%' OR LOWER(s.payment_method) LIKE '%charge%' THEN s.total_amount ELSE 0 END), 0) as room_charge,
                COALESCE(SUM(si.quantity), 0) as items_sold
            FROM users u
            LEFT JOIN pos_sales s ON u.user_id = s.user_id AND s.payment_status = 'completed' AND DATE(s.sale_time) BETWEEN ? AND ?
            LEFT JOIN pos_sale_items si ON s.sale_id = si.sale_id
            WHERE 1=1
            GROUP BY u.user_id
            ORDER BY total_sales DESC
[02-Mar-2026 17:14:58 Africa/Kigali] Error generating cashier report: Unknown column 's.payment_method' in 'field list'
[02-Mar-2026 17:14:58 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(766): mysqli->prepare('\n            SE...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/cashier-sales.php(202): get_cashier_report('2026-03-01', '2026-03-02', NULL, NULL)
#2 {main}
[02-Mar-2026 17:14:59 Africa/Kigali] Validating session on init
[02-Mar-2026 17:14:59 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:14:59 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:14:59 Africa/Kigali] Revenue Stats - Total: 15, Revenue: 662888.6, Items: 561
[02-Mar-2026 17:15:00 Africa/Kigali] Validating session on init
[02-Mar-2026 17:15:00 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:15:00 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:15:00 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:15:00 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:15:00 Africa/Kigali] Product Sales Report with Stock - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 17:15:00 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 17:15:00 Africa/Kigali] Product SQL with Stock: 
            SELECT 
                p.product_id, 
                p.product_code, 
                p.product_name, 
                p.unit_price,
                c.category_name,
                COALESCE((
                    SELECT SUM(si2.quantity) 
                    FROM pos_sale_items si2 
                    JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                    WHERE si2.product_id = p.product_id 
                    AND s2.payment_status = 'completed' 
                    AND DATE(s2.sale_time) BETWEEN ? AND ?
                ), 0) as total_quantity,
                COALESCE((
                    SELECT SUM(si2.total_amount) 
                    FROM pos_sale_items si2 
                    JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                    WHERE si2.product_id = p.product_id 
                    AND s2.payment_status = 'completed' 
                    AND DATE(s2.sale_time) BETWEEN ? AND ?
                ), 0) as total_revenue,
                COALESCE(p.current_stock, 0) as remaining_stock,
                COALESCE(p.current_stock, 0) * p.unit_price as stock_value
            FROM pos_products p
            JOIN pos_categories c ON p.category_id = c.category_id
            WHERE p.is_active = 1 GROUP BY p.product_id
                  ORDER BY total_quantity DESC
[02-Mar-2026 17:15:00 Africa/Kigali] PHP Fatal error:  Uncaught ArgumentCountError: The number of variables must match the number of parameters in the prepared statement in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/product-sales.php:840
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/product-sales.php(840): mysqli_stmt->bind_param('ssssss', '2026-03-01', '2026-03-02', '2026-03-01', '2026-03-02', '2026-03-01', '2026-03-02')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/product-sales.php(150): get_product_sales_report('2026-03-01', '2026-03-02', NULL, NULL, 'quantity')
#2 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/product-sales.php on line 840
[02-Mar-2026 17:21:12 Africa/Kigali] Validating session on init
[02-Mar-2026 17:21:13 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:21:13 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:21:13 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:21:13 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:21:13 Africa/Kigali] Product Sales Report with Stock - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 17:21:13 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 17:21:13 Africa/Kigali] Product SQL with Stock: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    c.category_name,
                    COALESCE((
                        SELECT SUM(si2.quantity) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_quantity,
                    COALESCE((
                        SELECT SUM(si2.total_amount) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_revenue,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * p.unit_price as stock_value
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                WHERE p.is_active = 1 GROUP BY p.product_id ORDER BY total_quantity DESC
[02-Mar-2026 17:21:13 Africa/Kigali] Parameters: 2026-03-01, 2026-03-02, 2026-03-01, 2026-03-02
[02-Mar-2026 17:21:13 Africa/Kigali] Types: ssss
[02-Mar-2026 17:21:13 Africa/Kigali] Category SQL with Stock: 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    COALESCE(SUM(si.quantity), 0) as total_quantity,
                    COALESCE(SUM(si.total_amount), 0) as total_revenue,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * p.unit_price), 0) as stock_value
                FROM pos_categories c
                LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
                LEFT JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                ORDER BY stock_value DESC
[02-Mar-2026 17:21:13 Africa/Kigali] Report generated - Products: 138, Categories: 14
[02-Mar-2026 17:21:13 Africa/Kigali] Total Stock Value: 58070000
[02-Mar-2026 17:22:04 Africa/Kigali] Validating session on init
[02-Mar-2026 17:22:04 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:22:04 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:22:04 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:22:04 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:22:04 Africa/Kigali] Product Sales Report with Stock - From: 2026-02-23, To: 2026-02-28, Category: All, Outlet: All
[02-Mar-2026 17:22:04 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 17:22:04 Africa/Kigali] Product SQL with Stock: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    c.category_name,
                    COALESCE((
                        SELECT SUM(si2.quantity) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_quantity,
                    COALESCE((
                        SELECT SUM(si2.total_amount) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_revenue,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * p.unit_price as stock_value
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                WHERE p.is_active = 1 GROUP BY p.product_id ORDER BY total_quantity DESC
[02-Mar-2026 17:22:04 Africa/Kigali] Parameters: 2026-02-23, 2026-02-28, 2026-02-23, 2026-02-28
[02-Mar-2026 17:22:04 Africa/Kigali] Types: ssss
[02-Mar-2026 17:22:04 Africa/Kigali] Category SQL with Stock: 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    COALESCE(SUM(si.quantity), 0) as total_quantity,
                    COALESCE(SUM(si.total_amount), 0) as total_revenue,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * p.unit_price), 0) as stock_value
                FROM pos_categories c
                LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
                LEFT JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                ORDER BY stock_value DESC
[02-Mar-2026 17:22:04 Africa/Kigali] Report generated - Products: 138, Categories: 14
[02-Mar-2026 17:22:04 Africa/Kigali] Total Stock Value: 58070000
[02-Mar-2026 17:22:24 Africa/Kigali] Validating session on init
[02-Mar-2026 17:22:24 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:22:24 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:22:24 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:22:24 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:22:24 Africa/Kigali] Product Sales Report with Stock - From: 2026-02-23, To: 2026-02-28, Category: All, Outlet: All
[02-Mar-2026 17:22:24 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 17:22:24 Africa/Kigali] Product SQL with Stock: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    c.category_name,
                    COALESCE((
                        SELECT SUM(si2.quantity) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_quantity,
                    COALESCE((
                        SELECT SUM(si2.total_amount) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_revenue,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * p.unit_price as stock_value
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                WHERE p.is_active = 1 GROUP BY p.product_id ORDER BY total_quantity DESC
[02-Mar-2026 17:22:24 Africa/Kigali] Parameters: 2026-02-23, 2026-02-28, 2026-02-23, 2026-02-28
[02-Mar-2026 17:22:24 Africa/Kigali] Types: ssss
[02-Mar-2026 17:22:24 Africa/Kigali] Category SQL with Stock: 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    COALESCE(SUM(si.quantity), 0) as total_quantity,
                    COALESCE(SUM(si.total_amount), 0) as total_revenue,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * p.unit_price), 0) as stock_value
                FROM pos_categories c
                LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
                LEFT JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                ORDER BY stock_value DESC
[02-Mar-2026 17:22:24 Africa/Kigali] Report generated - Products: 138, Categories: 14
[02-Mar-2026 17:22:24 Africa/Kigali] Total Stock Value: 58070000
[02-Mar-2026 17:23:03 Africa/Kigali] Validating session on init
[02-Mar-2026 17:23:03 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:23:03 Africa/Kigali] Session validated successfully
[2026-03-02 17:23:03] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[02-Mar-2026 17:23:03 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[02-Mar-2026 17:23:10 Africa/Kigali] Validating session on init
[02-Mar-2026 17:23:10 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:23:10 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:23:10 Africa/Kigali] Revenue Stats - Total: 15, Revenue: 662888.6, Items: 561
[02-Mar-2026 17:23:27 Africa/Kigali] Validating session on init
[02-Mar-2026 17:23:27 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:23:27 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:24:01 Africa/Kigali] Validating session on init
[02-Mar-2026 17:24:01 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:24:01 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:24:36 Africa/Kigali] Validating session on init
[02-Mar-2026 17:24:36 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:24:36 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:29:51 Africa/Kigali] Validating session on init
[02-Mar-2026 17:29:51 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:29:51 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:30:10 Africa/Kigali] Validating session on init
[02-Mar-2026 17:30:10 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:30:10 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:30:10 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function db_execute() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/products/index.php:44
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/products/index.php on line 44
[02-Mar-2026 17:33:39 Africa/Kigali] Validating session on init
[02-Mar-2026 17:33:39 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:33:39 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:33:39 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined method PDOStatement::fetch_assoc() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/products/index.php:42
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/products/index.php on line 42
[02-Mar-2026 17:33:41 Africa/Kigali] Validating session on init
[02-Mar-2026 17:33:41 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:33:41 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:33:41 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined method PDOStatement::fetch_assoc() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/products/index.php:42
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/products/index.php on line 42
[02-Mar-2026 17:36:57 Africa/Kigali] Validating session on init
[02-Mar-2026 17:36:57 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:36:57 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:36:57 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to a member function prepare() on null in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/products/index.php:40
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/products/index.php on line 40
[02-Mar-2026 17:40:58 Africa/Kigali] Validating session on init
[02-Mar-2026 17:40:58 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:40:58 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:40:58 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:40:58 Africa/Kigali] Validating session on init
[02-Mar-2026 17:40:58 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:40:58 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:40:58 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:41:27 Africa/Kigali] Validating session on init
[02-Mar-2026 17:41:27 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:41:27 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:41:27 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:41:31 Africa/Kigali] Validating session on init
[02-Mar-2026 17:41:31 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:41:31 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:41:31 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:41:31 Africa/Kigali] Validating session on init
[02-Mar-2026 17:41:31 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:41:31 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:41:31 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:41:50 Africa/Kigali] Validating session on init
[02-Mar-2026 17:41:50 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:41:50 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:41:50 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:41:50 Africa/Kigali] Product ID 9 deactivated (had 2 sales)
[02-Mar-2026 17:41:50 Africa/Kigali] Validating session on init
[02-Mar-2026 17:41:50 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:41:50 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:41:50 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:41:54 Africa/Kigali] Validating session on init
[02-Mar-2026 17:41:54 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:41:54 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:41:54 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:42:14 Africa/Kigali] Validating session on init
[02-Mar-2026 17:42:14 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:42:14 Africa/Kigali] Session validated successfully
[2026-03-02 17:42:14] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[02-Mar-2026 17:42:14 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[02-Mar-2026 17:42:15 Africa/Kigali] Validating session on init
[02-Mar-2026 17:42:15 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:42:15 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:42:15 Africa/Kigali] Revenue Stats - Total: 15, Revenue: 662888.6, Items: 561
[02-Mar-2026 17:49:33 Africa/Kigali] Validating session on init
[02-Mar-2026 17:49:33 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:49:33 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:49:33 Africa/Kigali] Revenue Stats - Total: 15, Revenue: 662888.6, Items: 561
[02-Mar-2026 17:50:43 Africa/Kigali] Validating session on init
[02-Mar-2026 17:50:43 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:50:43 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:57:47 Africa/Kigali] Validating session on init
[02-Mar-2026 17:57:47 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:57:47 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:57:47 Africa/Kigali] Revenue Stats - Total: 0, Revenue: 0, Items: 0
[02-Mar-2026 17:57:50 Africa/Kigali] Validating session on init
[02-Mar-2026 17:57:50 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:57:50 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:57:50 Africa/Kigali] Revenue Stats - Total: 0, Revenue: 0, Items: 0
[02-Mar-2026 17:57:55 Africa/Kigali] Validating session on init
[02-Mar-2026 17:57:55 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:57:55 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:57:55 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:57:55 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:57:55 Africa/Kigali] Product Sales Report with Stock - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 17:57:55 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 17:57:55 Africa/Kigali] Product SQL with Stock: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    c.category_name,
                    COALESCE((
                        SELECT SUM(si2.quantity) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_quantity,
                    COALESCE((
                        SELECT SUM(si2.total_amount) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_revenue,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * p.unit_price as stock_value
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                WHERE p.is_active = 1 GROUP BY p.product_id ORDER BY total_quantity DESC
[02-Mar-2026 17:57:55 Africa/Kigali] Parameters: 2026-03-01, 2026-03-02, 2026-03-01, 2026-03-02
[02-Mar-2026 17:57:55 Africa/Kigali] Types: ssss
[02-Mar-2026 17:57:55 Africa/Kigali] Category SQL with Stock: 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    COALESCE(SUM(si.quantity), 0) as total_quantity,
                    COALESCE(SUM(si.total_amount), 0) as total_revenue,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * p.unit_price), 0) as stock_value
                FROM pos_categories c
                LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
                LEFT JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                ORDER BY stock_value DESC
[02-Mar-2026 17:57:55 Africa/Kigali] Report generated - Products: 137, Categories: 14
[02-Mar-2026 17:57:55 Africa/Kigali] Total Stock Value: 58770000
[02-Mar-2026 17:58:42 Africa/Kigali] Validating session on init
[02-Mar-2026 17:58:42 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:58:42 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:58:42 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:58:49 Africa/Kigali] Validating session on init
[02-Mar-2026 17:58:49 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:58:49 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:58:49 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:58:52 Africa/Kigali] Validating session on init
[02-Mar-2026 17:58:52 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:58:52 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:58:52 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:58:52 Africa/Kigali] Error deleting product: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`ruhondo_hms`.`purchase_order_items`, CONSTRAINT `purchase_order_items_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `pos_products` (`product_id`))
[02-Mar-2026 17:58:52 Africa/Kigali] Validating session on init
[02-Mar-2026 17:58:52 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:58:52 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:58:52 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:58:54 Africa/Kigali] Validating session on init
[02-Mar-2026 17:58:54 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:58:54 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:58:54 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:58:54 Africa/Kigali] Error deleting product: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`ruhondo_hms`.`purchase_order_items`, CONSTRAINT `purchase_order_items_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `pos_products` (`product_id`))
[02-Mar-2026 17:58:54 Africa/Kigali] Validating session on init
[02-Mar-2026 17:58:54 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:58:54 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:58:54 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:58:57 Africa/Kigali] Validating session on init
[02-Mar-2026 17:58:57 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:58:57 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:58:57 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:58:57 Africa/Kigali] Error deleting product: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`ruhondo_hms`.`purchase_order_items`, CONSTRAINT `purchase_order_items_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `pos_products` (`product_id`))
[02-Mar-2026 17:58:57 Africa/Kigali] Validating session on init
[02-Mar-2026 17:58:57 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:58:57 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:58:57 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:00 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:00 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:00 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:00 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:00 Africa/Kigali] Error deleting product: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`ruhondo_hms`.`purchase_order_items`, CONSTRAINT `purchase_order_items_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `pos_products` (`product_id`))
[02-Mar-2026 17:59:00 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:00 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:00 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:00 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:03 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:03 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:03 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:03 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:03 Africa/Kigali] Error deleting product: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`ruhondo_hms`.`purchase_order_items`, CONSTRAINT `purchase_order_items_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `pos_products` (`product_id`))
[02-Mar-2026 17:59:03 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:03 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:03 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:03 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:09 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:09 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:09 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:09 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:09 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:09 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:09 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:09 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:15 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:15 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:15 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:15 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:15 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:15 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:15 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:15 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:20 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:20 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:20 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:20 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:20 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:20 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:20 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:20 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:27 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:27 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:27 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:27 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:27 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:27 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:27 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:27 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:31 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:31 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:31 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:31 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:31 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:31 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:31 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:31 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:48 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:48 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:48 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:48 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 17:59:48 Africa/Kigali] Validating session on init
[02-Mar-2026 17:59:48 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 17:59:48 Africa/Kigali] Session validated successfully
[02-Mar-2026 17:59:48 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:13 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:13 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:13 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:13 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:13 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:13 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:13 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:13 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:17 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:17 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:17 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:17 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:17 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:17 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:17 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:17 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:21 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:21 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:21 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:21 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:21 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:21 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:21 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:21 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:26 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:26 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:26 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:26 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:26 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:26 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:26 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:26 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:30 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:30 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:30 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:30 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:30 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:30 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:30 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:30 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:34 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:34 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:34 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:34 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:34 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:34 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:34 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:34 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:39 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:39 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:39 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:39 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:39 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:39 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:39 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:39 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:44 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:44 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:44 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:44 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:44 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:44 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:44 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:44 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:50 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:50 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:50 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:50 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:50 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:50 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:50 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:50 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:53 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:53 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:53 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:53 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:53 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:53 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:53 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:53 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:56 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:56 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:56 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:56 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:56 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:56 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:56 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:56 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:59 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:59 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:59 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:59 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:00:59 Africa/Kigali] Error deleting product: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`ruhondo_hms`.`purchase_order_items`, CONSTRAINT `purchase_order_items_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `pos_products` (`product_id`))
[02-Mar-2026 18:00:59 Africa/Kigali] Validating session on init
[02-Mar-2026 18:00:59 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:00:59 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:00:59 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:01:09 Africa/Kigali] Validating session on init
[02-Mar-2026 18:01:09 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:01:09 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:01:09 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:01:09 Africa/Kigali] Error deleting product: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`ruhondo_hms`.`purchase_order_items`, CONSTRAINT `purchase_order_items_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `pos_products` (`product_id`))
[02-Mar-2026 18:01:09 Africa/Kigali] Validating session on init
[02-Mar-2026 18:01:09 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:01:09 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:01:09 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:01:15 Africa/Kigali] Validating session on init
[02-Mar-2026 18:01:15 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:01:15 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:01:15 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:01:51 Africa/Kigali] Validating session on init
[02-Mar-2026 18:01:51 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:01:51 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:01:51 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:01:51 Africa/Kigali] Error deleting product: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`ruhondo_hms`.`purchase_order_items`, CONSTRAINT `purchase_order_items_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `pos_products` (`product_id`))
[02-Mar-2026 18:01:51 Africa/Kigali] Validating session on init
[02-Mar-2026 18:01:51 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:01:51 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:01:51 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:02:27 Africa/Kigali] Validating session on init
[02-Mar-2026 18:02:27 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:02:27 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:02:27 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 18:03:34 Africa/Kigali] Validating session on init
[02-Mar-2026 18:03:43 Africa/Kigali] Validating session on init
[02-Mar-2026 18:04:24 Africa/Kigali] Validating session on init
[02-Mar-2026 18:04:24 Africa/Kigali] Validating session on init
[02-Mar-2026 18:04:44 Africa/Kigali] Validating session on init
[02-Mar-2026 18:04:44 Africa/Kigali] Validating session on init
[02-Mar-2026 18:04:53 Africa/Kigali] Validating session on init
[02-Mar-2026 18:04:53 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:10 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:10 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:15 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:15 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:15 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:15 Africa/Kigali] Inserting purchase order item: Array
(
    [po_id] => 10
    [product_id] => 75
    [quantity_ordered] => 100
    [unit_price] => 1000
)

[02-Mar-2026 18:05:15 Africa/Kigali] Inserting purchase order item: Array
(
    [po_id] => 10
    [product_id] => 80
    [quantity_ordered] => 100
    [unit_price] => 1000
)

[02-Mar-2026 18:05:15 Africa/Kigali] Inserting purchase order item: Array
(
    [po_id] => 10
    [product_id] => 45
    [quantity_ordered] => 100
    [unit_price] => 1000
)

[02-Mar-2026 18:05:15 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:18 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:27 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:27 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:52 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:52 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:05:52 Africa/Kigali] Session validated successfully
[2026-03-02 18:05:52] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[02-Mar-2026 18:05:52 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[02-Mar-2026 18:05:54 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:54 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:05:54 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:05:54 Africa/Kigali] Revenue Stats - Total: 0, Revenue: 0, Items: 0
[02-Mar-2026 18:05:56 Africa/Kigali] Validating session on init
[02-Mar-2026 18:05:56 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:05:56 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:05:56 Africa/Kigali] Daily Sales Report - Date: 2026-03-02, Outlet ID: All
[02-Mar-2026 18:05:56 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[02-Mar-2026 18:05:56 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[02-Mar-2026 18:05:56 Africa/Kigali] Found 0 transactions
[02-Mar-2026 18:05:56 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[02-Mar-2026 18:06:00 Africa/Kigali] Validating session on init
[02-Mar-2026 18:06:00 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:06:00 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:06:00 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:06:00 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:06:00 Africa/Kigali] Product Sales Report with Stock - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 18:06:00 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 18:06:00 Africa/Kigali] Product SQL with Stock: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    c.category_name,
                    COALESCE((
                        SELECT SUM(si2.quantity) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_quantity,
                    COALESCE((
                        SELECT SUM(si2.total_amount) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_revenue,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * p.unit_price as stock_value
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                WHERE p.is_active = 1 GROUP BY p.product_id ORDER BY total_quantity DESC
[02-Mar-2026 18:06:00 Africa/Kigali] Parameters: 2026-03-01, 2026-03-02, 2026-03-01, 2026-03-02
[02-Mar-2026 18:06:00 Africa/Kigali] Types: ssss
[02-Mar-2026 18:06:00 Africa/Kigali] Category SQL with Stock: 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    COALESCE(SUM(si.quantity), 0) as total_quantity,
                    COALESCE(SUM(si.total_amount), 0) as total_revenue,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * p.unit_price), 0) as stock_value
                FROM pos_categories c
                LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
                LEFT JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                ORDER BY stock_value DESC
[02-Mar-2026 18:06:00 Africa/Kigali] Report generated - Products: 137, Categories: 14
[02-Mar-2026 18:06:00 Africa/Kigali] Total Stock Value: 71970000
[02-Mar-2026 18:06:07 Africa/Kigali] Validating session on init
[02-Mar-2026 18:06:07 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:06:07 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:06:07 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:06:07 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:06:07 Africa/Kigali] Product Sales Report with Stock - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 18:06:07 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 18:06:07 Africa/Kigali] Product SQL with Stock: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    c.category_name,
                    COALESCE((
                        SELECT SUM(si2.quantity) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_quantity,
                    COALESCE((
                        SELECT SUM(si2.total_amount) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_revenue,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * p.unit_price as stock_value
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                WHERE p.is_active = 1 GROUP BY p.product_id ORDER BY total_quantity DESC
[02-Mar-2026 18:06:07 Africa/Kigali] Parameters: 2026-03-01, 2026-03-02, 2026-03-01, 2026-03-02
[02-Mar-2026 18:06:07 Africa/Kigali] Types: ssss
[02-Mar-2026 18:06:07 Africa/Kigali] Category SQL with Stock: 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    COALESCE(SUM(si.quantity), 0) as total_quantity,
                    COALESCE(SUM(si.total_amount), 0) as total_revenue,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * p.unit_price), 0) as stock_value
                FROM pos_categories c
                LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
                LEFT JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                ORDER BY stock_value DESC
[02-Mar-2026 18:06:07 Africa/Kigali] Report generated - Products: 137, Categories: 14
[02-Mar-2026 18:06:07 Africa/Kigali] Total Stock Value: 71970000
[02-Mar-2026 18:07:23 Africa/Kigali] Validating session on init
[02-Mar-2026 18:07:23 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:07:23 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:07:23 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 18:07:23 Africa/Kigali] Session validated successfully
[02-Mar-2026 18:07:23 Africa/Kigali] Product Sales Report with Stock - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 18:07:23 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 18:07:23 Africa/Kigali] Product SQL with Stock: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    c.category_name,
                    COALESCE((
                        SELECT SUM(si2.quantity) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_quantity,
                    COALESCE((
                        SELECT SUM(si2.total_amount) 
                        FROM pos_sale_items si2 
                        LEFT JOIN pos_sales s2 ON si2.sale_id = s2.sale_id 
                        WHERE si2.product_id = p.product_id 
                        AND s2.payment_status = 'completed' 
                        AND DATE(s2.sale_time) BETWEEN ? AND ?
                    ), 0) as total_revenue,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * p.unit_price as stock_value
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                WHERE p.is_active = 1 GROUP BY p.product_id ORDER BY total_quantity DESC
[02-Mar-2026 18:07:23 Africa/Kigali] Parameters: 2026-03-01, 2026-03-02, 2026-03-01, 2026-03-02
[02-Mar-2026 18:07:23 Africa/Kigali] Types: ssss
[02-Mar-2026 18:07:23 Africa/Kigali] Category SQL with Stock: 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    COALESCE(SUM(si.quantity), 0) as total_quantity,
                    COALESCE(SUM(si.total_amount), 0) as total_revenue,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * p.unit_price), 0) as stock_value
                FROM pos_categories c
                LEFT JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                LEFT JOIN pos_sale_items si ON p.product_id = si.product_id
                LEFT JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                ORDER BY stock_value DESC
[02-Mar-2026 18:07:23 Africa/Kigali] Report generated - Products: 137, Categories: 14
[02-Mar-2026 18:07:23 Africa/Kigali] Total Stock Value: 71970000
[02-Mar-2026 19:33:12 Africa/Kigali] Validating session on init
[02-Mar-2026 19:33:12 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:33:12 Africa/Kigali] Session validated successfully
[02-Mar-2026 19:33:12 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:33:12 Africa/Kigali] Session validated successfully
[02-Mar-2026 19:33:12 Africa/Kigali] Product Sales Report with Stock - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 19:33:12 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 19:33:12 Africa/Kigali] Product SQL with Stock (Using JOIN): 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    c.category_name,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * p.unit_price as stock_value
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id ORDER BY total_quantity DESC
[02-Mar-2026 19:33:12 Africa/Kigali] Parameters: 2026-03-01, 2026-03-02
[02-Mar-2026 19:33:12 Africa/Kigali] Types: ss
[02-Mar-2026 19:33:12 Africa/Kigali] Category SQL with Stock (Only Categories with Sales): 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * p.unit_price), 0) as stock_value
                FROM pos_categories c
                JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                HAVING total_quantity > 0
                ORDER BY stock_value DESC
[02-Mar-2026 19:33:12 Africa/Kigali] Report generated - Products with sales: 0, Categories with sales: 0
[02-Mar-2026 19:33:12 Africa/Kigali] Total Stock Value: 0
[02-Mar-2026 19:33:19 Africa/Kigali] Validating session on init
[02-Mar-2026 19:33:19 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:33:19 Africa/Kigali] Session validated successfully
[2026-03-02 19:33:19] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[02-Mar-2026 19:33:19 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[02-Mar-2026 19:33:21 Africa/Kigali] Validating session on init
[02-Mar-2026 19:33:21 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:33:21 Africa/Kigali] Session validated successfully
[2026-03-02 19:33:21] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:33:21 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:33:25 Africa/Kigali] Validating session on init
[02-Mar-2026 19:33:25 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:33:25 Africa/Kigali] Session validated successfully
[2026-03-02 19:33:25] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:33:25 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:34:25 Africa/Kigali] Validating session on init
[02-Mar-2026 19:34:25 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:34:25 Africa/Kigali] Session validated successfully
[2026-03-02 19:34:25] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:34:25 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:34:31 Africa/Kigali] Validating session on init
[02-Mar-2026 19:34:31 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:34:31 Africa/Kigali] Session validated successfully
[2026-03-02 19:34:31] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:34:31 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:34:35 Africa/Kigali] Validating session on init
[02-Mar-2026 19:34:35 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:34:35 Africa/Kigali] Session validated successfully
[02-Mar-2026 19:34:46 Africa/Kigali] Validating session on init
[02-Mar-2026 19:34:46 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:34:46 Africa/Kigali] Session validated successfully
[2026-03-02 19:34:46] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:34:46 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:34:51 Africa/Kigali] Validating session on init
[02-Mar-2026 19:34:51 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:34:51 Africa/Kigali] Session validated successfully
[2026-03-02 19:34:51] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[02-Mar-2026 19:34:51 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[02-Mar-2026 19:34:53 Africa/Kigali] Validating session on init
[02-Mar-2026 19:34:53 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:34:53 Africa/Kigali] Session validated successfully
[02-Mar-2026 19:34:53 Africa/Kigali] Revenue Stats - Total: 1, Revenue: 1852600, Items: 16
[02-Mar-2026 19:34:58 Africa/Kigali] Validating session on init
[02-Mar-2026 19:34:58 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:34:58 Africa/Kigali] Session validated successfully
[02-Mar-2026 19:34:58 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:34:58 Africa/Kigali] Session validated successfully
[02-Mar-2026 19:34:58 Africa/Kigali] Product Sales Report with Stock - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 19:34:58 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 19:34:58 Africa/Kigali] Product SQL with Stock (Using JOIN): 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    c.category_name,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * p.unit_price as stock_value
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id ORDER BY total_quantity DESC
[02-Mar-2026 19:34:58 Africa/Kigali] Parameters: 2026-03-01, 2026-03-02
[02-Mar-2026 19:34:58 Africa/Kigali] Types: ss
[02-Mar-2026 19:34:58 Africa/Kigali] Category SQL with Stock (Only Categories with Sales): 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * p.unit_price), 0) as stock_value
                FROM pos_categories c
                JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                HAVING total_quantity > 0
                ORDER BY stock_value DESC
[02-Mar-2026 19:34:58 Africa/Kigali] Report generated - Products with sales: 5, Categories with sales: 1
[02-Mar-2026 19:34:58 Africa/Kigali] Total Stock Value: 66870000
[02-Mar-2026 19:35:36 Africa/Kigali] Validating session on init
[02-Mar-2026 19:35:36 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:35:36 Africa/Kigali] Session validated successfully
[02-Mar-2026 19:35:36 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:35:36 Africa/Kigali] Session validated successfully
[02-Mar-2026 19:35:36 Africa/Kigali] Product Sales Report with Stock - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 19:35:36 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 19:35:36 Africa/Kigali] Product SQL with Stock (Using JOIN): 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    c.category_name,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * p.unit_price as stock_value
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id ORDER BY total_quantity DESC
[02-Mar-2026 19:35:36 Africa/Kigali] Parameters: 2026-03-01, 2026-03-02
[02-Mar-2026 19:35:36 Africa/Kigali] Types: ss
[02-Mar-2026 19:35:36 Africa/Kigali] Category SQL with Stock (Only Categories with Sales): 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * p.unit_price), 0) as stock_value
                FROM pos_categories c
                JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                HAVING total_quantity > 0
                ORDER BY stock_value DESC
[02-Mar-2026 19:35:36 Africa/Kigali] Report generated - Products with sales: 5, Categories with sales: 1
[02-Mar-2026 19:35:36 Africa/Kigali] Total Stock Value: 66870000
[02-Mar-2026 19:35:37 Africa/Kigali] Validating session on init
[02-Mar-2026 19:35:37 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:35:37 Africa/Kigali] Session validated successfully
[02-Mar-2026 19:35:37 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:35:37 Africa/Kigali] Session validated successfully
[02-Mar-2026 19:35:37 Africa/Kigali] Product Sales Report with Stock - From: 2026-03-01, To: 2026-03-02, Category: All, Outlet: All
[02-Mar-2026 19:35:37 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[02-Mar-2026 19:35:37 Africa/Kigali] Product SQL with Stock (Using JOIN): 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    c.category_name,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * p.unit_price as stock_value
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id ORDER BY total_quantity DESC
[02-Mar-2026 19:35:37 Africa/Kigali] Parameters: 2026-03-01, 2026-03-02
[02-Mar-2026 19:35:37 Africa/Kigali] Types: ss
[02-Mar-2026 19:35:37 Africa/Kigali] Category SQL with Stock (Only Categories with Sales): 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * p.unit_price), 0) as stock_value
                FROM pos_categories c
                JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                HAVING total_quantity > 0
                ORDER BY stock_value DESC
[02-Mar-2026 19:35:37 Africa/Kigali] Report generated - Products with sales: 5, Categories with sales: 1
[02-Mar-2026 19:35:37 Africa/Kigali] Total Stock Value: 66870000
[02-Mar-2026 19:38:44 Africa/Kigali] Validating session on init
[02-Mar-2026 19:38:44 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:38:44 Africa/Kigali] Session validated successfully
[2026-03-02 19:38:44] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[02-Mar-2026 19:38:44 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[02-Mar-2026 19:38:50 Africa/Kigali] Validating session on init
[02-Mar-2026 19:38:50 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:38:50 Africa/Kigali] Session validated successfully
[2026-03-02 19:38:50] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:38:50 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:38:53 Africa/Kigali] Validating session on init
[02-Mar-2026 19:38:53 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:38:53 Africa/Kigali] Session validated successfully
[2026-03-02 19:38:53] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:38:53 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:39:01 Africa/Kigali] Validating session on init
[02-Mar-2026 19:39:01 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:39:01 Africa/Kigali] Session validated successfully
[2026-03-02 19:39:01] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:39:01 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:39:12 Africa/Kigali] Validating session on init
[02-Mar-2026 19:39:12 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:39:12 Africa/Kigali] Session validated successfully
[2026-03-02 19:39:12] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:39:12 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:39:40 Africa/Kigali] Validating session on init
[02-Mar-2026 19:39:40 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:39:40 Africa/Kigali] Session validated successfully
[2026-03-02 19:39:40] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:39:40 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:39:45 Africa/Kigali] Validating session on init
[02-Mar-2026 19:39:45 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:39:45 Africa/Kigali] Session validated successfully
[2026-03-02 19:39:45] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:39:45 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:39:49 Africa/Kigali] Validating session on init
[02-Mar-2026 19:39:49 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:39:49 Africa/Kigali] Session validated successfully
[2026-03-02 19:39:49] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:39:49 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:39:59 Africa/Kigali] Validating session on init
[02-Mar-2026 19:39:59 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:39:59 Africa/Kigali] Session validated successfully
[2026-03-02 19:39:59] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:39:59 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:40:02 Africa/Kigali] Validating session on init
[02-Mar-2026 19:40:02 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:40:02 Africa/Kigali] Session validated successfully
[2026-03-02 19:40:02] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[02-Mar-2026 19:40:02 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[02-Mar-2026 19:40:12 Africa/Kigali] Validating session on init
[02-Mar-2026 19:40:12 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 19:40:12 Africa/Kigali] Session validated successfully
[02-Mar-2026 19:40:12 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 20:14:50 Africa/Kigali] Validating session on init
[02-Mar-2026 20:14:50 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 20:14:50 Africa/Kigali] Session validated successfully
[2026-03-02 20:14:50] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[02-Mar-2026 20:14:50 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[02-Mar-2026 20:14:51 Africa/Kigali] Validating session on init
[02-Mar-2026 20:14:51 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 20:14:51 Africa/Kigali] Session validated successfully
[02-Mar-2026 20:14:51 Africa/Kigali] Revenue Stats - Total: 1, Revenue: 1852600, Items: 16
[02-Mar-2026 20:14:55 Africa/Kigali] Validating session on init
[02-Mar-2026 20:14:55 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 20:14:55 Africa/Kigali] Session validated successfully
[02-Mar-2026 20:15:11 Africa/Kigali] Validating session on init
[02-Mar-2026 20:15:11 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 20:15:11 Africa/Kigali] Session validated successfully
[2026-03-02 20:15:11] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[02-Mar-2026 20:15:11 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[02-Mar-2026 20:15:13 Africa/Kigali] Validating session on init
[02-Mar-2026 20:15:13 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 20:15:13 Africa/Kigali] Session validated successfully
[02-Mar-2026 20:15:13 Africa/Kigali] Created new PDO connection using constants
[02-Mar-2026 20:15:25 Africa/Kigali] Validating session on init
[02-Mar-2026 20:15:25 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 20:15:25 Africa/Kigali] Session validated successfully
[02-Mar-2026 20:15:37 Africa/Kigali] Validating session on init
[02-Mar-2026 20:15:37 Africa/Kigali] require_auth called - Checking session
[02-Mar-2026 20:15:37 Africa/Kigali] Session validated successfully
[02-Mar-2026 20:15:37 Africa/Kigali] Created new PDO connection using constants
[04-Mar-2026 15:15:20 Africa/Kigali] Login attempt - Username: superadmin
[04-Mar-2026 15:15:20 Africa/Kigali] User found: Yes
[04-Mar-2026 15:15:20 Africa/Kigali] Login successful for user: superadmin
[04-Mar-2026 15:15:20 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[04-Mar-2026 15:15:20 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-03-04 15:15:20] [INFO] Successful login for user: superadmin
[04-Mar-2026 15:15:20 Africa/Kigali] Validating session on init
[04-Mar-2026 15:15:20 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:15:20 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:15:29 Africa/Kigali] Validating session on init
[04-Mar-2026 15:15:29 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:15:29 Africa/Kigali] Session validated successfully
[2026-03-04 15:15:29] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[04-Mar-2026 15:15:29 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[04-Mar-2026 15:15:30 Africa/Kigali] Validating session on init
[04-Mar-2026 15:15:30 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:15:30 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:15:30 Africa/Kigali] Revenue Stats - Total: 1, Revenue: 1852600, Items: 16
[04-Mar-2026 15:15:38 Africa/Kigali] Validating session on init
[04-Mar-2026 15:15:38 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:15:38 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:15:46 Africa/Kigali] Validating session on init
[04-Mar-2026 15:15:46 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:15:46 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:15:46 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:15:46 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:15:46 Africa/Kigali] Product Sales Report with Stock - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 15:15:46 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 15:15:46 Africa/Kigali] Product SQL with Stock (Using JOIN): 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    c.category_name,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * p.unit_price as stock_value
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id ORDER BY total_quantity DESC
[04-Mar-2026 15:15:46 Africa/Kigali] Parameters: 2026-03-01, 2026-03-04
[04-Mar-2026 15:15:46 Africa/Kigali] Types: ss
[04-Mar-2026 15:15:46 Africa/Kigali] Category SQL with Stock (Only Categories with Sales): 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * p.unit_price), 0) as stock_value
                FROM pos_categories c
                JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                HAVING total_quantity > 0
                ORDER BY stock_value DESC
[04-Mar-2026 15:15:46 Africa/Kigali] Report generated - Products with sales: 5, Categories with sales: 1
[04-Mar-2026 15:15:46 Africa/Kigali] Total Stock Value: 66870000
[04-Mar-2026 15:27:20 Africa/Kigali] Validating session on init
[04-Mar-2026 15:27:20 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:27:20 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:27:20 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:27:20 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:27:20 Africa/Kigali] Product Sales Report with Profit - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 15:27:20 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 15:27:20 Africa/Kigali] Product SQL with Profit (Using JOIN): 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id ORDER BY total_profit DESC
[04-Mar-2026 15:27:20 Africa/Kigali] Parameters: 2026-03-01, 2026-03-04
[04-Mar-2026 15:27:20 Africa/Kigali] Types: ss
[04-Mar-2026 15:27:20 Africa/Kigali] Category SQL with Profit (Only Categories with Sales): 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * COALESCE(p.cost_price, p.unit_price * 0.7)), 0) as stock_cost_value,
                    COALESCE(SUM(p.current_stock * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7))), 0) as potential_profit
                FROM pos_categories c
                JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                HAVING total_quantity > 0
                ORDER BY total_profit DESC
[04-Mar-2026 15:27:20 Africa/Kigali] Report generated - Products with sales: 5, Categories with sales: 1
[04-Mar-2026 15:27:20 Africa/Kigali] Total Profit: 471000
[04-Mar-2026 15:27:20 Africa/Kigali] Total Stock Value: 46809000
[04-Mar-2026 15:27:20 Africa/Kigali] Potential Profit: 20061000
[04-Mar-2026 15:27:55 Africa/Kigali] Validating session on init
[04-Mar-2026 15:27:55 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:27:55 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:27:55 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:27:55 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:27:55 Africa/Kigali] Product Sales Report with Profit - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 15:27:55 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 15:27:55 Africa/Kigali] Product SQL with Profit (Using JOIN): 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id ORDER BY total_profit DESC
[04-Mar-2026 15:27:55 Africa/Kigali] Parameters: 2026-03-01, 2026-03-04
[04-Mar-2026 15:27:55 Africa/Kigali] Types: ss
[04-Mar-2026 15:27:55 Africa/Kigali] Category SQL with Profit (Only Categories with Sales): 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * COALESCE(p.cost_price, p.unit_price * 0.7)), 0) as stock_cost_value,
                    COALESCE(SUM(p.current_stock * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7))), 0) as potential_profit
                FROM pos_categories c
                JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                HAVING total_quantity > 0
                ORDER BY total_profit DESC
[04-Mar-2026 15:27:55 Africa/Kigali] Report generated - Products with sales: 5, Categories with sales: 1
[04-Mar-2026 15:27:55 Africa/Kigali] Total Profit: 471000
[04-Mar-2026 15:27:55 Africa/Kigali] Total Stock Value: 46809000
[04-Mar-2026 15:27:55 Africa/Kigali] Potential Profit: 20061000
[04-Mar-2026 15:28:00 Africa/Kigali] Validating session on init
[04-Mar-2026 15:28:00 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:28:00 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:28:00 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:28:00 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:28:00 Africa/Kigali] Product Sales Report with Profit - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 15:28:00 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 15:28:00 Africa/Kigali] Product SQL with Profit (Using JOIN): 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id ORDER BY total_profit DESC
[04-Mar-2026 15:28:00 Africa/Kigali] Parameters: 2026-03-01, 2026-03-04
[04-Mar-2026 15:28:00 Africa/Kigali] Types: ss
[04-Mar-2026 15:28:00 Africa/Kigali] Category SQL with Profit (Only Categories with Sales): 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * COALESCE(p.cost_price, p.unit_price * 0.7)), 0) as stock_cost_value,
                    COALESCE(SUM(p.current_stock * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7))), 0) as potential_profit
                FROM pos_categories c
                JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                HAVING total_quantity > 0
                ORDER BY total_profit DESC
[04-Mar-2026 15:28:00 Africa/Kigali] Report generated - Products with sales: 5, Categories with sales: 1
[04-Mar-2026 15:28:00 Africa/Kigali] Total Profit: 471000
[04-Mar-2026 15:28:00 Africa/Kigali] Total Stock Value: 46809000
[04-Mar-2026 15:28:00 Africa/Kigali] Potential Profit: 20061000
[04-Mar-2026 15:37:13 Africa/Kigali] Validating session on init
[04-Mar-2026 15:37:13 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:37:13 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:37:13 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:37:13 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:37:13 Africa/Kigali] Product Sales Report with Profit - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 15:37:13 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 15:37:13 Africa/Kigali] Product SQL with Profit (Using JOIN): 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id ORDER BY total_profit DESC
[04-Mar-2026 15:37:13 Africa/Kigali] Parameters: 2026-03-01, 2026-03-04
[04-Mar-2026 15:37:13 Africa/Kigali] Types: ss
[04-Mar-2026 15:37:13 Africa/Kigali] Category SQL with Profit (Only Categories with Sales): 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * COALESCE(p.cost_price, p.unit_price * 0.7)), 0) as stock_cost_value,
                    COALESCE(SUM(p.current_stock * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7))), 0) as potential_profit
                FROM pos_categories c
                JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                HAVING total_quantity > 0
                ORDER BY total_profit DESC
[04-Mar-2026 15:37:13 Africa/Kigali] Report generated - Products with sales: 5, Categories with sales: 1
[04-Mar-2026 15:37:13 Africa/Kigali] Total Profit: 522000
[04-Mar-2026 15:37:13 Africa/Kigali] Total Stock Value: 44090000
[04-Mar-2026 15:37:13 Africa/Kigali] Potential Profit: 22780000
[04-Mar-2026 15:37:16 Africa/Kigali] Validating session on init
[04-Mar-2026 15:37:16 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:37:16 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:37:16 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:37:16 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:37:16 Africa/Kigali] Product Sales Report with Profit - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 15:37:16 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 15:37:16 Africa/Kigali] Product SQL with Profit (Using JOIN): 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id ORDER BY total_profit DESC
[04-Mar-2026 15:37:16 Africa/Kigali] Parameters: 2026-03-01, 2026-03-04
[04-Mar-2026 15:37:16 Africa/Kigali] Types: ss
[04-Mar-2026 15:37:16 Africa/Kigali] Category SQL with Profit (Only Categories with Sales): 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * COALESCE(p.cost_price, p.unit_price * 0.7)), 0) as stock_cost_value,
                    COALESCE(SUM(p.current_stock * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7))), 0) as potential_profit
                FROM pos_categories c
                JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                HAVING total_quantity > 0
                ORDER BY total_profit DESC
[04-Mar-2026 15:37:16 Africa/Kigali] Report generated - Products with sales: 5, Categories with sales: 1
[04-Mar-2026 15:37:16 Africa/Kigali] Total Profit: 522000
[04-Mar-2026 15:37:16 Africa/Kigali] Total Stock Value: 44090000
[04-Mar-2026 15:37:16 Africa/Kigali] Potential Profit: 22780000
[04-Mar-2026 15:37:22 Africa/Kigali] Validating session on init
[04-Mar-2026 15:37:22 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:37:22 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:37:22 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:37:22 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:37:22 Africa/Kigali] Product Sales Report with Profit - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 15:37:22 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 15:37:22 Africa/Kigali] Product SQL with Profit (Using JOIN): 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id ORDER BY total_profit DESC
[04-Mar-2026 15:37:22 Africa/Kigali] Parameters: 2026-03-01, 2026-03-04
[04-Mar-2026 15:37:22 Africa/Kigali] Types: ss
[04-Mar-2026 15:37:22 Africa/Kigali] Category SQL with Profit (Only Categories with Sales): 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * COALESCE(p.cost_price, p.unit_price * 0.7)), 0) as stock_cost_value,
                    COALESCE(SUM(p.current_stock * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7))), 0) as potential_profit
                FROM pos_categories c
                JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                HAVING total_quantity > 0
                ORDER BY total_profit DESC
[04-Mar-2026 15:37:22 Africa/Kigali] Report generated - Products with sales: 5, Categories with sales: 1
[04-Mar-2026 15:37:22 Africa/Kigali] Total Profit: 522000
[04-Mar-2026 15:37:22 Africa/Kigali] Total Stock Value: 44090000
[04-Mar-2026 15:37:22 Africa/Kigali] Potential Profit: 22780000
[04-Mar-2026 15:37:24 Africa/Kigali] Validating session on init
[04-Mar-2026 15:37:24 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:37:24 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:37:24 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:37:24 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:37:24 Africa/Kigali] Product Sales Report with Profit - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 15:37:24 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 15:37:24 Africa/Kigali] Product SQL with Profit (Using JOIN): 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) as remaining_stock,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id ORDER BY total_profit DESC
[04-Mar-2026 15:37:24 Africa/Kigali] Parameters: 2026-03-01, 2026-03-04
[04-Mar-2026 15:37:24 Africa/Kigali] Types: ss
[04-Mar-2026 15:37:24 Africa/Kigali] Category SQL with Profit (Only Categories with Sales): 
                SELECT 
                    c.category_id, 
                    c.category_name,
                    COUNT(DISTINCT p.product_id) as product_count,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(SUM(p.current_stock), 0) as total_stock,
                    COALESCE(SUM(p.current_stock * COALESCE(p.cost_price, p.unit_price * 0.7)), 0) as stock_cost_value,
                    COALESCE(SUM(p.current_stock * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7))), 0) as potential_profit
                FROM pos_categories c
                JOIN pos_products p ON c.category_id = p.category_id AND p.is_active = 1
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id 
                    AND s.payment_status = 'completed' 
                    AND DATE(s.sale_time) BETWEEN ? AND ?
                WHERE c.is_active = 1
                GROUP BY c.category_id
                HAVING total_quantity > 0
                ORDER BY total_profit DESC
[04-Mar-2026 15:37:24 Africa/Kigali] Report generated - Products with sales: 5, Categories with sales: 1
[04-Mar-2026 15:37:24 Africa/Kigali] Total Profit: 522000
[04-Mar-2026 15:37:24 Africa/Kigali] Total Stock Value: 44090000
[04-Mar-2026 15:37:24 Africa/Kigali] Potential Profit: 22780000
[04-Mar-2026 15:46:17 Africa/Kigali] Validating session on init
[04-Mar-2026 15:46:17 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:46:17 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:46:17 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:46:17 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:46:17 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 15:46:17 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 15:46:17 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[04-Mar-2026 15:46:17 Africa/Kigali] Report generated - Products with sales: 5, Categories: 1
[04-Mar-2026 15:46:17 Africa/Kigali] Opening Stock: 0, Received: 497, Closing: 481
[04-Mar-2026 15:46:17 Africa/Kigali] Total Profit: 522000
[04-Mar-2026 15:46:17 Africa/Kigali] Stock Turnover: 0.066528066528067
[04-Mar-2026 15:46:30 Africa/Kigali] Validating session on init
[04-Mar-2026 15:46:30 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:46:30 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:46:30 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:46:30 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:46:30 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 15:46:30 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 15:46:30 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[04-Mar-2026 15:46:30 Africa/Kigali] Report generated - Products with sales: 5, Categories: 1
[04-Mar-2026 15:46:30 Africa/Kigali] Opening Stock: 0, Received: 497, Closing: 481
[04-Mar-2026 15:46:30 Africa/Kigali] Total Profit: 522000
[04-Mar-2026 15:46:30 Africa/Kigali] Stock Turnover: 0.066528066528067
[04-Mar-2026 15:46:33 Africa/Kigali] Validating session on init
[04-Mar-2026 15:46:33 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:46:33 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:46:33 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:46:33 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:46:33 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 15:46:33 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 15:46:33 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[04-Mar-2026 15:46:33 Africa/Kigali] Report generated - Products with sales: 5, Categories: 1
[04-Mar-2026 15:46:33 Africa/Kigali] Opening Stock: 0, Received: 497, Closing: 481
[04-Mar-2026 15:46:33 Africa/Kigali] Total Profit: 522000
[04-Mar-2026 15:46:33 Africa/Kigali] Stock Turnover: 0.066528066528067
[04-Mar-2026 15:53:21 Africa/Kigali] Validating session on init
[04-Mar-2026 15:53:21 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:53:21 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:53:21 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:53:21 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:53:35 Africa/Kigali] Validating session on init
[04-Mar-2026 15:53:35 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:53:35 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:53:35 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:53:35 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:53:37 Africa/Kigali] Validating session on init
[04-Mar-2026 15:53:37 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:53:37 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:53:37 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:53:37 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:54:15 Africa/Kigali] Validating session on init
[04-Mar-2026 15:54:15 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:54:15 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:54:15 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 15:54:15 Africa/Kigali] Session validated successfully
[04-Mar-2026 15:54:15 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 15:54:15 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 15:54:15 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[04-Mar-2026 15:54:15 Africa/Kigali] Report generated - Products with sales: 5, Categories: 1
[04-Mar-2026 15:54:15 Africa/Kigali] Opening Stock: 0, Received: 497, Closing: 481
[04-Mar-2026 15:54:15 Africa/Kigali] Total Profit: 522000
[04-Mar-2026 15:54:15 Africa/Kigali] Stock Turnover: 0.066528066528067
[04-Mar-2026 16:09:28 Africa/Kigali] Validating session on init
[04-Mar-2026 16:09:28 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:09:28 Africa/Kigali] Session validated successfully
[2026-03-04 16:09:28] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:09:28 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:09:34 Africa/Kigali] Validating session on init
[04-Mar-2026 16:09:34 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:09:34 Africa/Kigali] Session validated successfully
[2026-03-04 16:09:34] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:09:34 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:09:43 Africa/Kigali] Validating session on init
[04-Mar-2026 16:09:43 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:09:43 Africa/Kigali] Session validated successfully
[2026-03-04 16:09:43] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:09:43 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:10:51 Africa/Kigali] Validating session on init
[04-Mar-2026 16:10:51 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:10:51 Africa/Kigali] Session validated successfully
[2026-03-04 16:10:51] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:10:51 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:22:49 Africa/Kigali] Validating session on init
[04-Mar-2026 16:22:49 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:22:49 Africa/Kigali] Session validated successfully
[2026-03-04 16:22:49] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:22:49 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:22:52 Africa/Kigali] Validating session on init
[04-Mar-2026 16:22:52 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:22:52 Africa/Kigali] Session validated successfully
[2026-03-04 16:22:52] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:22:52 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:00 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:00 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:00 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:00] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:00 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:02 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:02 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:02 Africa/Kigali] Session validated successfully
[04-Mar-2026 16:23:11 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:11 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:11 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:11] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:11 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:18 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:18 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:18 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:18] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:18 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:20 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:20 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:20 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:20] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:20 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:22 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:22 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:22 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:22] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:22 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:24 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:24 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:24 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:24] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:24 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:27 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:27 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:27 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:27] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:27 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:37 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:37 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:37 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:37] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:37 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:40 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:40 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:40 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:40] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:40 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:42 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:42 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:42 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:42] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:42 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:45 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:45 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:45 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:45] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:45 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:47 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:47 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:47 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:47] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:47 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:49 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:49 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:49 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:49] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:49 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:52 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:52 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:52 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:52] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:52 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:23:54 Africa/Kigali] Validating session on init
[04-Mar-2026 16:23:54 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:23:54 Africa/Kigali] Session validated successfully
[2026-03-04 16:23:54] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:23:54 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:24:07 Africa/Kigali] Validating session on init
[04-Mar-2026 16:24:07 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:24:07 Africa/Kigali] Session validated successfully
[2026-03-04 16:24:07] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:24:07 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:24:10 Africa/Kigali] Validating session on init
[04-Mar-2026 16:24:10 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:24:10 Africa/Kigali] Session validated successfully
[2026-03-04 16:24:10] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[04-Mar-2026 16:24:10 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[04-Mar-2026 16:24:26 Africa/Kigali] Validating session on init
[04-Mar-2026 16:24:26 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:24:26 Africa/Kigali] Session validated successfully
[04-Mar-2026 16:24:38 Africa/Kigali] Validating session on init
[04-Mar-2026 16:24:38 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:24:38 Africa/Kigali] Session validated successfully
[2026-03-04 16:24:38] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[04-Mar-2026 16:24:38 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[04-Mar-2026 16:24:39 Africa/Kigali] Validating session on init
[04-Mar-2026 16:24:39 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:24:39 Africa/Kigali] Session validated successfully
[04-Mar-2026 16:24:39 Africa/Kigali] Revenue Stats - Total: 3, Revenue: 2083290, Items: 30
[04-Mar-2026 16:24:43 Africa/Kigali] Validating session on init
[04-Mar-2026 16:24:43 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:24:43 Africa/Kigali] Session validated successfully
[04-Mar-2026 16:25:06 Africa/Kigali] Validating session on init
[04-Mar-2026 16:25:06 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:25:06 Africa/Kigali] Session validated successfully
[2026-03-04 16:25:06] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[04-Mar-2026 16:25:06 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[04-Mar-2026 16:25:08 Africa/Kigali] Validating session on init
[04-Mar-2026 16:25:08 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:25:08 Africa/Kigali] Session validated successfully
[04-Mar-2026 16:25:08 Africa/Kigali] Revenue Stats - Total: 3, Revenue: 2083290, Items: 30
[04-Mar-2026 16:25:09 Africa/Kigali] Validating session on init
[04-Mar-2026 16:25:09 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:25:09 Africa/Kigali] Session validated successfully
[04-Mar-2026 16:25:09 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:25:09 Africa/Kigali] Session validated successfully
[04-Mar-2026 16:25:09 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 16:25:09 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 16:25:09 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[04-Mar-2026 16:25:09 Africa/Kigali] Report generated - Products with sales: 18, Categories: 7
[04-Mar-2026 16:25:09 Africa/Kigali] Opening Stock: 0, Received: 609, Closing: 579
[04-Mar-2026 16:25:09 Africa/Kigali] Total Profit: 581650
[04-Mar-2026 16:25:09 Africa/Kigali] Stock Turnover: 0.10362694300518
[04-Mar-2026 16:25:25 Africa/Kigali] Validating session on init
[04-Mar-2026 16:25:25 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:25:25 Africa/Kigali] Session validated successfully
[04-Mar-2026 16:25:25 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:25:25 Africa/Kigali] Session validated successfully
[04-Mar-2026 16:25:25 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-04, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 16:25:25 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 16:25:25 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[04-Mar-2026 16:25:25 Africa/Kigali] Report generated - Products with sales: 14, Categories: 7
[04-Mar-2026 16:25:25 Africa/Kigali] Opening Stock: 0, Received: 204, Closing: 190
[04-Mar-2026 16:25:25 Africa/Kigali] Total Profit: 59650
[04-Mar-2026 16:25:25 Africa/Kigali] Stock Turnover: 0.14736842105263
[04-Mar-2026 16:25:27 Africa/Kigali] Validating session on init
[04-Mar-2026 16:25:27 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:25:27 Africa/Kigali] Session validated successfully
[04-Mar-2026 16:25:27 Africa/Kigali] require_auth called - Checking session
[04-Mar-2026 16:25:27 Africa/Kigali] Session validated successfully
[04-Mar-2026 16:25:27 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-04, To: 2026-03-04, Category: All, Outlet: All
[04-Mar-2026 16:25:27 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[04-Mar-2026 16:25:27 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[04-Mar-2026 16:25:27 Africa/Kigali] Report generated - Products with sales: 14, Categories: 7
[04-Mar-2026 16:25:27 Africa/Kigali] Opening Stock: 0, Received: 204, Closing: 190
[04-Mar-2026 16:25:27 Africa/Kigali] Total Profit: 59650
[04-Mar-2026 16:25:27 Africa/Kigali] Stock Turnover: 0.14736842105263
[05-Mar-2026 11:53:29 Africa/Kigali] Login attempt - Username: superadmin
[05-Mar-2026 11:53:29 Africa/Kigali] User found: Yes
[05-Mar-2026 11:53:29 Africa/Kigali] Login successful for user: superadmin
[05-Mar-2026 11:53:29 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[05-Mar-2026 11:53:29 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-03-05 11:53:29] [INFO] Successful login for user: superadmin
[05-Mar-2026 11:53:29 Africa/Kigali] Validating session on init
[05-Mar-2026 11:53:29 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 11:53:29 Africa/Kigali] Session validated successfully
[05-Mar-2026 11:53:36 Africa/Kigali] Validating session on init
[05-Mar-2026 11:53:36 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 11:53:36 Africa/Kigali] Session validated successfully
[2026-03-05 11:53:36] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[05-Mar-2026 11:53:36 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[05-Mar-2026 11:53:38 Africa/Kigali] Validating session on init
[05-Mar-2026 11:53:38 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 11:53:38 Africa/Kigali] Session validated successfully
[05-Mar-2026 11:53:38 Africa/Kigali] Revenue Stats - Total: 3, Revenue: 2083290, Items: 30
[05-Mar-2026 11:54:06 Africa/Kigali] Validating session on init
[05-Mar-2026 11:54:06 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 11:54:06 Africa/Kigali] Session validated successfully
[05-Mar-2026 11:54:30 Africa/Kigali] Validating session on init
[05-Mar-2026 11:54:30 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 11:54:30 Africa/Kigali] Session validated successfully
[2026-03-05 11:54:30] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[05-Mar-2026 11:54:30 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[05-Mar-2026 11:54:32 Africa/Kigali] Validating session on init
[05-Mar-2026 11:54:32 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 11:54:32 Africa/Kigali] Session validated successfully
[05-Mar-2026 11:54:32 Africa/Kigali] Revenue Stats - Total: 3, Revenue: 2083290, Items: 30
[05-Mar-2026 11:54:34 Africa/Kigali] Validating session on init
[05-Mar-2026 11:54:34 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 11:54:34 Africa/Kigali] Session validated successfully
[05-Mar-2026 11:54:34 Africa/Kigali] Daily Sales Report - Date: 2026-03-05, Outlet ID: All
[05-Mar-2026 11:54:34 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[05-Mar-2026 11:54:34 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[05-Mar-2026 11:54:34 Africa/Kigali] Found 0 transactions
[05-Mar-2026 11:54:34 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[05-Mar-2026 11:54:43 Africa/Kigali] Validating session on init
[05-Mar-2026 11:54:43 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 11:54:43 Africa/Kigali] Session validated successfully
[05-Mar-2026 11:54:43 Africa/Kigali] Daily Sales Report - Date: 2026-02-19, Outlet ID: All
[05-Mar-2026 11:54:43 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[05-Mar-2026 11:54:43 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[05-Mar-2026 11:54:43 Africa/Kigali] Found 0 transactions
[05-Mar-2026 11:54:43 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[05-Mar-2026 11:54:44 Africa/Kigali] Validating session on init
[05-Mar-2026 11:54:44 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 11:54:44 Africa/Kigali] Session validated successfully
[05-Mar-2026 11:54:44 Africa/Kigali] Daily Sales Report - Date: 2026-02-19, Outlet ID: All
[05-Mar-2026 11:54:44 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[05-Mar-2026 11:54:44 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[05-Mar-2026 11:54:44 Africa/Kigali] Found 0 transactions
[05-Mar-2026 11:54:44 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[05-Mar-2026 11:54:46 Africa/Kigali] Validating session on init
[05-Mar-2026 11:54:46 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 11:54:46 Africa/Kigali] Session validated successfully
[05-Mar-2026 11:54:46 Africa/Kigali] Daily Sales Report - Date: 2026-02-19, Outlet ID: All
[05-Mar-2026 11:54:46 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[05-Mar-2026 11:54:46 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[05-Mar-2026 11:54:46 Africa/Kigali] Found 0 transactions
[05-Mar-2026 11:54:46 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[05-Mar-2026 12:22:00 Africa/Kigali] Validating session on init
[05-Mar-2026 12:22:00 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 12:22:00 Africa/Kigali] Session validated successfully
[2026-03-05 12:22:00] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[05-Mar-2026 12:22:00 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[05-Mar-2026 12:22:02 Africa/Kigali] Validating session on init
[05-Mar-2026 12:22:02 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 12:22:02 Africa/Kigali] Session validated successfully
[05-Mar-2026 12:22:02 Africa/Kigali] Revenue Stats - Total: 3, Revenue: 2083290, Items: 30
[05-Mar-2026 12:22:04 Africa/Kigali] Validating session on init
[05-Mar-2026 12:22:04 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 12:22:04 Africa/Kigali] Session validated successfully
[05-Mar-2026 12:22:04 Africa/Kigali] Daily Sales Report - Date: 2026-03-05, Outlet ID: All
[05-Mar-2026 12:22:04 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[05-Mar-2026 12:22:04 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[05-Mar-2026 12:22:04 Africa/Kigali] Found 0 transactions
[05-Mar-2026 12:22:04 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[05-Mar-2026 13:05:21 Africa/Kigali] Validating session on init
[05-Mar-2026 13:05:21 Africa/Kigali] require_auth called - Checking session
[05-Mar-2026 13:05:21 Africa/Kigali] Session validated successfully
[05-Mar-2026 13:05:21 Africa/Kigali] Daily Sales Report - Date: 2026-03-05, Outlet ID: All
[05-Mar-2026 13:05:21 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[05-Mar-2026 13:05:21 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[05-Mar-2026 13:05:21 Africa/Kigali] Found 0 transactions
[05-Mar-2026 13:05:21 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[07-Mar-2026 12:08:38 Africa/Kigali] Login attempt - Username: superadmin
[07-Mar-2026 12:08:38 Africa/Kigali] User found: Yes
[07-Mar-2026 12:08:38 Africa/Kigali] Login successful for user: superadmin
[07-Mar-2026 12:08:38 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[07-Mar-2026 12:08:38 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-03-07 12:08:38] [INFO] Successful login for user: superadmin
[07-Mar-2026 12:08:38 Africa/Kigali] Validating session on init
[07-Mar-2026 12:08:38 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 12:08:38 Africa/Kigali] Session validated successfully
[07-Mar-2026 12:09:04 Africa/Kigali] Validating session on init
[07-Mar-2026 12:09:04 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 12:09:04 Africa/Kigali] Session validated successfully
[07-Mar-2026 12:09:07 Africa/Kigali] Validating session on init
[07-Mar-2026 12:09:07 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 12:09:07 Africa/Kigali] Session validated successfully
[07-Mar-2026 12:09:13 Africa/Kigali] Validating session on init
[07-Mar-2026 12:09:13 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 12:09:13 Africa/Kigali] Session validated successfully
[07-Mar-2026 12:09:21 Africa/Kigali] Validating session on init
[07-Mar-2026 12:09:21 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 12:09:21 Africa/Kigali] Session validated successfully
[07-Mar-2026 12:09:43 Africa/Kigali] Validating session on init
[07-Mar-2026 12:09:43 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 12:09:43 Africa/Kigali] Session validated successfully
[07-Mar-2026 12:09:59 Africa/Kigali] Validating session on init
[07-Mar-2026 12:09:59 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 12:09:59 Africa/Kigali] Session validated successfully
[07-Mar-2026 12:10:07 Africa/Kigali] Validating session on init
[07-Mar-2026 12:10:07 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 12:10:07 Africa/Kigali] Session validated successfully
[07-Mar-2026 12:10:10 Africa/Kigali] Validating session on init
[07-Mar-2026 12:10:16 Africa/Kigali] Validating session on init
[07-Mar-2026 12:10:26 Africa/Kigali] Validating session on init
[07-Mar-2026 12:10:31 Africa/Kigali] Validating session on init
[07-Mar-2026 12:10:49 Africa/Kigali] Validating session on init
[07-Mar-2026 12:11:08 Africa/Kigali] Validating session on init
[07-Mar-2026 12:27:20 Africa/Kigali] Validating session on init
[07-Mar-2026 12:27:22 Africa/Kigali] Validating session on init
[07-Mar-2026 12:27:39 Africa/Kigali] Validating session on init
[07-Mar-2026 12:48:00 Africa/Kigali] Validating session on init
[07-Mar-2026 12:48:03 Africa/Kigali] Validating session on init
[07-Mar-2026 12:48:06 Africa/Kigali] Validating session on init
[2026-03-07 12:48:06] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 12:48:06 Africa/Kigali] Error auto-creating invoice: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 12:48:09 Africa/Kigali] Validating session on init
[2026-03-07 12:48:09] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 12:48:09 Africa/Kigali] Error auto-creating invoice: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 12:48:11 Africa/Kigali] Validating session on init
[2026-03-07 12:48:11] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 12:48:11 Africa/Kigali] Error auto-creating invoice: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 12:48:26 Africa/Kigali] Validating session on init
[07-Mar-2026 12:48:46 Africa/Kigali] Validating session on init
[2026-03-07 12:48:46] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 12:48:46 Africa/Kigali] Error auto-creating invoice: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 12:49:02 Africa/Kigali] Validating session on init
[07-Mar-2026 12:54:40 Africa/Kigali] Validating session on init
[07-Mar-2026 13:11:35 Africa/Kigali] Validating session on init
[07-Mar-2026 13:11:35 Africa/Kigali] Validating session on init
[07-Mar-2026 13:11:35 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:11:35 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:11:39 Africa/Kigali] Validating session on init
[07-Mar-2026 13:11:39 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:11:39 Africa/Kigali] Session validated successfully
[2026-03-07 13:11:39] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[07-Mar-2026 13:11:39 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[07-Mar-2026 13:11:40 Africa/Kigali] Validating session on init
[07-Mar-2026 13:11:40 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:11:40 Africa/Kigali] Session validated successfully
[2026-03-07 13:11:40] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[07-Mar-2026 13:11:40 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[07-Mar-2026 13:12:04 Africa/Kigali] Validating session on init
[07-Mar-2026 13:12:04 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:12:04 Africa/Kigali] Session validated successfully
[2026-03-07 13:12:04] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[07-Mar-2026 13:12:04 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[07-Mar-2026 13:12:07 Africa/Kigali] Validating session on init
[07-Mar-2026 13:12:07 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:12:07 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:12:07 Africa/Kigali] Revenue Stats - Total: 3, Revenue: 2083290, Items: 30
[07-Mar-2026 13:12:12 Africa/Kigali] Validating session on init
[07-Mar-2026 13:12:12 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:12:12 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:12:12 Africa/Kigali] Daily Sales Report - Date: 2026-03-07, Outlet ID: All
[07-Mar-2026 13:12:12 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[07-Mar-2026 13:12:12 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[07-Mar-2026 13:12:12 Africa/Kigali] Found 0 transactions
[07-Mar-2026 13:12:12 Africa/Kigali] Report Summary - Transactions: 0, Total Sales: 0
[07-Mar-2026 13:12:23 Africa/Kigali] Validating session on init
[07-Mar-2026 13:12:23 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:12:23 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:12:23 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:12:23 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:12:23 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-07, Category: All, Outlet: All
[07-Mar-2026 13:12:23 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[07-Mar-2026 13:12:23 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[07-Mar-2026 13:12:23 Africa/Kigali] Report generated - Products with sales: 18, Categories: 7
[07-Mar-2026 13:12:23 Africa/Kigali] Opening Stock: 0, Received: 609, Closing: 579
[07-Mar-2026 13:12:23 Africa/Kigali] Total Profit: 581650
[07-Mar-2026 13:12:23 Africa/Kigali] Stock Turnover: 0.10362694300518
[07-Mar-2026 13:14:21 Africa/Kigali] Validating session on init
[07-Mar-2026 13:14:31 Africa/Kigali] Validating session on init
[2026-03-07 13:14:31] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 13:14:31 Africa/Kigali] Invoice creation error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 13:23:34 Africa/Kigali] Validating session on init
[07-Mar-2026 13:23:38 Africa/Kigali] Validating session on init
[07-Mar-2026 13:23:38 Africa/Kigali] Inserting invoice with data: Array
(
    [invoice_number] => INV-20260307-8226
    [guest_id] => 15
    [reservation_id] => 19
    [invoice_date] => 2026-03-07
    [due_date] => 2026-04-06
    [total_amount] => 708
    [paid_amount] => 0
    [status] => pending
    [notes] => 
    [created_by] => 1
    [created_at] => 2026-03-07 13:23:38
)

[2026-03-07 13:23:38] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 13:23:38 Africa/Kigali] Invoice creation error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 13:23:38 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(128): PDOStatement->execute(Array)
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/billing/invoices/create.php(355): db_insert('invoices', Array)
#2 {main}
[07-Mar-2026 13:23:44 Africa/Kigali] Validating session on init
[07-Mar-2026 13:23:47 Africa/Kigali] Validating session on init
[07-Mar-2026 13:24:00 Africa/Kigali] Validating session on init
[07-Mar-2026 13:24:00 Africa/Kigali] Inserting invoice with data: Array
(
    [invoice_number] => INV-20260307-6421
    [guest_id] => 15
    [reservation_id] => 19
    [invoice_date] => 2026-03-07
    [due_date] => 2026-04-06
    [total_amount] => 708
    [paid_amount] => 0
    [status] => pending
    [notes] => 
    [created_by] => 1
    [created_at] => 2026-03-07 13:24:00
)

[2026-03-07 13:24:00] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 13:24:00 Africa/Kigali] Invoice creation error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 13:24:00 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(128): PDOStatement->execute(Array)
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/billing/invoices/create.php(355): db_insert('invoices', Array)
#2 {main}
[07-Mar-2026 13:50:07 Africa/Kigali] Validating session on init
[07-Mar-2026 13:50:18 Africa/Kigali] Validating session on init
[07-Mar-2026 13:50:18 Africa/Kigali] Trying status: pending
[2026-03-07 13:50:18] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 13:50:18 Africa/Kigali] Failed with status pending: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 13:50:18 Africa/Kigali] Trying status: Pending
[2026-03-07 13:50:18] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 13:50:18 Africa/Kigali] Failed with status Pending: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 13:50:18 Africa/Kigali] Trying status: PENDING
[2026-03-07 13:50:18] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 13:50:18 Africa/Kigali] Failed with status PENDING: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 13:50:18 Africa/Kigali] Trying status: unpaid
[2026-03-07 13:50:18] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 13:50:18 Africa/Kigali] Failed with status unpaid: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 13:50:18 Africa/Kigali] Trying status: Unpaid
[2026-03-07 13:50:18] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 13:50:18 Africa/Kigali] Failed with status Unpaid: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 13:50:18 Africa/Kigali] Trying status: UNPAID
[2026-03-07 13:50:18] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 13:50:18 Africa/Kigali] Failed with status UNPAID: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 13:50:18 Africa/Kigali] Trying status: draft
[07-Mar-2026 13:50:18 Africa/Kigali] SUCCESS with status: draft
[2026-03-07 13:50:18] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'total_price' in 'field list' SQL: INSERT INTO invoice_items (invoice_id, description, quantity, unit_price, total_price, item_type, reference_id) VALUES (:invoice_id, :description, :quantity, :unit_price, :total_price, :item_type, :reference_id)
[07-Mar-2026 13:50:18 Africa/Kigali] Invoice creation error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'total_price' in 'field list'
[07-Mar-2026 13:50:18 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(127): PDO->prepare('INSERT INTO inv...')
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/billing/invoices/create.php(347): db_insert('invoice_items', Array)
#2 {main}
[07-Mar-2026 13:52:27 Africa/Kigali] Validating session on init
[07-Mar-2026 13:52:27 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:52:27 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:52:27 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:52:27 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:52:27 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-07, Category: All, Outlet: All
[07-Mar-2026 13:52:27 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[07-Mar-2026 13:52:27 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[07-Mar-2026 13:52:27 Africa/Kigali] Report generated - Products with sales: 18, Categories: 7
[07-Mar-2026 13:52:27 Africa/Kigali] Opening Stock: 0, Received: 609, Closing: 579
[07-Mar-2026 13:52:27 Africa/Kigali] Total Profit: 581650
[07-Mar-2026 13:52:27 Africa/Kigali] Stock Turnover: 0.10362694300518
[07-Mar-2026 13:52:30 Africa/Kigali] Validating session on init
[07-Mar-2026 13:52:30 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:52:30 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:52:30 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:52:30 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:52:30 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-07, Category: All, Outlet: All
[07-Mar-2026 13:52:30 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[07-Mar-2026 13:52:30 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[07-Mar-2026 13:52:30 Africa/Kigali] Report generated - Products with sales: 18, Categories: 7
[07-Mar-2026 13:52:30 Africa/Kigali] Opening Stock: 0, Received: 609, Closing: 579
[07-Mar-2026 13:52:30 Africa/Kigali] Total Profit: 581650
[07-Mar-2026 13:52:30 Africa/Kigali] Stock Turnover: 0.10362694300518
[07-Mar-2026 13:53:17 Africa/Kigali] Validating session on init
[07-Mar-2026 13:53:17 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:53:17 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:53:17 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:53:17 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:53:17 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-07, Category: All, Outlet: All
[07-Mar-2026 13:53:17 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[07-Mar-2026 13:53:17 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[07-Mar-2026 13:53:17 Africa/Kigali] Report generated - Products with sales: 18, Categories: 7
[07-Mar-2026 13:53:17 Africa/Kigali] Opening Stock: 0, Received: 609, Closing: 579
[07-Mar-2026 13:53:17 Africa/Kigali] Total Profit: 581650
[07-Mar-2026 13:53:17 Africa/Kigali] Stock Turnover: 0.10362694300518
[07-Mar-2026 13:53:27 Africa/Kigali] Validating session on init
[07-Mar-2026 13:53:27 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:53:27 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:53:27 Africa/Kigali] require_auth called - Checking session
[07-Mar-2026 13:53:27 Africa/Kigali] Session validated successfully
[07-Mar-2026 13:53:27 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-07, Category: All, Outlet: All
[07-Mar-2026 13:53:27 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[07-Mar-2026 13:53:27 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[07-Mar-2026 13:53:27 Africa/Kigali] Report generated - Products with sales: 18, Categories: 7
[07-Mar-2026 13:53:27 Africa/Kigali] Opening Stock: 0, Received: 609, Closing: 579
[07-Mar-2026 13:53:27 Africa/Kigali] Total Profit: 581650
[07-Mar-2026 13:53:27 Africa/Kigali] Stock Turnover: 0.10362694300518
[07-Mar-2026 13:54:36 Africa/Kigali] Validating session on init
[07-Mar-2026 13:54:47 Africa/Kigali] Validating session on init
[07-Mar-2026 13:54:47 Africa/Kigali] Inserting invoice with data: Array
(
    [invoice_number] => INV-20260307-5192
    [guest_id] => 15
    [reservation_id] => 19
    [invoice_date] => 2026-03-07
    [due_date] => 2026-04-06
    [total_amount] => 708
    [paid_amount] => 0
    [status] => pending
    [notes] => 
    [created_by] => 1
    [created_at] => 2026-03-07 13:54:47
)

[2026-03-07 13:54:47] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 13:54:47 Africa/Kigali] Invoice creation error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 13:54:47 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(128): PDOStatement->execute(Array)
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/billing/invoices/create.php(358): db_insert('invoices', Array)
#2 {main}
[07-Mar-2026 14:04:36 Africa/Kigali] Validating session on init
[07-Mar-2026 14:04:36 Africa/Kigali] Validating session on init
[07-Mar-2026 14:04:39 Africa/Kigali] Validating session on init
[07-Mar-2026 14:04:39 Africa/Kigali] Inserting invoice with status: unpaid
[07-Mar-2026 14:04:39 Africa/Kigali] Full invoice data: Array
(
    [invoice_number] => INV-20260307-7973
    [guest_id] => 15
    [reservation_id] => 19
    [invoice_date] => 2026-03-07
    [due_date] => 2026-04-06
    [total_amount] => 600
    [paid_amount] => 0
    [status] => unpaid
    [notes] => 
    [created_by] => 1
    [created_at] => 2026-03-07 14:04:39
)

[2026-03-07 14:04:39] [ERROR] Insert failed: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1 SQL: INSERT INTO invoices (invoice_number, guest_id, reservation_id, invoice_date, due_date, total_amount, paid_amount, status, notes, created_by, created_at) VALUES (:invoice_number, :guest_id, :reservation_id, :invoice_date, :due_date, :total_amount, :paid_amount, :status, :notes, :created_by, :created_at)
[07-Mar-2026 14:04:39 Africa/Kigali] Invoice creation error: SQLSTATE[01000]: Warning: 1265 Data truncated for column 'status' at row 1
[07-Mar-2026 14:04:39 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(128): PDOStatement->execute(Array)
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/billing/invoices/create.php(392): db_insert('invoices', Array)
#2 {main}
[07-Mar-2026 14:13:52 Africa/Kigali] Validating session on init
[07-Mar-2026 14:14:07 Africa/Kigali] Validating session on init
[07-Mar-2026 14:14:07 Africa/Kigali] Inserting invoice with data: Array
(
    [invoice_number] => INV-20260307-1504
    [guest_id] => 15
    [reservation_id] => 19
    [invoice_date] => 2026-03-07
    [due_date] => 2026-04-06
    [subtotal] => 600
    [tax_amount] => 108
    [discount_amount] => 0
    [total_amount] => 708
    [paid_amount] => 0
    [status] => draft
    [notes] => 
    [created_by] => 1
    [created_at] => 2026-03-07 14:14:07
)

[07-Mar-2026 14:14:07 Africa/Kigali] Inserting invoice item: Array
(
    [invoice_id] => 5
    [description] => Room Charge - Executive Suite (2 nights)
    [quantity] => 2
    [unit_price] => 300.00
    [tax_amount] => 108
    [total_amount] => 708
    [charge_id] => 19
    [created_at] => 2026-03-07 14:14:07
)

[2026-03-07 14:14:07] [ERROR] Insert failed: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`ruhondo_hms`.`invoice_items`, CONSTRAINT `invoice_items_ibfk_2` FOREIGN KEY (`charge_id`) REFERENCES `folio_charges` (`charge_id`) ON DELETE SET NULL) SQL: INSERT INTO invoice_items (invoice_id, description, quantity, unit_price, tax_amount, total_amount, charge_id, created_at) VALUES (:invoice_id, :description, :quantity, :unit_price, :tax_amount, :total_amount, :charge_id, :created_at)
[07-Mar-2026 14:14:07 Africa/Kigali] Invoice creation error: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`ruhondo_hms`.`invoice_items`, CONSTRAINT `invoice_items_ibfk_2` FOREIGN KEY (`charge_id`) REFERENCES `folio_charges` (`charge_id`) ON DELETE SET NULL)
[07-Mar-2026 14:14:07 Africa/Kigali] Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/config/database.php(128): PDOStatement->execute(Array)
#1 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/billing/invoices/create.php(312): db_insert('invoice_items', Array)
#2 {main}
[07-Mar-2026 15:59:22 Africa/Kigali] Validating session on init
[07-Mar-2026 15:59:23 Africa/Kigali] Validating session on init
[07-Mar-2026 15:59:26 Africa/Kigali] Validating session on init
[07-Mar-2026 15:59:26 Africa/Kigali] Inserting invoice with data: Array
(
    [invoice_number] => INV-20260307-2774
    [guest_id] => 15
    [reservation_id] => 19
    [invoice_date] => 2026-03-07
    [due_date] => 2026-04-06
    [subtotal] => 600
    [tax_amount] => 108
    [discount_amount] => 0
    [total_amount] => 708
    [paid_amount] => 0
    [status] => draft
    [notes] => 
    [created_by] => 1
    [created_at] => 2026-03-07 15:59:26
)

[07-Mar-2026 15:59:26 Africa/Kigali] Creating folio charge: Array
(
    [reservation_id] => 19
    [guest_id] => 15
    [description] => Room Charge - Executive Suite (2 nights)
    [quantity] => 2
    [unit_price] => 300.00
    [tax_amount] => 108
    [total_amount] => 708
    [charge_type] => room
    [created_at] => 2026-03-07 15:59:26
)

[2026-03-07 15:59:26] [ERROR] Insert failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'guest_id' in 'field list' SQL: INSERT INTO folio_charges (reservation_id, guest_id, description, quantity, unit_price, tax_amount, total_amount, charge_type, created_at) VALUES (:reservation_id, :guest_id, :description, :quantity, :unit_price, :tax_amount, :total_amount, :charge_type, :created_at)
[07-Mar-2026 15:59:26 Africa/Kigali] Folio charges table error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'guest_id' in 'field list'
[07-Mar-2026 15:59:26 Africa/Kigali] Inserting invoice item: Array
(
    [invoice_id] => 6
    [description] => Room Charge - Executive Suite (2 nights)
    [quantity] => 2
    [unit_price] => 300.00
    [tax_amount] => 108
    [total_amount] => 708
    [charge_id] => 
    [created_at] => 2026-03-07 15:59:26
)

[07-Mar-2026 15:59:55 Africa/Kigali] Validating session on init
[07-Mar-2026 16:00:05 Africa/Kigali] Validating session on init
[07-Mar-2026 16:00:05 Africa/Kigali] Validating session on init
[07-Mar-2026 16:00:09 Africa/Kigali] Validating session on init
[08-Mar-2026 00:38:21 Africa/Kigali] Validating session on init
[08-Mar-2026 00:38:21 Africa/Kigali] AUDIT: User: 1 | Action: logout | Table: users | Record: 1
[08-Mar-2026 00:38:21 Africa/Kigali] require_auth called - Checking session
[08-Mar-2026 00:38:21 Africa/Kigali] validate_session failed, checking remember token
[08-Mar-2026 00:38:21 Africa/Kigali] No valid session or remember token - redirecting to login
[17-Mar-2026 14:19:22 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:19:22 Africa/Kigali] validate_session failed, checking remember token
[17-Mar-2026 14:19:22 Africa/Kigali] No valid session or remember token - redirecting to login
[17-Mar-2026 14:19:35 Africa/Kigali] Login attempt - Username: superadmin
[17-Mar-2026 14:19:35 Africa/Kigali] User found: Yes
[17-Mar-2026 14:19:35 Africa/Kigali] Login successful for user: superadmin
[17-Mar-2026 14:19:35 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[17-Mar-2026 14:19:35 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-03-17 14:19:35] [INFO] Successful login for user: superadmin
[17-Mar-2026 14:19:35 Africa/Kigali] Validating session on init
[17-Mar-2026 14:19:36 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:19:36 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:19:46 Africa/Kigali] Validating session on init
[17-Mar-2026 14:19:46 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:19:46 Africa/Kigali] Session validated successfully
[2026-03-17 14:19:46] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 14:19:46 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 14:19:49 Africa/Kigali] Validating session on init
[17-Mar-2026 14:19:49 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:19:49 Africa/Kigali] Session validated successfully
[2026-03-17 14:19:49] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[17-Mar-2026 14:19:49 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[17-Mar-2026 14:19:51 Africa/Kigali] Validating session on init
[17-Mar-2026 14:19:51 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:19:51 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:19:51 Africa/Kigali] Revenue Stats - Total: 3, Revenue: 2083290, Items: 30
[17-Mar-2026 14:19:52 Africa/Kigali] Validating session on init
[17-Mar-2026 14:19:52 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:19:52 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:19:52 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:19:52 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:19:52 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-17, Category: All, Outlet: All
[17-Mar-2026 14:19:52 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[17-Mar-2026 14:19:52 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[17-Mar-2026 14:19:52 Africa/Kigali] Report generated - Products with sales: 18, Categories: 7
[17-Mar-2026 14:19:52 Africa/Kigali] Opening Stock: 0, Received: 609, Closing: 579
[17-Mar-2026 14:19:52 Africa/Kigali] Total Profit: 581650
[17-Mar-2026 14:19:52 Africa/Kigali] Stock Turnover: 0.10362694300518
[17-Mar-2026 14:20:04 Africa/Kigali] Validating session on init
[17-Mar-2026 14:20:04 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:20:04 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:20:04 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:20:04 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:20:04 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-17, Category: All, Outlet: All
[17-Mar-2026 14:20:04 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[17-Mar-2026 14:20:04 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[17-Mar-2026 14:20:04 Africa/Kigali] Report generated - Products with sales: 18, Categories: 7
[17-Mar-2026 14:20:04 Africa/Kigali] Opening Stock: 0, Received: 609, Closing: 579
[17-Mar-2026 14:20:04 Africa/Kigali] Total Profit: 581650
[17-Mar-2026 14:20:04 Africa/Kigali] Stock Turnover: 0.10362694300518
[17-Mar-2026 14:20:11 Africa/Kigali] Validating session on init
[17-Mar-2026 14:20:11 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:20:11 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:20:11 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:20:11 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:20:11 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-17, Category: All, Outlet: All
[17-Mar-2026 14:20:11 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[17-Mar-2026 14:20:11 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[17-Mar-2026 14:20:11 Africa/Kigali] Report generated - Products with sales: 18, Categories: 7
[17-Mar-2026 14:20:11 Africa/Kigali] Opening Stock: 0, Received: 609, Closing: 579
[17-Mar-2026 14:20:11 Africa/Kigali] Total Profit: 581650
[17-Mar-2026 14:20:11 Africa/Kigali] Stock Turnover: 0.10362694300518
[17-Mar-2026 14:21:52 Africa/Kigali] Validating session on init
[17-Mar-2026 14:21:52 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:21:52 Africa/Kigali] Session validated successfully
[2026-03-17 14:21:52] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[17-Mar-2026 14:21:52 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[17-Mar-2026 14:21:53 Africa/Kigali] Validating session on init
[17-Mar-2026 14:21:53 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:21:53 Africa/Kigali] Session validated successfully
[2026-03-17 14:21:53] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 14:21:53 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 14:31:17 Africa/Kigali] Validating session on init
[17-Mar-2026 14:31:17 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:31:17 Africa/Kigali] Session validated successfully
[2026-03-17 14:31:17] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 14:31:17 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 14:31:18 Africa/Kigali] Validating session on init
[17-Mar-2026 14:31:18 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:31:18 Africa/Kigali] Session validated successfully
[2026-03-17 14:31:18] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 14:31:18 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 14:31:23 Africa/Kigali] Validating session on init
[17-Mar-2026 14:31:23 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:31:23 Africa/Kigali] Session validated successfully
[2026-03-17 14:31:23] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 14:31:23 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 14:31:25 Africa/Kigali] Validating session on init
[17-Mar-2026 14:31:25 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:31:25 Africa/Kigali] Session validated successfully
[2026-03-17 14:31:25] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 14:31:25 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 14:31:41 Africa/Kigali] Validating session on init
[17-Mar-2026 14:31:48 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:15 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:15 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:24 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:24 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:34 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:34 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:35 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:35 Africa/Kigali] Inserting purchase order item: Array
(
    [po_id] => 11
    [product_id] => 59
    [quantity_ordered] => 100
    [unit_price] => 800
)

[17-Mar-2026 14:32:35 Africa/Kigali] Inserting purchase order item: Array
(
    [po_id] => 11
    [product_id] => 58
    [quantity_ordered] => 100
    [unit_price] => 800
)

[17-Mar-2026 14:32:35 Africa/Kigali] Inserting purchase order item: Array
(
    [po_id] => 11
    [product_id] => 55
    [quantity_ordered] => 100
    [unit_price] => 800
)

[17-Mar-2026 14:32:35 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:38 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:47 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:47 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:56 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:56 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:32:56 Africa/Kigali] Session validated successfully
[2026-03-17 14:32:56] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[17-Mar-2026 14:32:56 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[17-Mar-2026 14:32:58 Africa/Kigali] Validating session on init
[17-Mar-2026 14:32:58 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:32:58 Africa/Kigali] Session validated successfully
[2026-03-17 14:32:58] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 14:32:58 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 14:33:01 Africa/Kigali] Validating session on init
[17-Mar-2026 14:33:01 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:33:01 Africa/Kigali] Session validated successfully
[2026-03-17 14:33:01] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 14:33:01 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 14:33:10 Africa/Kigali] Validating session on init
[17-Mar-2026 14:33:10 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:33:10 Africa/Kigali] Session validated successfully
[2026-03-17 14:33:10] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 14:33:10 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 14:33:20 Africa/Kigali] Validating session on init
[17-Mar-2026 14:33:20 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:33:20 Africa/Kigali] Session validated successfully
[2026-03-17 14:33:20] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 14:33:20 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 14:33:23 Africa/Kigali] Validating session on init
[17-Mar-2026 14:33:23 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:33:23 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:33:34 Africa/Kigali] Validating session on init
[17-Mar-2026 14:33:34 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:33:34 Africa/Kigali] Session validated successfully
[2026-03-17 14:33:34] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[17-Mar-2026 14:33:34 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[17-Mar-2026 14:33:36 Africa/Kigali] Validating session on init
[17-Mar-2026 14:33:36 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:33:36 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:33:36 Africa/Kigali] Revenue Stats - Total: 4, Revenue: 2167660, Items: 32
[17-Mar-2026 14:33:39 Africa/Kigali] Validating session on init
[17-Mar-2026 14:33:39 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:33:39 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:33:51 Africa/Kigali] Validating session on init
[17-Mar-2026 14:33:51 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:33:51 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:34:03 Africa/Kigali] Validating session on init
[17-Mar-2026 14:34:03 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:34:03 Africa/Kigali] Session validated successfully
[2026-03-17 14:34:03] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[17-Mar-2026 14:34:03 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[17-Mar-2026 14:34:05 Africa/Kigali] Validating session on init
[17-Mar-2026 14:34:05 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:34:05 Africa/Kigali] Session validated successfully
[2026-03-17 14:34:05] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 14:34:05 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 14:34:11 Africa/Kigali] Validating session on init
[17-Mar-2026 14:34:11 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:34:11 Africa/Kigali] Session validated successfully
[2026-03-17 14:34:11] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[17-Mar-2026 14:34:11 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[17-Mar-2026 14:34:12 Africa/Kigali] Validating session on init
[17-Mar-2026 14:34:12 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:34:12 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:34:12 Africa/Kigali] Revenue Stats - Total: 4, Revenue: 2167660, Items: 32
[17-Mar-2026 14:34:13 Africa/Kigali] Validating session on init
[17-Mar-2026 14:34:13 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:34:13 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:34:13 Africa/Kigali] Daily Sales Report - Date: 2026-03-17, Outlet ID: All
[17-Mar-2026 14:34:13 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[17-Mar-2026 14:34:13 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[17-Mar-2026 14:34:13 Africa/Kigali] Found 1 transactions
[17-Mar-2026 14:34:13 Africa/Kigali] Report Summary - Transactions: 1, Total Sales: 84370
[17-Mar-2026 14:34:23 Africa/Kigali] Validating session on init
[17-Mar-2026 14:34:23 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:34:23 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:34:52 Africa/Kigali] Validating session on init
[17-Mar-2026 14:34:52 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:34:52 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:34:52 Africa/Kigali] Daily Sales Report - Date: 2026-03-17, Outlet ID: All
[17-Mar-2026 14:34:52 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[17-Mar-2026 14:34:52 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[17-Mar-2026 14:34:52 Africa/Kigali] Found 1 transactions
[17-Mar-2026 14:34:52 Africa/Kigali] Report Summary - Transactions: 1, Total Sales: 84370
[17-Mar-2026 14:35:52 Africa/Kigali] Validating session on init
[17-Mar-2026 14:35:52 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:35:52 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:35:52 Africa/Kigali] Daily Sales Report - Date: 2026-03-17, Outlet ID: All
[17-Mar-2026 14:35:52 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[17-Mar-2026 14:35:52 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[17-Mar-2026 14:35:52 Africa/Kigali] Found 1 transactions
[17-Mar-2026 14:35:52 Africa/Kigali] Report Summary - Transactions: 1, Total Sales: 84370
[17-Mar-2026 14:35:55 Africa/Kigali] Validating session on init
[17-Mar-2026 14:35:55 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:35:55 Africa/Kigali] Session validated successfully
[2026-03-17 14:35:55] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[17-Mar-2026 14:35:55 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[17-Mar-2026 14:35:57 Africa/Kigali] Validating session on init
[17-Mar-2026 14:35:57 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:35:57 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:35:57 Africa/Kigali] Revenue Stats - Total: 4, Revenue: 2167660, Items: 32
[17-Mar-2026 14:35:57 Africa/Kigali] Validating session on init
[17-Mar-2026 14:35:58 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:35:58 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:35:58 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:35:58 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:35:58 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-17, Category: All, Outlet: All
[17-Mar-2026 14:35:58 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[17-Mar-2026 14:35:58 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[17-Mar-2026 14:35:58 Africa/Kigali] Report generated - Products with sales: 19, Categories: 7
[17-Mar-2026 14:35:58 Africa/Kigali] Opening Stock: 0, Received: 709, Closing: 677
[17-Mar-2026 14:35:58 Africa/Kigali] Total Profit: 600100
[17-Mar-2026 14:35:58 Africa/Kigali] Stock Turnover: 0.094534711964549
[17-Mar-2026 14:38:04 Africa/Kigali] Validating session on init
[17-Mar-2026 14:38:04 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:38:04 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:38:04 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:38:04 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:38:04 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-17, Category: All, Outlet: All
[17-Mar-2026 14:38:04 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[17-Mar-2026 14:38:04 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[17-Mar-2026 14:38:04 Africa/Kigali] Report generated - Products with sales: 19, Categories: 7
[17-Mar-2026 14:38:04 Africa/Kigali] Opening Stock: 0, Received: 709, Closing: 677
[17-Mar-2026 14:38:04 Africa/Kigali] Total Profit: 600100
[17-Mar-2026 14:38:04 Africa/Kigali] Stock Turnover: 0.094534711964549
[17-Mar-2026 14:38:06 Africa/Kigali] Validating session on init
[17-Mar-2026 14:38:06 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:38:06 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:38:06 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 14:38:06 Africa/Kigali] Session validated successfully
[17-Mar-2026 14:38:06 Africa/Kigali] Product Sales Report with Stock Movement & Profit - From: 2026-03-01, To: 2026-03-17, Category: All, Outlet: All
[17-Mar-2026 14:38:06 Africa/Kigali] Available tables: audit_logs, currency_rates, folio_charges, guest_activity, guest_documents, guests, hk_tasks, invoice_items, invoices, kitchen_orders, maintenance_tickets, notification_templates, notifications, payment_methods, payments, permissions, pos_categories, pos_outlets, pos_product_images, pos_products, pos_sale_items, pos_sales, pos_shifts, price_rules, purchase_order_items, purchase_orders, quotation_items, quotations, rate_plans, reservations, resort_settings, role_permissions, roles, room_images, room_types, rooms, seasons, stock_adjustment_items, stock_adjustments, stock_movements, suppliers, system_settings, tax_rates, user_permissions, user_sessions, users
[17-Mar-2026 14:38:06 Africa/Kigali] Product SQL with Stock Movement: 
                SELECT 
                    p.product_id, 
                    p.product_code, 
                    p.product_name, 
                    p.unit_price,
                    COALESCE(p.cost_price, p.unit_price * 0.7) as cost_price,
                    c.category_name,
                    COALESCE(p.current_stock, 0) as current_stock,
                    SUM(si.quantity) as total_quantity,
                    SUM(si.total_amount) as total_revenue,
                    SUM(si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7)) as total_cost,
                    SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) as total_profit,
                    COALESCE(p.current_stock, 0) * COALESCE(p.cost_price, p.unit_price * 0.7) as stock_cost_value,
                    COALESCE(p.current_stock, 0) * (p.unit_price - COALESCE(p.cost_price, p.unit_price * 0.7)) as potential_profit,
                    CASE 
                        WHEN SUM(si.total_amount) > 0 
                        THEN (SUM(si.total_amount - (si.quantity * COALESCE(p.cost_price, p.unit_price * 0.7))) / SUM(si.total_amount)) * 100 
                        ELSE 0 
                    END as profit_margin
                FROM pos_products p
                JOIN pos_categories c ON p.category_id = c.category_id
                JOIN pos_sale_items si ON p.product_id = si.product_id
                JOIN pos_sales s ON si.sale_id = s.sale_id
                WHERE p.is_active = 1
                AND s.payment_status = 'completed'
                AND DATE(s.sale_time) BETWEEN ? AND ? GROUP BY p.product_id
[17-Mar-2026 14:38:06 Africa/Kigali] Report generated - Products with sales: 19, Categories: 7
[17-Mar-2026 14:38:06 Africa/Kigali] Opening Stock: 0, Received: 709, Closing: 677
[17-Mar-2026 14:38:06 Africa/Kigali] Total Profit: 600100
[17-Mar-2026 14:38:06 Africa/Kigali] Stock Turnover: 0.094534711964549
[17-Mar-2026 15:10:29 Africa/Kigali] Validating session on init
[17-Mar-2026 15:10:29 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 15:10:29 Africa/Kigali] Session validated successfully
[17-Mar-2026 15:10:29 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function db_escape() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/product-sales.php:594
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/product-sales.php(102): get_product_sales_report('2026-03-01', '2026-03-17', 0, 0, 'profit')
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/product-sales.php on line 594
[17-Mar-2026 15:10:32 Africa/Kigali] Validating session on init
[17-Mar-2026 15:10:32 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 15:10:32 Africa/Kigali] Session validated successfully
[17-Mar-2026 15:10:32 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function db_escape() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/product-sales.php:594
Stack trace:
#0 /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/product-sales.php(102): get_product_sales_report('2026-03-01', '2026-03-17', 0, 0, 'profit')
#1 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/product-sales.php on line 594
[17-Mar-2026 23:20:26 Africa/Kigali] Validating session on init
[17-Mar-2026 23:20:26 Africa/Kigali] AUDIT: User: 1 | Action: logout | Table: users | Record: 1
[17-Mar-2026 23:20:26 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:20:26 Africa/Kigali] validate_session failed, checking remember token
[17-Mar-2026 23:20:26 Africa/Kigali] No valid session or remember token - redirecting to login
[17-Mar-2026 23:20:43 Africa/Kigali] Login attempt - Username: superadmin
[17-Mar-2026 23:20:43 Africa/Kigali] User found: Yes
[17-Mar-2026 23:20:43 Africa/Kigali] Login successful for user: superadmin
[17-Mar-2026 23:20:43 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[17-Mar-2026 23:20:43 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-03-17 23:20:43] [INFO] Successful login for user: superadmin
[17-Mar-2026 23:20:43 Africa/Kigali] Validating session on init
[17-Mar-2026 23:20:43 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:20:43 Africa/Kigali] Session validated successfully
[17-Mar-2026 23:20:50 Africa/Kigali] Validating session on init
[17-Mar-2026 23:20:50 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:20:50 Africa/Kigali] Session validated successfully
[2026-03-17 23:20:50] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[17-Mar-2026 23:20:50 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[17-Mar-2026 23:20:52 Africa/Kigali] Validating session on init
[17-Mar-2026 23:20:52 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:20:52 Africa/Kigali] Session validated successfully
[17-Mar-2026 23:20:52 Africa/Kigali] Revenue Stats - Total: 4, Revenue: 2167660, Items: 32
[17-Mar-2026 23:20:55 Africa/Kigali] Validating session on init
[17-Mar-2026 23:20:55 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:20:55 Africa/Kigali] Session validated successfully
[17-Mar-2026 23:21:14 Africa/Kigali] Validating session on init
[17-Mar-2026 23:21:15 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:21:15 Africa/Kigali] Session validated successfully
[17-Mar-2026 23:21:17 Africa/Kigali] Validating session on init
[17-Mar-2026 23:21:17 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:21:17 Africa/Kigali] Session validated successfully
[17-Mar-2026 23:21:17 Africa/Kigali] PHP Fatal error:  Uncaught Error: Call to undefined function export_pdf() in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/product-sales.php:98
Stack trace:
#0 {main}
  thrown in /Applications/XAMPP/xamppfiles/htdocs/HMSPOS/pos/reports/product-sales.php on line 98
[17-Mar-2026 23:21:26 Africa/Kigali] Validating session on init
[17-Mar-2026 23:21:26 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:21:26 Africa/Kigali] Session validated successfully
[2026-03-17 23:21:26] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[17-Mar-2026 23:21:26 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[17-Mar-2026 23:21:29 Africa/Kigali] Validating session on init
[17-Mar-2026 23:21:29 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:21:29 Africa/Kigali] Session validated successfully
[2026-03-17 23:21:29] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 23:21:29 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 23:21:32 Africa/Kigali] Validating session on init
[17-Mar-2026 23:21:32 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:21:32 Africa/Kigali] Session validated successfully
[2026-03-17 23:21:32] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 23:21:32 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 23:21:34 Africa/Kigali] Validating session on init
[17-Mar-2026 23:21:34 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:21:34 Africa/Kigali] Session validated successfully
[2026-03-17 23:21:34] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 23:21:34 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 23:21:35 Africa/Kigali] Validating session on init
[17-Mar-2026 23:21:35 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:21:35 Africa/Kigali] Session validated successfully
[2026-03-17 23:21:35] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[17-Mar-2026 23:21:35 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[17-Mar-2026 23:21:45 Africa/Kigali] Validating session on init
[17-Mar-2026 23:21:48 Africa/Kigali] Validating session on init
[17-Mar-2026 23:21:48 Africa/Kigali] require_auth called - Checking session
[17-Mar-2026 23:21:48 Africa/Kigali] Session validated successfully
[13-Apr-2026 16:19:27 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:19:27 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 16:19:27 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 16:19:40 Africa/Kigali] Login attempt - Username: superadmin
[13-Apr-2026 16:19:40 Africa/Kigali] User found: Yes
[13-Apr-2026 16:19:41 Africa/Kigali] Login successful for user: superadmin
[13-Apr-2026 16:19:41 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[13-Apr-2026 16:19:41 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 127.0.0.1
[2026-04-13 16:19:41] [INFO] Successful login for user: superadmin
[13-Apr-2026 16:19:41 Africa/Kigali] Validating session on init
[13-Apr-2026 16:19:41 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:19:41 Africa/Kigali] Session validated successfully
[13-Apr-2026 16:20:08 Africa/Kigali] Validating session on init
[13-Apr-2026 16:20:08 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:20:08 Africa/Kigali] Session validated successfully
[2026-04-13 16:20:08] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause' SQL: 
        SELECT COALESCE(SUM(total_amount), 0) FROM pos_sales 
        WHERE DATE(sale_time) = CURDATE()
        AND payment_status = 'completed'
        AND payment_method = 'cash'
    
[13-Apr-2026 16:20:08 Africa/Kigali] Error fetching POS stats: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'payment_method' in 'where clause'
[13-Apr-2026 16:20:10 Africa/Kigali] Validating session on init
[13-Apr-2026 16:20:10 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:20:10 Africa/Kigali] Session validated successfully
[13-Apr-2026 16:20:28 Africa/Kigali] Validating session on init
[13-Apr-2026 16:21:18 Africa/Kigali] Validating session on init
[13-Apr-2026 16:21:18 Africa/Kigali] Validating session on init
[13-Apr-2026 16:21:18 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:21:18 Africa/Kigali] Session validated successfully
[13-Apr-2026 16:21:28 Africa/Kigali] Validating session on init
[13-Apr-2026 16:21:28 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:21:28 Africa/Kigali] Session validated successfully
[2026-04-13 16:21:28] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[13-Apr-2026 16:21:28 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[13-Apr-2026 16:21:40 Africa/Kigali] Validating session on init
[13-Apr-2026 16:21:40 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:21:40 Africa/Kigali] Session validated successfully
[13-Apr-2026 16:22:38 Africa/Kigali] Validating session on init
[13-Apr-2026 16:22:38 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:22:38 Africa/Kigali] Session validated successfully
[13-Apr-2026 16:22:44 Africa/Kigali] Validating session on init
[13-Apr-2026 16:22:44 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:22:44 Africa/Kigali] Session validated successfully
[2026-04-13 16:22:44] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[13-Apr-2026 16:22:44 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[13-Apr-2026 16:23:19 Africa/Kigali] Validating session on init
[13-Apr-2026 16:23:19 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:23:19 Africa/Kigali] Session validated successfully
[2026-04-13 16:23:19] [ERROR] Query failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause' SQL: 
        SELECT sale_id, receipt_number, customer_name, total_amount, sale_time
        FROM pos_sales
        WHERE created_by = ? AND DATE(sale_time) = CURDATE()
        ORDER BY sale_time DESC
        LIMIT 20
    
[13-Apr-2026 16:23:19 Africa/Kigali] Error fetching recent sales: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_by' in 'where clause'
[13-Apr-2026 16:23:22 Africa/Kigali] Validating session on init
[13-Apr-2026 16:23:22 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:23:22 Africa/Kigali] Session validated successfully
[13-Apr-2026 16:42:21 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:42:22 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:42:43 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[2026-04-13 16:42:43] [ERROR] Database connection failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:42:47 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:43:44 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:43:45 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:43:45 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:43:45 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:43:56 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:43:56 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:43:56 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:43:56 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 16:43:56 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 16:43:57 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:43:57 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:43:57 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:43:57 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 16:43:57 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 16:43:59 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:43:59 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:43:59 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:43:59 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 16:43:59 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 16:44:00 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:44:00 Africa/Kigali] Database connection test failed: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
[13-Apr-2026 16:44:00 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 16:44:00 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 16:44:00 Africa/Kigali] No valid session or remember token - redirecting to login
[2026-04-13 16:44:46] [ERROR] Query failed: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'rugewvtw_amicodb.users' doesn't exist SQL: SELECT * FROM users WHERE (username = ? OR email = ?) AND is_active = 1
[13-Apr-2026 16:44:46 Africa/Kigali] PHP Fatal error:  Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'rugewvtw_amicodb.users' doesn't exist in /home/rugewvtw/amicopos.eccellaltd.com/config/database.php:79
Stack trace:
#0 /home/rugewvtw/amicopos.eccellaltd.com/config/database.php(79): PDO->prepare()
#1 /home/rugewvtw/amicopos.eccellaltd.com/config/database.php(94): db_query()
#2 /home/rugewvtw/amicopos.eccellaltd.com/config/auth.php(394): db_fetch_one()
#3 /home/rugewvtw/amicopos.eccellaltd.com/public/login.php(106): authenticate_user()
#4 {main}
  thrown in /home/rugewvtw/amicopos.eccellaltd.com/config/database.php on line 79
[13-Apr-2026 17:00:18 Africa/Kigali] Login attempt - Username: admin
[13-Apr-2026 17:00:18 Africa/Kigali] User found: Yes
[13-Apr-2026 17:00:18 Africa/Kigali] Login successful for user: admin
[13-Apr-2026 17:00:18 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[13-Apr-2026 17:00:18 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 197.157.155.252
[2026-04-13 17:00:18] [INFO] Successful login for user: admin
[13-Apr-2026 17:00:19 Africa/Kigali] Validating session on init
[13-Apr-2026 17:00:19 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:00:19 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:00:35 Africa/Kigali] Validating session on init
[13-Apr-2026 17:00:35 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:00:35 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:00:42 Africa/Kigali] Validating session on init
[13-Apr-2026 17:00:42 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:00:42 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:02:30 Africa/Kigali] Validating session on init
[13-Apr-2026 17:02:30 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:02:30 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:02:59 Africa/Kigali] Validating session on init
[13-Apr-2026 17:02:59 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:02:59 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:03:05 Africa/Kigali] Validating session on init
[13-Apr-2026 17:03:10 Africa/Kigali] Validating session on init
[13-Apr-2026 17:03:10 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:03:10 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:03:38 Africa/Kigali] Validating session on init
[13-Apr-2026 17:03:38 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:03:38 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:03:38 Africa/Kigali] Revenue Stats - Total: 3, Revenue: 107970, Items: 7
[13-Apr-2026 17:03:44 Africa/Kigali] Validating session on init
[13-Apr-2026 17:03:44 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:03:44 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:03:47 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:03:47 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:03:47 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:04:17 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:04:17 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:04:17 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:05:42 Africa/Kigali] Login attempt - Username: admin
[13-Apr-2026 17:05:42 Africa/Kigali] User found: Yes
[13-Apr-2026 17:05:42 Africa/Kigali] Login successful for user: admin
[13-Apr-2026 17:05:42 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[13-Apr-2026 17:05:42 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 197.157.187.145
[2026-04-13 17:05:42] [INFO] Successful login for user: admin
[13-Apr-2026 17:05:43 Africa/Kigali] Validating session on init
[13-Apr-2026 17:05:43 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:05:43 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:09:55 Africa/Kigali] Validating session on init
[13-Apr-2026 17:09:55 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:09:55 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:10:34 Africa/Kigali] Validating session on init
[13-Apr-2026 17:10:35 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:10:35 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:10:46 Africa/Kigali] Validating session on init
[13-Apr-2026 17:10:46 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:10:46 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:12:09 Africa/Kigali] Validating session on init
[13-Apr-2026 17:12:09 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:12:09 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:13:02 Africa/Kigali] Validating session on init
[13-Apr-2026 17:13:02 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:13:02 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:13:23 Africa/Kigali] Validating session on init
[13-Apr-2026 17:13:23 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:13:23 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:13:38 Africa/Kigali] Validating session on init
[13-Apr-2026 17:13:38 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:13:38 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:13:50 Africa/Kigali] Validating session on init
[13-Apr-2026 17:13:50 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:13:50 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:13:58 Africa/Kigali] Validating session on init
[13-Apr-2026 17:13:58 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:13:58 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:14:19 Africa/Kigali] Validating session on init
[13-Apr-2026 17:14:19 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:14:19 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:14:34 Africa/Kigali] Validating session on init
[13-Apr-2026 17:14:34 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:14:34 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:14:35 Africa/Kigali] Validating session on init
[13-Apr-2026 17:14:35 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:14:35 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:14:37 Africa/Kigali] Validating session on init
[13-Apr-2026 17:14:37 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:14:37 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:14:40 Africa/Kigali] Validating session on init
[13-Apr-2026 17:14:40 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:14:40 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:14:42 Africa/Kigali] Validating session on init
[13-Apr-2026 17:14:42 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:14:42 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:14:42 Africa/Kigali] Validating session on init
[13-Apr-2026 17:14:42 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:14:42 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:14:42 Africa/Kigali] Revenue Stats - Total: 3, Revenue: 107970, Items: 7
[13-Apr-2026 17:14:42 Africa/Kigali] Validating session on init
[13-Apr-2026 17:14:43 Africa/Kigali] Validating session on init
[13-Apr-2026 17:14:43 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:14:43 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:14:57 Africa/Kigali] Validating session on init
[13-Apr-2026 17:14:57 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:14:57 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:15:17 Africa/Kigali] Validating session on init
[13-Apr-2026 17:15:17 Africa/Kigali] Validating session on init
[13-Apr-2026 17:15:17 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:15:17 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:16:45 Africa/Kigali] Validating session on init
[13-Apr-2026 17:16:45 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:16:45 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:16:46 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 160
[13-Apr-2026 17:16:46 Africa/Kigali] Validating session on init
[13-Apr-2026 17:16:46 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:16:46 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:16:58 Africa/Kigali] Validating session on init
[13-Apr-2026 17:16:58 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:16:58 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:17:25 Africa/Kigali] Validating session on init
[13-Apr-2026 17:17:25 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:17:25 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:18:06 Africa/Kigali] Validating session on init
[13-Apr-2026 17:18:06 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:18:06 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:18:12 Africa/Kigali] Login attempt - Username: superadmin
[13-Apr-2026 17:18:12 Africa/Kigali] User found: Yes
[13-Apr-2026 17:18:13 Africa/Kigali] AUDIT: User: 1 | Action: login_failed | Table: users | Record: 1
[2026-04-13 17:18:13] [WARNING] Login failed for user: superadmin - invalid_credentials
[13-Apr-2026 17:18:20 Africa/Kigali] Validating session on init
[13-Apr-2026 17:18:20 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:18:20 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:18:20 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 161
[13-Apr-2026 17:18:21 Africa/Kigali] Validating session on init
[13-Apr-2026 17:18:21 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:18:21 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:18:26 Africa/Kigali] Login attempt - Username: superadmin
[13-Apr-2026 17:18:26 Africa/Kigali] User found: Yes
[13-Apr-2026 17:18:27 Africa/Kigali] AUDIT: User: 1 | Action: login_failed | Table: users | Record: 1
[2026-04-13 17:18:27] [WARNING] Login failed for user: superadmin - invalid_credentials
[13-Apr-2026 17:18:34 Africa/Kigali] Login attempt - Username: superadmin
[13-Apr-2026 17:18:34 Africa/Kigali] User found: Yes
[13-Apr-2026 17:18:34 Africa/Kigali] AUDIT: User: 1 | Action: login_failed | Table: users | Record: 1
[2026-04-13 17:18:34] [WARNING] Login failed for user: superadmin - invalid_credentials
[13-Apr-2026 17:18:43 Africa/Kigali] Login attempt - Username: superadmin
[13-Apr-2026 17:18:43 Africa/Kigali] User found: Yes
[13-Apr-2026 17:18:43 Africa/Kigali] Login successful for user: superadmin
[13-Apr-2026 17:18:43 Africa/Kigali] AUDIT: User: 1 | Action: login | Table: users | Record: 1
[13-Apr-2026 17:18:43 Africa/Kigali] NOTIFICATION: User 1 - New Login: You logged in from 197.157.155.252
[2026-04-13 17:18:43] [INFO] Successful login for user: superadmin
[13-Apr-2026 17:18:43 Africa/Kigali] Validating session on init
[13-Apr-2026 17:18:43 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:18:43 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:18:51 Africa/Kigali] Validating session on init
[13-Apr-2026 17:18:51 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:18:51 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:18:54 Africa/Kigali] Validating session on init
[13-Apr-2026 17:18:54 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:18:54 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:19:07 Africa/Kigali] Validating session on init
[13-Apr-2026 17:19:07 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:19:07 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:19:07 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 162
[13-Apr-2026 17:19:08 Africa/Kigali] Validating session on init
[13-Apr-2026 17:19:08 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:19:08 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:19:30 Africa/Kigali] Validating session on init
[13-Apr-2026 17:19:30 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:19:30 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:19:51 Africa/Kigali] Validating session on init
[13-Apr-2026 17:19:51 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:19:51 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:19:51 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 163
[13-Apr-2026 17:19:51 Africa/Kigali] Validating session on init
[13-Apr-2026 17:19:51 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:19:51 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:19:56 Africa/Kigali] Validating session on init
[13-Apr-2026 17:19:56 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:19:56 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:19:56 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_categories | Record: 16
[13-Apr-2026 17:19:57 Africa/Kigali] Validating session on init
[13-Apr-2026 17:19:57 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:19:57 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:20:07 Africa/Kigali] Validating session on init
[13-Apr-2026 17:20:07 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:20:07 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:20:29 Africa/Kigali] Validating session on init
[13-Apr-2026 17:20:29 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:20:29 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:20:29 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_categories | Record: 17
[13-Apr-2026 17:20:30 Africa/Kigali] Validating session on init
[13-Apr-2026 17:20:30 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:20:30 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:20:34 Africa/Kigali] Validating session on init
[13-Apr-2026 17:20:34 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:20:34 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:20:34 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 164
[13-Apr-2026 17:20:34 Africa/Kigali] Validating session on init
[13-Apr-2026 17:20:34 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:20:34 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:20:36 Africa/Kigali] Validating session on init
[13-Apr-2026 17:20:36 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:20:36 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:20:54 Africa/Kigali] Validating session on init
[13-Apr-2026 17:20:54 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:20:54 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:20:54 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_categories | Record: 18
[13-Apr-2026 17:20:55 Africa/Kigali] Validating session on init
[13-Apr-2026 17:20:55 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:20:55 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:21:04 Africa/Kigali] Validating session on init
[13-Apr-2026 17:21:04 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:21:04 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:21:20 Africa/Kigali] Validating session on init
[13-Apr-2026 17:21:20 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:21:20 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:21:20 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 165
[13-Apr-2026 17:21:20 Africa/Kigali] Validating session on init
[13-Apr-2026 17:21:20 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:21:20 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:21:32 Africa/Kigali] Validating session on init
[13-Apr-2026 17:21:32 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:21:32 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:21:32 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_categories | Record: 19
[13-Apr-2026 17:21:32 Africa/Kigali] Validating session on init
[13-Apr-2026 17:21:32 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:21:32 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:21:39 Africa/Kigali] Validating session on init
[13-Apr-2026 17:21:39 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:21:39 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:21:58 Africa/Kigali] Validating session on init
[13-Apr-2026 17:21:58 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:21:58 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:21:58 Africa/Kigali] AUDIT: User: 1 | Action: create | Table: pos_categories | Record: 20
[13-Apr-2026 17:21:58 Africa/Kigali] Validating session on init
[13-Apr-2026 17:21:58 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:21:58 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:22:04 Africa/Kigali] Validating session on init
[13-Apr-2026 17:22:04 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:22:04 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:22:04 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 166
[13-Apr-2026 17:22:04 Africa/Kigali] Validating session on init
[13-Apr-2026 17:22:04 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:22:04 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:22:50 Africa/Kigali] Validating session on init
[13-Apr-2026 17:22:50 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:22:50 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:22:50 Africa/Kigali] Validating session on init
[13-Apr-2026 17:22:50 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:22:50 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:22:59 Africa/Kigali] Validating session on init
[13-Apr-2026 17:22:59 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:22:59 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:23:04 Africa/Kigali] Validating session on init
[13-Apr-2026 17:23:04 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:23:04 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:23:04 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 161
[13-Apr-2026 17:23:04 Africa/Kigali] Validating session on init
[13-Apr-2026 17:23:04 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:23:04 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:23:15 Africa/Kigali] Validating session on init
[13-Apr-2026 17:23:15 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:23:15 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:23:19 Africa/Kigali] Validating session on init
[13-Apr-2026 17:23:19 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:23:19 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:23:25 Africa/Kigali] Validating session on init
[13-Apr-2026 17:23:25 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:23:25 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:23:25 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 163
[13-Apr-2026 17:23:26 Africa/Kigali] Validating session on init
[13-Apr-2026 17:23:26 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:23:26 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:23:33 Africa/Kigali] Validating session on init
[13-Apr-2026 17:23:33 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:23:33 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:23:38 Africa/Kigali] Validating session on init
[13-Apr-2026 17:23:38 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:23:38 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:23:43 Africa/Kigali] Validating session on init
[13-Apr-2026 17:23:43 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:23:43 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:23:43 Africa/Kigali] AUDIT: User: 1 | Action: update | Table: pos_products | Record: 164
[13-Apr-2026 17:23:44 Africa/Kigali] Validating session on init
[13-Apr-2026 17:23:44 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:23:44 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:23:55 Africa/Kigali] Validating session on init
[13-Apr-2026 17:23:55 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:23:56 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:23:56 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 167
[13-Apr-2026 17:23:56 Africa/Kigali] Validating session on init
[13-Apr-2026 17:23:56 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:23:56 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:24:37 Africa/Kigali] Validating session on init
[13-Apr-2026 17:24:37 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:24:37 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:24:37 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 168
[13-Apr-2026 17:24:37 Africa/Kigali] Validating session on init
[13-Apr-2026 17:24:37 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:24:37 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:24:56 Africa/Kigali] Validating session on init
[13-Apr-2026 17:24:56 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:24:56 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:25:22 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:25:22 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:25:22 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:25:31 Africa/Kigali] Validating session on init
[13-Apr-2026 17:25:31 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:25:31 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:25:31 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 169
[13-Apr-2026 17:25:31 Africa/Kigali] Validating session on init
[13-Apr-2026 17:25:31 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:25:31 Africa/Kigali] Session validated successfully
[2026-04-13 17:25:33] [INFO] Database connection test completed
[13-Apr-2026 17:26:04 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:26:04 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:26:04 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:26:05 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:26:05 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:26:05 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:26:07 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:26:07 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:26:07 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:26:10 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:26:10 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:26:10 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:26:31 Africa/Kigali] Validating session on init
[13-Apr-2026 17:26:31 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:26:31 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:26:31 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 170
[13-Apr-2026 17:26:31 Africa/Kigali] Validating session on init
[13-Apr-2026 17:26:31 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:26:31 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:28:41 Africa/Kigali] Validating session on init
[13-Apr-2026 17:28:41 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:28:41 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:28:41 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 171
[13-Apr-2026 17:28:42 Africa/Kigali] Validating session on init
[13-Apr-2026 17:28:42 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:28:42 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:29:21 Africa/Kigali] Validating session on init
[13-Apr-2026 17:29:21 Africa/Kigali] Validating session on init
[13-Apr-2026 17:29:21 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:29:21 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:29:23 Africa/Kigali] Validating session on init
[13-Apr-2026 17:29:23 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:29:23 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:29:23 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 172
[13-Apr-2026 17:29:23 Africa/Kigali] Validating session on init
[13-Apr-2026 17:29:23 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:29:23 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:29:31 Africa/Kigali] Validating session on init
[13-Apr-2026 17:29:31 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:29:31 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:29:34 Africa/Kigali] Validating session on init
[13-Apr-2026 17:29:34 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:29:34 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:30:09 Africa/Kigali] Validating session on init
[13-Apr-2026 17:30:09 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:30:09 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:30:09 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 173
[13-Apr-2026 17:30:09 Africa/Kigali] Validating session on init
[13-Apr-2026 17:30:09 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:30:09 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:30:52 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:30:52 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:30:52 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:30:57 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:30:57 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:30:57 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:30:58 Africa/Kigali] Validating session on init
[13-Apr-2026 17:30:58 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:30:58 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:30:58 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 174
[13-Apr-2026 17:30:58 Africa/Kigali] Validating session on init
[13-Apr-2026 17:30:58 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:30:58 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:31:00 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:31:00 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:31:00 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:31:05 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:31:05 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:31:05 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:31:08 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:31:08 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:31:08 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:31:46 Africa/Kigali] Validating session on init
[13-Apr-2026 17:31:46 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:31:46 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:31:46 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 175
[13-Apr-2026 17:31:47 Africa/Kigali] Validating session on init
[13-Apr-2026 17:31:47 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:31:47 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:32:11 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:32:11 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:32:11 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:32:26 Africa/Kigali] Validating session on init
[13-Apr-2026 17:32:26 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:32:26 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:32:26 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 176
[13-Apr-2026 17:32:27 Africa/Kigali] Validating session on init
[13-Apr-2026 17:32:27 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:32:27 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:32:31 Africa/Kigali] Validating session on init
[13-Apr-2026 17:32:31 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:32:31 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:32:40 Africa/Kigali] Validating session on init
[13-Apr-2026 17:32:40 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:32:40 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:32:45 Africa/Kigali] Validating session on init
[13-Apr-2026 17:32:45 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:32:45 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:33:09 Africa/Kigali] Validating session on init
[13-Apr-2026 17:33:09 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:33:09 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:33:09 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 177
[13-Apr-2026 17:33:09 Africa/Kigali] Validating session on init
[13-Apr-2026 17:33:09 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:33:09 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:33:21 Africa/Kigali] Validating session on init
[13-Apr-2026 17:33:21 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:33:21 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:33:21 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 178
[13-Apr-2026 17:33:21 Africa/Kigali] Validating session on init
[13-Apr-2026 17:33:21 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:33:21 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:33:57 Africa/Kigali] Validating session on init
[13-Apr-2026 17:33:57 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:33:57 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:34:10 Africa/Kigali] Validating session on init
[13-Apr-2026 17:34:10 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:34:10 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:34:10 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 179
[13-Apr-2026 17:34:10 Africa/Kigali] Validating session on init
[13-Apr-2026 17:34:10 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:34:10 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:34:56 Africa/Kigali] Validating session on init
[13-Apr-2026 17:34:56 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:34:56 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:34:56 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 180
[13-Apr-2026 17:34:57 Africa/Kigali] Validating session on init
[13-Apr-2026 17:34:57 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:34:57 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:35:38 Africa/Kigali] Validating session on init
[13-Apr-2026 17:35:38 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:35:38 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:35:38 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 181
[13-Apr-2026 17:35:39 Africa/Kigali] Validating session on init
[13-Apr-2026 17:35:39 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:35:39 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:35:48 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:35:48 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:35:48 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:35:48 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:35:48 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:35:48 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:35:54 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:35:54 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:35:54 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:35:56 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:35:56 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:35:56 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:36:41 Africa/Kigali] Validating session on init
[13-Apr-2026 17:36:41 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:36:41 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:36:41 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 182
[13-Apr-2026 17:36:41 Africa/Kigali] Validating session on init
[13-Apr-2026 17:36:41 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:36:41 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:36:56 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:36:56 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:36:56 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:37:09 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:37:09 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:37:09 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:37:14 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:37:14 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 17:37:14 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 17:37:24 Africa/Kigali] Validating session on init
[13-Apr-2026 17:37:24 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:37:24 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:37:24 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 183
[13-Apr-2026 17:37:24 Africa/Kigali] Validating session on init
[13-Apr-2026 17:37:24 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:37:24 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:37:43 Africa/Kigali] Validating session on init
[13-Apr-2026 17:37:43 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:37:43 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:37:45 Africa/Kigali] Validating session on init
[13-Apr-2026 17:37:45 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:37:45 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:37:57 Africa/Kigali] Validating session on init
[13-Apr-2026 17:37:57 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:37:57 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:38:10 Africa/Kigali] Validating session on init
[13-Apr-2026 17:38:10 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:38:10 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:39:24 Africa/Kigali] Validating session on init
[13-Apr-2026 17:39:24 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:39:24 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:39:24 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 184
[13-Apr-2026 17:39:24 Africa/Kigali] Validating session on init
[13-Apr-2026 17:39:24 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:39:24 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:41:05 Africa/Kigali] Validating session on init
[13-Apr-2026 17:41:05 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:41:05 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:42:00 Africa/Kigali] Login attempt - Username: admin
[13-Apr-2026 17:42:00 Africa/Kigali] User found: Yes
[13-Apr-2026 17:42:01 Africa/Kigali] Login successful for user: admin
[13-Apr-2026 17:42:01 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[13-Apr-2026 17:42:01 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 197.157.187.145
[2026-04-13 17:42:01] [INFO] Successful login for user: admin
[13-Apr-2026 17:42:01 Africa/Kigali] Validating session on init
[13-Apr-2026 17:42:01 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:42:01 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:43:27 Africa/Kigali] Validating session on init
[13-Apr-2026 17:43:27 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:43:27 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:43:39 Africa/Kigali] Validating session on init
[13-Apr-2026 17:43:39 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:43:39 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:50:29 Africa/Kigali] Login attempt - Username: admin
[13-Apr-2026 17:50:29 Africa/Kigali] User found: Yes
[13-Apr-2026 17:50:29 Africa/Kigali] Login successful for user: admin
[13-Apr-2026 17:50:29 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[13-Apr-2026 17:50:29 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 197.157.155.252
[2026-04-13 17:50:29] [INFO] Successful login for user: admin
[13-Apr-2026 17:50:30 Africa/Kigali] Validating session on init
[13-Apr-2026 17:50:30 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:50:30 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:51:54 Africa/Kigali] Login attempt - Username: admin
[13-Apr-2026 17:51:54 Africa/Kigali] User found: Yes
[13-Apr-2026 17:51:54 Africa/Kigali] Login successful for user: admin
[13-Apr-2026 17:51:54 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[13-Apr-2026 17:51:54 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 197.157.187.145
[2026-04-13 17:51:54] [INFO] Successful login for user: admin
[13-Apr-2026 17:53:44 Africa/Kigali] Validating session on init
[13-Apr-2026 17:53:45 Africa/Kigali] Validating session on init
[13-Apr-2026 17:53:45 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:53:45 Africa/Kigali] Session validated successfully
[13-Apr-2026 17:53:51 Africa/Kigali] Validating session on init
[13-Apr-2026 17:53:51 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 17:53:51 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:03:54 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:03:54 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 18:03:54 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 18:04:09 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:04:09 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 18:04:09 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 18:08:30 Africa/Kigali] Validating session on init
[13-Apr-2026 18:08:30 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:08:30 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:08:30 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 185
[13-Apr-2026 18:08:31 Africa/Kigali] Validating session on init
[13-Apr-2026 18:08:31 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:08:31 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:09:47 Africa/Kigali] Validating session on init
[13-Apr-2026 18:09:47 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:09:47 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:09:47 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 186
[13-Apr-2026 18:09:47 Africa/Kigali] Validating session on init
[13-Apr-2026 18:09:47 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:09:47 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:15:10 Africa/Kigali] Validating session on init
[13-Apr-2026 18:15:10 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:15:10 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:15:10 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 187
[13-Apr-2026 18:15:11 Africa/Kigali] Validating session on init
[13-Apr-2026 18:15:11 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:15:11 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:16:48 Africa/Kigali] Validating session on init
[13-Apr-2026 18:16:48 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:16:48 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:16:48 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 188
[13-Apr-2026 18:16:48 Africa/Kigali] Validating session on init
[13-Apr-2026 18:16:48 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:16:48 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:17:25 Africa/Kigali] Validating session on init
[13-Apr-2026 18:17:25 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:17:25 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:17:33 Africa/Kigali] Validating session on init
[13-Apr-2026 18:17:33 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:17:33 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:18:00 Africa/Kigali] Validating session on init
[13-Apr-2026 18:18:00 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:18:00 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:18:12 Africa/Kigali] Validating session on init
[13-Apr-2026 18:18:12 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:18:12 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:18:12 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 189
[13-Apr-2026 18:18:12 Africa/Kigali] Validating session on init
[13-Apr-2026 18:18:12 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:18:12 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:19:03 Africa/Kigali] Validating session on init
[13-Apr-2026 18:19:03 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:19:03 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:19:03 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 190
[13-Apr-2026 18:19:04 Africa/Kigali] Validating session on init
[13-Apr-2026 18:19:04 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:19:04 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:20:09 Africa/Kigali] Validating session on init
[13-Apr-2026 18:20:09 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:20:09 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:20:24 Africa/Kigali] Validating session on init
[13-Apr-2026 18:20:24 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:20:24 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:20:24 Africa/Kigali] Revenue Stats - Total: 4, Revenue: 110920, Items: 9
[13-Apr-2026 18:20:35 Africa/Kigali] Validating session on init
[13-Apr-2026 18:20:35 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:20:35 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:20:35 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 191
[13-Apr-2026 18:20:35 Africa/Kigali] Validating session on init
[13-Apr-2026 18:20:35 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:20:35 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:20:35 Africa/Kigali] Validating session on init
[13-Apr-2026 18:20:35 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:20:35 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:21:52 Africa/Kigali] Validating session on init
[13-Apr-2026 18:21:52 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:21:52 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:21:52 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 192
[13-Apr-2026 18:21:53 Africa/Kigali] Validating session on init
[13-Apr-2026 18:21:53 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:21:53 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:24:44 Africa/Kigali] Validating session on init
[13-Apr-2026 18:24:44 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:24:44 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:27:07 Africa/Kigali] Validating session on init
[13-Apr-2026 18:27:07 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:27:07 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:27:34 Africa/Kigali] Validating session on init
[13-Apr-2026 18:27:34 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:27:34 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:27:54 Africa/Kigali] Validating session on init
[13-Apr-2026 18:27:54 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:27:54 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:27:54 Africa/Kigali] Revenue Stats - Total: 5, Revenue: 113280, Items: 11
[13-Apr-2026 18:27:59 Africa/Kigali] Validating session on init
[13-Apr-2026 18:27:59 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:27:59 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:28:10 Africa/Kigali] Validating session on init
[13-Apr-2026 18:28:10 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:28:10 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:29:35 Africa/Kigali] Validating session on init
[13-Apr-2026 18:29:35 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:29:35 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:29:35 Africa/Kigali] AUDIT: User: 2 | Action: create | Table: pos_products | Record: 193
[13-Apr-2026 18:29:35 Africa/Kigali] Validating session on init
[13-Apr-2026 18:29:35 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:29:35 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:31:10 Africa/Kigali] Validating session on init
[13-Apr-2026 18:31:10 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:31:10 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:31:59 Africa/Kigali] Validating session on init
[13-Apr-2026 18:31:59 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:31:59 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:33:43 Africa/Kigali] Validating session on init
[13-Apr-2026 18:33:43 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:33:43 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:35:31 Africa/Kigali] Validating session on init
[13-Apr-2026 18:35:31 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:35:31 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:35:31 Africa/Kigali] Revenue Stats - Total: 6, Revenue: 115050, Items: 12
[13-Apr-2026 18:35:47 Africa/Kigali] Validating session on init
[13-Apr-2026 18:35:47 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:35:47 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:37:42 Africa/Kigali] Validating session on init
[13-Apr-2026 18:37:42 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:37:42 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:37:43 Africa/Kigali] Validating session on init
[13-Apr-2026 18:37:43 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:37:43 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:37:43 Africa/Kigali] Validating session on init
[13-Apr-2026 18:37:43 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:37:43 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:38:00 Africa/Kigali] Validating session on init
[13-Apr-2026 18:38:00 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:38:00 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:38:00 Africa/Kigali] Revenue Stats - Total: 6, Revenue: 115050, Items: 12
[13-Apr-2026 18:38:06 Africa/Kigali] Validating session on init
[13-Apr-2026 18:38:06 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:38:06 Africa/Kigali] Session validated successfully
[13-Apr-2026 18:39:08 Africa/Kigali] Validating session on init
[13-Apr-2026 18:39:08 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 18:39:08 Africa/Kigali] Session validated successfully
[13-Apr-2026 19:39:35 Africa/Kigali] Login attempt - Username: superadmin
[13-Apr-2026 19:39:35 Africa/Kigali] User found: Yes
[13-Apr-2026 19:39:35 Africa/Kigali] AUDIT: User: 1 | Action: login_failed | Table: users | Record: 1
[2026-04-13 19:39:35] [WARNING] Login failed for user: superadmin - invalid_credentials
[13-Apr-2026 19:42:32 Africa/Kigali] Login attempt - Username: admin
[13-Apr-2026 19:42:32 Africa/Kigali] User found: Yes
[13-Apr-2026 19:42:33 Africa/Kigali] Login successful for user: admin
[13-Apr-2026 19:42:33 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[13-Apr-2026 19:42:33 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 197.157.135.91
[2026-04-13 19:42:33] [INFO] Successful login for user: admin
[13-Apr-2026 19:42:33 Africa/Kigali] Validating session on init
[13-Apr-2026 19:42:33 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 19:42:33 Africa/Kigali] Session validated successfully
[13-Apr-2026 19:43:08 Africa/Kigali] Validating session on init
[13-Apr-2026 19:43:08 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 19:43:08 Africa/Kigali] Session validated successfully
[13-Apr-2026 19:51:34 Africa/Kigali] Validating session on init
[13-Apr-2026 19:51:34 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 19:51:34 Africa/Kigali] Session validated successfully
[13-Apr-2026 19:51:34 Africa/Kigali] Revenue Stats - Total: 7, Revenue: 118000, Items: 14
[13-Apr-2026 19:51:39 Africa/Kigali] Validating session on init
[13-Apr-2026 19:51:39 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 19:51:39 Africa/Kigali] Session validated successfully
[2026-04-13 19:57:30] [INFO] Database connection test completed
[2026-04-13 19:58:40] [INFO] Database connection test completed
[13-Apr-2026 19:58:51 Africa/Kigali] Login attempt - Username: cashier1
[13-Apr-2026 19:58:51 Africa/Kigali] User found: Yes
[13-Apr-2026 19:58:51 Africa/Kigali] Login successful for user: cashier1
[13-Apr-2026 19:58:51 Africa/Kigali] AUDIT: User: 7 | Action: login | Table: users | Record: 7
[13-Apr-2026 19:58:51 Africa/Kigali] NOTIFICATION: User 7 - New Login: You logged in from 197.157.135.91
[2026-04-13 19:58:51] [INFO] Successful login for user: cashier1
[13-Apr-2026 19:58:52 Africa/Kigali] Validating session on init
[13-Apr-2026 19:58:52 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 19:58:52 Africa/Kigali] Session validated successfully
[13-Apr-2026 19:59:28 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 19:59:28 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 19:59:28 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 19:59:37 Africa/Kigali] Validating session on init
[13-Apr-2026 19:59:37 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 19:59:37 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:00:18 Africa/Kigali] Validating session on init
[13-Apr-2026 20:00:18 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:00:18 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:00:19 Africa/Kigali] Revenue Stats - Total: 8, Revenue: 121776, Items: 17
[13-Apr-2026 20:00:23 Africa/Kigali] Validating session on init
[13-Apr-2026 20:00:23 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:00:23 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:01:37 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:01:37 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 20:01:37 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 20:12:07 Africa/Kigali] Login attempt - Username: admin
[13-Apr-2026 20:12:07 Africa/Kigali] User found: Yes
[13-Apr-2026 20:12:08 Africa/Kigali] Login successful for user: admin
[13-Apr-2026 20:12:08 Africa/Kigali] AUDIT: User: 2 | Action: login | Table: users | Record: 2
[13-Apr-2026 20:12:08 Africa/Kigali] NOTIFICATION: User 2 - New Login: You logged in from 197.157.187.56
[2026-04-13 20:12:08] [INFO] Successful login for user: admin
[13-Apr-2026 20:12:08 Africa/Kigali] Validating session on init
[13-Apr-2026 20:12:08 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:12:08 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:12:39 Africa/Kigali] Validating session on init
[13-Apr-2026 20:12:39 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:12:39 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:12:39 Africa/Kigali] Revenue Stats - Total: 8, Revenue: 121776, Items: 17
[13-Apr-2026 20:12:44 Africa/Kigali] Validating session on init
[13-Apr-2026 20:12:44 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:12:44 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:12:48 Africa/Kigali] Validating session on init
[13-Apr-2026 20:12:48 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:12:48 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:19:39 Africa/Kigali] Validating session on init
[13-Apr-2026 20:19:39 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:19:39 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:34:10 Africa/Kigali] Validating session on init
[13-Apr-2026 20:34:10 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:34:10 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:34:26 Africa/Kigali] Validating session on init
[13-Apr-2026 20:34:26 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:34:26 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:34:26 Africa/Kigali] Revenue Stats - Total: 8, Revenue: 121776, Items: 17
[13-Apr-2026 20:34:28 Africa/Kigali] Validating session on init
[13-Apr-2026 20:34:28 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:34:28 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:34:30 Africa/Kigali] Validating session on init
[13-Apr-2026 20:34:30 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:34:30 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:38:30 Africa/Kigali] Validating session on init
[13-Apr-2026 20:38:30 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:38:30 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:39:27 Africa/Kigali] Validating session on init
[13-Apr-2026 20:39:27 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:39:27 Africa/Kigali] Session validated successfully
[13-Apr-2026 20:44:59 Africa/Kigali] Validating session on init
[13-Apr-2026 20:44:59 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 20:44:59 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:15:42 Africa/Kigali] Validating session on init
[13-Apr-2026 21:15:42 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:15:42 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:15:48 Africa/Kigali] Validating session on init
[13-Apr-2026 21:15:48 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:15:48 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:15:54 Africa/Kigali] Validating session on init
[13-Apr-2026 21:15:54 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:15:54 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:16:00 Africa/Kigali] Validating session on init
[13-Apr-2026 21:16:00 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:16:00 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:17:16 Africa/Kigali] Validating session on init
[13-Apr-2026 21:17:16 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:17:16 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:25:03 Africa/Kigali] Validating session on init
[13-Apr-2026 21:25:03 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:25:03 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:26:24 Africa/Kigali] Validating session on init
[13-Apr-2026 21:26:24 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:26:24 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:26:24 Africa/Kigali] Revenue Stats - Total: 9, Revenue: 126732, Items: 21
[13-Apr-2026 21:26:28 Africa/Kigali] Validating session on init
[13-Apr-2026 21:26:28 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:26:28 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:27:49 Africa/Kigali] Validating session on init
[13-Apr-2026 21:27:57 Africa/Kigali] Validating session on init
[13-Apr-2026 21:27:57 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:27:57 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:27:57 Africa/Kigali] Revenue Stats - Total: 9, Revenue: 126732, Items: 21
[13-Apr-2026 21:28:00 Africa/Kigali] Validating session on init
[13-Apr-2026 21:28:00 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:28:00 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:28:00 Africa/Kigali] Daily Sales Report - Date: 2026-04-13, Outlet ID: All
[13-Apr-2026 21:28:00 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[13-Apr-2026 21:28:00 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[13-Apr-2026 21:28:00 Africa/Kigali] Found 8 transactions
[13-Apr-2026 21:28:00 Africa/Kigali] Report Summary - Transactions: 8, Total Sales: 42362
[13-Apr-2026 21:28:11 Africa/Kigali] Validating session on init
[13-Apr-2026 21:28:12 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:28:12 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:28:12 Africa/Kigali] Daily Sales Report - Date: 2026-04-13, Outlet ID: All
[13-Apr-2026 21:28:12 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[13-Apr-2026 21:28:12 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[13-Apr-2026 21:28:12 Africa/Kigali] Found 8 transactions
[13-Apr-2026 21:28:12 Africa/Kigali] Report Summary - Transactions: 8, Total Sales: 42362
[13-Apr-2026 21:28:14 Africa/Kigali] Validating session on init
[13-Apr-2026 21:28:14 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:28:14 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:28:14 Africa/Kigali] Daily Sales Report - Date: 2026-04-13, Outlet ID: All
[13-Apr-2026 21:28:14 Africa/Kigali] Available columns in pos_sales: sale_id, receipt_number, shift_id, user_id, outlet_id, guest_id, reservation_id, customer_name, customer_email, subtotal, tax_amount, discount_amount, discount_type, discount_value, total_amount, payment_method_id, payment_status, transaction_type, notes, sale_time, created_at
[13-Apr-2026 21:28:14 Africa/Kigali] SQL Query: SELECT 
                    s.sale_id, s.receipt_number, s.sale_time, s.total_amount, s.customer_name, 'cash' as payment_method,
                    (SELECT COALESCE(SUM(quantity), 0) FROM pos_sale_items WHERE sale_id = s.sale_id) as item_count
                FROM pos_sales s
                
                WHERE DATE(s.sale_time) = ?
                ORDER BY s.sale_time
[13-Apr-2026 21:28:14 Africa/Kigali] Found 8 transactions
[13-Apr-2026 21:28:14 Africa/Kigali] Report Summary - Transactions: 8, Total Sales: 42362
[13-Apr-2026 21:28:35 Africa/Kigali] Validating session on init
[13-Apr-2026 21:28:35 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:28:35 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:28:35 Africa/Kigali] Revenue Stats - Total: 9, Revenue: 126732, Items: 21
[13-Apr-2026 21:30:23 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:30:23 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:30:23 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:30:40 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:30:40 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:30:40 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:31:27 Africa/Kigali] Validating session on init
[13-Apr-2026 21:31:27 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:31:27 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:31:27 Africa/Kigali] Revenue Stats - Total: 9, Revenue: 126732, Items: 21
[13-Apr-2026 21:31:31 Africa/Kigali] Validating session on init
[13-Apr-2026 21:31:31 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:31:31 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:31:35 Africa/Kigali] Validating session on init
[13-Apr-2026 21:31:35 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:31:35 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:31:35 Africa/Kigali] Revenue Stats - Total: 9, Revenue: 126732, Items: 21
[13-Apr-2026 21:31:40 Africa/Kigali] Validating session on init
[13-Apr-2026 21:31:40 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:31:40 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:31:40 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:31:40 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:31:40 Africa/Kigali] AUDIT: User: 2 | Action: access_denied
[13-Apr-2026 21:31:42 Africa/Kigali] Validating session on init
[13-Apr-2026 21:31:42 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:31:42 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:31:42 Africa/Kigali] Revenue Stats - Total: 9, Revenue: 126732, Items: 21
[13-Apr-2026 21:31:46 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:31:46 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:31:46 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:31:46 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:31:46 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:31:46 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:31:47 Africa/Kigali] Validating session on init
[13-Apr-2026 21:31:47 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:31:47 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:31:47 Africa/Kigali] Revenue Stats - Total: 9, Revenue: 126732, Items: 21
[13-Apr-2026 21:31:54 Africa/Kigali] Validating session on init
[13-Apr-2026 21:31:54 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:31:54 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:32:00 Africa/Kigali] Validating session on init
[13-Apr-2026 21:32:00 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:32:00 Africa/Kigali] Session validated successfully
[13-Apr-2026 21:32:04 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:32:04 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:32:04 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:32:34 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:32:34 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:32:34 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:33:25 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:33:25 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:33:25 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:33:25 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:33:25 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:33:25 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:33:27 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:33:27 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:33:27 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:33:30 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:33:30 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:33:30 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:33:31 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:33:31 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:33:31 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:33:32 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:33:32 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:33:32 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:34:29 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:34:29 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:34:29 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:34:29 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:34:29 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:34:29 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:34:52 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:34:52 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:34:52 Africa/Kigali] No valid session or remember token - redirecting to login
[13-Apr-2026 21:34:52 Africa/Kigali] require_auth called - Checking session
[13-Apr-2026 21:34:52 Africa/Kigali] validate_session failed, checking remember token
[13-Apr-2026 21:34:52 Africa/Kigali] No valid session or remember token - redirecting to login
