<?php
// Include database connection
require_once('connectionSC.php');

// Cek koneksi database
if ($conn->connect_error) {
    die(json_encode([
        "status" => "error",
        "message" => "Error in connecting to Database: " . $conn->connect_error
    ]));
}

// Mendapatkan parameter username atau id pengguna dan cabang
if (isset($_GET['username']) && isset($_GET['branch'])) {
    $username = $_GET['username'];
    $branch = $_GET['branch']; // Menambahkan parameter cabang
} else {
    echo json_encode([
        "status" => "error",
        "message" => "Username and branch are required."
    ]);
    exit();
}

// Sanitize username dan branch untuk menghindari SQL injection
$username = strtoupper(trim($username)); // Uppercase dan trim untuk konsistensi
$branch = strtoupper(trim($branch)); // Uppercase untuk konsistensi nama cabang

// Query untuk mengambil data ranking berdasarkan SPV dan cabang
$query = "SELECT UPPER(spv) AS spv, COUNT(nik_nasabah) AS total 
          FROM hasil 
          WHERE STATUS IN ('cair', 'acc')
            AND (MONTH(tanggal_edit) = MONTH(NOW()) AND YEAR(tanggal_edit) = YEAR(NOW()))
    AND NOT (MONTH(tanggal_edit) = 12 AND YEAR(tanggal_edit) < YEAR(NOW()))
            AND UPPER(h_cabang) = '$branch'  -- Filter berdasarkan cabang
          GROUP BY spv 
          ORDER BY total DESC";

$result = $conn->query($query);

// Set header menjadi JSON
header('Content-Type: application/json');

if ($result && $result->num_rows > 0) {
    $data = [];
    $myRanking = null;
    $rank = 1; // Mulai dari ranking 1

    // Mengambil data untuk ranking dan mencari ranking untuk pengguna (spv yang sesuai dengan username)
    while ($row = $result->fetch_assoc()) {
        $spv = $row['spv'];
        $total = (int)$row['total'];

        // Menambahkan data ranking ke dalam array
        $data[] = [
            "name" => $spv,
            "total" => $total
        ];

        // Mengecek apakah spv saat ini sesuai dengan username yang login menggunakan LIKE (case insensitive)
        if (strpos(strtoupper($spv), $username) !== false) {
            $myRanking = [
                "rank" => $rank,
                "name" => $spv,
                "total" => $total
            ];
        }
        $rank++;
    }

    // Menambahkan data ranking saya jika ditemukan
    if ($myRanking) {
        $response = [
            "ranking" => $data,
            "myRanking" => $myRanking
        ];
    } else {
        // Jika tidak ditemukan, beri nilai default untuk ranking saya
        $response = [
            "ranking" => $data,
            "myRanking" => [
                "rank" => "N/A",
                "name" => $username,
                "total" => 0
            ]
        ];
    }

    // Output data sebagai JSON
    echo json_encode($response);
} else {
    echo json_encode([
        "status" => "empty",
        "message" => "No data found for the current month in branch $branch."
    ]);
}

// Menutup koneksi
$conn->close();
?>
