<?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

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

// Menentukan kondisi query berdasarkan branch
$whereClause = "";
if ($branch !== "SEMUA CABANG") {
    $whereClause = "AND UPPER(h_cabang) = '$branch'";
}

// Query untuk mengambil data ranking berdasarkan SPV dan cabang
$query = "SELECT UPPER(marketing) AS marketing, UPPER(spv) AS spv, COUNT(nik_nasabah) AS total, UPPER(h_cabang) AS cabang 
          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 spv LIKE '%$username%'
            $whereClause  -- Filter berdasarkan cabang jika bukan 'Semua Cabang'
          GROUP BY marketing, cabang
          ORDER BY total DESC";

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

// Set header menjadi JSON
header('Content-Type: application/json');
if ($result && $result->num_rows > 0) {
    $data = [];
    $rank = 1; // Inisialisasi rank mulai dari 1

    // Mengambil data untuk ranking
    while ($row = $result->fetch_assoc()) {
        $marketing = $row['marketing'];
        $total = (int)$row['total'];

        // Menambahkan data ranking ke dalam array tanpa kolom rank
        $data[] = [
            "rank" => $rank, // Menambahkan rank
            "name" => $marketing,
            "total" => $total
        ];

        $rank++; // Increment rank setelah setiap data
    }

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

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