getConnection();
// Initialize variables with default values
$username = $_SESSION['username'] ?? 'User';
$email = $_SESSION['email'] ?? '';
$tier = $_SESSION['tier'] ?? 'basic';
$package = $_SESSION['package'] ?? 'Starter';
$balance = $_SESSION['balance'] ?? 0;
$total_deposits = $_SESSION['total_deposits'] ?? 0;
$total_withdrawals = $_SESSION['total_withdrawals'] ?? 0;
$rewards = $_SESSION['rewards'] ?? 0;
$earnings = $total_deposits - $total_withdrawals;
try {
// Query to get user data
$query = "SELECT u.*, up.first_name, up.last_name, up.profile_picture
FROM users u
LEFT JOIN user_profiles up ON u.id = up.user_id
WHERE u.id = :user_id";
$stmt = $db->prepare($query);
$stmt->bindParam(':user_id', $user_id);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$user = $stmt->fetch(PDO::FETCH_ASSOC);
// Assign session variables and local variables
$username = $_SESSION['username'] = $user['username'];
$email = $_SESSION['email'] = $user['email'];
$tier = $_SESSION['tier'] = $user['tier'];
$package = $_SESSION['package'] = $user['package'];
$balance = $_SESSION['balance'] = $user['balance'];
$total_deposits = $_SESSION['total_deposits'] = $user['total_deposits'];
$total_withdrawals = $_SESSION['total_withdrawals'] = $user['total_withdrawals'];
$rewards = $_SESSION['rewards'] = $user['rewards'];
$earnings = $total_deposits - $total_withdrawals;
// Get active package info
$package_query = "SELECT p.* FROM user_packages up
JOIN packages p ON up.package_id = p.id
WHERE up.user_id = :user_id AND up.status = 'active'
ORDER BY up.end_date DESC LIMIT 1";
$package_stmt = $db->prepare($package_query);
$package_stmt->bindParam(':user_id', $user_id);
$package_stmt->execute();
if ($package_stmt->rowCount() > 0) {
$active_package = $package_stmt->fetch(PDO::FETCH_ASSOC);
$_SESSION['package_details'] = $active_package;
}
// Get claim statistics
$claims_stats_query = "
SELECT
COUNT(*) as total_claims,
SUM(CASE WHEN status = 'approved' THEN 1 ELSE 0 END) as approved_claims,
SUM(CASE WHEN status = 'pending' THEN 1 ELSE 0 END) as pending_claims,
SUM(CASE WHEN status = 'rejected' THEN 1 ELSE 0 END) as rejected_claims,
SUM(CASE WHEN status = 'approved' THEN amount ELSE 0 END) as approved_amount,
SUM(CASE WHEN status = 'pending' THEN amount ELSE 0 END) as pending_amount,
SUM(amount) as total_amount
FROM agent_claims
WHERE user_id = :user_id
";
$stats_stmt = $db->prepare($claims_stats_query);
$stats_stmt->bindParam(':user_id', $user_id);
$stats_stmt->execute();
$claims_stats = $stats_stmt->fetch(PDO::FETCH_ASSOC);
// Get pending claims
$pending_claims_query = "
SELECT ac.*, u.username, u.email
FROM agent_claims ac
JOIN users u ON ac.user_id = u.id
WHERE ac.user_id = :user_id AND ac.status = 'pending'
ORDER BY ac.created_at DESC
";
$pending_stmt = $db->prepare($pending_claims_query);
$pending_stmt->bindParam(':user_id', $user_id);
$pending_stmt->execute();
$pending_claims = $pending_stmt->fetchAll(PDO::FETCH_ASSOC);
// Get approved claims
$approved_claims_query = "
SELECT ac.*, u.username, u.email
FROM agent_claims ac
JOIN users u ON ac.user_id = u.id
WHERE ac.user_id = :user_id AND ac.status = 'approved'
ORDER BY ac.approved_at DESC
";
$approved_stmt = $db->prepare($approved_claims_query);
$approved_stmt->bindParam(':user_id', $user_id);
$approved_stmt->execute();
$approved_claims = $approved_stmt->fetchAll(PDO::FETCH_ASSOC);
// Get rejected claims
$rejected_claims_query = "
SELECT ac.*, u.username, u.email
FROM agent_claims ac
JOIN users u ON ac.user_id = u.id
WHERE ac.user_id = :user_id AND ac.status = 'rejected'
ORDER BY ac.updated_at DESC
";
$rejected_stmt = $db->prepare($rejected_claims_query);
$rejected_stmt->bindParam(':user_id', $user_id);
$rejected_stmt->execute();
$rejected_claims = $rejected_stmt->fetchAll(PDO::FETCH_ASSOC);
} else {
$error_message = "User not found in database.";
}
} catch(PDOException $exception) {
$error_message = "Database error: " . $exception->getMessage();
}
// Initialize empty arrays if queries failed
if (!isset($claims_stats)) {
$claims_stats = [
'total_claims' => 0,
'approved_claims' => 0,
'pending_claims' => 0,
'rejected_claims' => 0,
'approved_amount' => 0,
'pending_amount' => 0,
'total_amount' => 0
];
}
if (!isset($pending_claims)) {
$pending_claims = [];
}
if (!isset($approved_claims)) {
$approved_claims = [];
}
if (!isset($rejected_claims)) {
$rejected_claims = [];
}
?>
Japanese Motors — Agent Claims
Jmotors
🏷️ Agent Claim Requests
Manage commission claims and track your agent earnings
Pending Claims
Approved Claims
Rejected Claims
New Claim
Pending Claims
Total Pending Claims
Total Amount
KES
Claim ID: JM-
Claim Amount
KES
Submitted
Description
Claim Type
No pending claims to display
All your claims have been processed
Claims Statistics
Total Claims
Approved
Pending
Rejected
Amount Summary
Total Approved KES
Pending Approval KES
Total Processed KES
Approved Claims
Claim ID: JM-
Approved
Claim Amount
KES
Approved On
Description
Approval Notes
No approved claims to display
Approved claims will appear here
Rejected Claims
Claim ID: JM-
Rejected
Claim Amount
KES
Rejected On
Description
Rejection Reason
No rejected claims to display
Rejected claims will appear here
Submit New Claim
Claim Guidelines
Commission Structure
Direct Sales: 15% commission
Team Override: 5% on level 1 agents
Referral Bonus: 1,000 KES per agent
Claims are processed within 3-5 business days. Ensure all information is accurate to avoid delays.
Need Help?
Contact support if you have questions about your claim
Claims FAQ
How long does claim processing take?
Standard claims are processed within 3-5 business days. Complex claims or those requiring additional verification may take up to 10 business days. You will receive a notification once your claim has been processed.
What documents do I need to submit with my claim?
For commission claims: sales reports and transaction IDs. For bonus claims: performance metrics and achievement proof. For referral claims: agent IDs and signup dates. All claims benefit from supporting documentation like screenshots or exported reports.
When will I receive payment for approved claims?
Approved claims are paid out every Friday via your selected payment method. Payments are processed by 5 PM EAT. If your claim is approved on Thursday, you can expect payment the following day. Delays may occur during holidays or system maintenance.