diff --git a/Admin/v2/financial/settlements.php b/Admin/v2/financial/settlements.php new file mode 100644 index 0000000..91774a8 --- /dev/null +++ b/Admin/v2/financial/settlements.php @@ -0,0 +1,44 @@ + 'Unauthorized access.']); + exit; +} + +try { + // جلب السائقين الذين لديهم مستحقات أو مديونية + // الحسبة: إجمالي (price_for_driver) من الرحلات المكتملة + $stmt = $con->prepare(" + SELECT + d.id, d.first_name, d.last_name, d.phone, + SUM(r.price_for_driver) as total_earned, + COUNT(r.id) as total_rides + FROM driver d + LEFT JOIN ride r ON d.id = r.driver_id AND r.status = 'Finished' + GROUP BY d.id + HAVING total_earned > 0 + ORDER BY total_earned DESC + LIMIT 50 + "); + $stmt->execute(); + $drivers = $stmt->fetchAll(PDO::FETCH_ASSOC); + + // فك تشفير البيانات + foreach ($drivers as &$driver) { + $driver['first_name'] = $encryptionHelper->decryptData($driver['first_name']); + $driver['last_name'] = $encryptionHelper->decryptData($driver['last_name']); + $driver['phone'] = $encryptionHelper->decryptData($driver['phone']); + } + + echo json_encode([ + 'status' => 'success', + 'data' => $drivers + ]); +} catch (Exception $e) { + http_response_code(500); + echo json_encode(['status' => 'error', 'message' => $e->getMessage()]); +} +?> diff --git a/Admin/v2/financial/stats.php b/Admin/v2/financial/stats.php new file mode 100644 index 0000000..d0f19d9 --- /dev/null +++ b/Admin/v2/financial/stats.php @@ -0,0 +1,34 @@ + 'Unauthorized access.']); + exit; +} + +try { + // إحصائيات مالية عامة + $stmt = $con->prepare(" + SELECT + SUM(price_for_passenger) as total_revenue, + SUM(price_for_driver) as total_driver_pay, + SUM(price_for_passenger - price_for_driver) as total_platform_commission, + (SELECT SUM(amount) FROM payments WHERE payment_method = 'Cash') as cash_payments, + (SELECT SUM(amount) FROM payments WHERE payment_method != 'Cash') as digital_payments + FROM ride + WHERE status = 'Finished' + "); + $stmt->execute(); + $stats = $stmt->fetch(PDO::FETCH_ASSOC); + + echo json_encode([ + 'status' => 'success', + 'data' => $stats + ]); +} catch (Exception $e) { + http_response_code(500); + echo json_encode(['status' => 'error', 'message' => $e->getMessage()]); +} +?>