Commission Report

connect_error) die("Connection failed: " . $conn->connect_error); $loginType = $_SESSION['type'] ?? 'admin'; $loginId = $_SESSION['user_id'] ?? 0; if (!$dateFrom || !$dateTo) { echo "
Please select valid date range!
"; return; } // ---- Slab setup ---- $daysDiff = (strtotime($dateTo) - strtotime($dateFrom)) / (60 * 60 * 24); if ($daysDiff >= 300) { $slabs = [ ['min'=>50, 'max'=>99, 'commission'=>45], ['min'=>100,'max'=>199, 'commission'=>70], ['min'=>200,'max'=>499, 'commission'=>110], ['min'=>500,'max'=>1000, 'commission'=>150], ['min'=>1001,'max'=>9999999,'commission'=>200], ]; $slabLabel = "1 Year (360 Days)"; } else { $slabs = [ ['min'=>50, 'max'=>99, 'commission'=>20], ['min'=>100,'max'=>199, 'commission'=>30], ['min'=>200,'max'=>499, 'commission'=>50], ['min'=>500,'max'=>1000, 'commission'=>70], ['min'=>1001,'max'=>9999999,'commission'=>100], ]; $slabLabel = "6 Months (180 Days)"; } // ---- Query ---- $sql = "SELECT u.user_id, u.user_name, u.comi_rate, COALESCE(SUM(t.AT_AMOUNT),0) AS total_amount FROM `{$GLOBALS['arif_users']}` u LEFT JOIN `{$GLOBALS['arif_ac']}` a ON u.user_id = a.AA_AGENT LEFT JOIN `{$GLOBALS['arif_tran']}` t ON a.AA_ACNO = t.AT_ACID AND t.AT_TIMESTAMP BETWEEN '{$dateFrom} 00:00:00' AND '{$dateTo} 23:59:59' WHERE u.type = 'agent'"; if ($loginType === 'agent') { $sql .= " AND u.user_id = '{$loginId}'"; } $sql .= " GROUP BY u.user_id, u.user_name, u.comi_rate ORDER BY u.user_name ASC"; $result = $conn->query($sql); if (!$result) { echo "
SQL Error: {$conn->error}
"; return; } echo "
Commission Report: {$dateFrom} → {$dateTo} ({$slabLabel})
"; $grandCollection = $grandSelfCom = $grandReferCom = 0; if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $agentId = $row['user_id']; $collection = floatval($row['total_amount']); $selfCom = ($collection * floatval($row['comi_rate'])) / 100; // ---- Refer Collection ---- $refQuery = "SELECT COALESCE(SUM(t.AT_AMOUNT),0) AS refer_total FROM `{$GLOBALS['arif_ac']}` a LEFT JOIN `{$GLOBALS['arif_tran']}` t ON a.AA_ACNO = t.AT_ACID AND t.AT_TIMESTAMP BETWEEN '{$dateFrom} 00:00:00' AND '{$dateTo} 23:59:59' WHERE a.AA_AGENT = '{$agentId}'"; $refRes = $conn->query($refQuery); $referCollection = 0; if ($refRes && $refRes->num_rows > 0) { $referCollection = floatval($refRes->fetch_assoc()['refer_total']); } // ---- Refer Commission ---- $referCom = 0; foreach ($slabs as $s) { if ($referCollection >= $s['min'] && $referCollection <= $s['max']) { $referCom = $s['commission']; break; } } $totalCom = $selfCom + $referCom; $grandCollection += $collection; $grandSelfCom += $selfCom; $grandReferCom += $referCom; echo " "; } } else { echo ""; } // ---- Grand Total ---- if ($loginType !== 'agent') { echo " "; } echo "
Agent ID Agent Name Total Collection Collection Commission ACC Open Commission Total Commission
{$agentId} {$row['user_name']} ".number_format($collection,2)." ".number_format($selfCom,2)." ".number_format($referCom,2)." ".number_format($totalCom,2)."
No data found
Grand Total: ".number_format($grandCollection,2)." ".number_format($grandSelfCom,2)." ".number_format($grandReferCom,2)." ".number_format($grandSelfCom + $grandReferCom,2)."
"; $conn->close(); } // ---- CALL FUNCTION ---- commission_report($dFrom, $dTo); ?>