<?php

ini_set('display_errors', 1);
error_reporting(E_ALL);

require_once("inc_sicurezza_login.php");
require_once("functions.php");

// Imposta l'intestazione per il JSON
header('Content-Type: application/json');

// Recupera i rivenditori
$sql_reseller = "SELECT * FROM rivenditori";
list($status_reseller, $contenuto_reseller, $nrows_reseller) = read_db_pdo($sql_reseller, $array_reseller);

if ($nrows_reseller <= 1) {
	echo json_encode(array("data" => array())); // Restituisci un array vuoto
	exit;
}

$staff = $contenuto_reseller;
$vettore_permessi = array(
	"6923e6c01ef0afda823f8a4085890079" => "ADMIN",
	"7f1ceb7c8aedd46408b3ea1796aa44a6" => "SUPER MASTER",
	"9d444c8a0c6f4935583d6bed6f44eabb" => "MASTER",
	"6a2c221670f4afb47057f9b7623c0547" => "SUBRESELLER",
	"2f976275b3f669d63d3fbc484f0c343b" => "RESELLER"
);
$not_include = $id_user_logged;

// Recupera i permessi dell'utente collegato
$sql_permessi = "SELECT permessi FROM rivenditori WHERE id_rivenditore = ?";
list($status_permessi, $contenuto_permessi, $nrows_permessi) = read_db_pdo($sql_permessi, array($id_user_logged));

if ($nrows_permessi > 0) {
	$user_permessi = $contenuto_permessi[0]['permessi'];

	if ($user_permessi == "6923e6c01ef0afda823f8a4085890079") {
		$sql_reseller2 = "SELECT R.*, R2.username AS superiore FROM rivenditori R 
                          LEFT JOIN rivenditori R2 ON R.id_superiore = R2.id_rivenditore";
	} else {
		$staffTree = buildStaffTree(strval($id_user_logged));
		$filtro_query_rivenditori = rtrim($filtro_query_rivenditori, ",");
		if (strlen($filtro_query_rivenditori) > 0) {
			$id_rivenditori_array = explode(',', $filtro_query_rivenditori);
			$placeholders = implode(',', array_fill(0, count($id_rivenditori_array), '?'));
			$sql_reseller2 = "SELECT R.*, R2.username AS superiore FROM rivenditori R 
                              LEFT JOIN rivenditori R2 ON R.id_superiore = R2.id_rivenditore 
                              WHERE R.id_superiore IN ($placeholders)";
		} else {
			echo json_encode(array("data" => array()));
			exit;
		}
	}

	list($status_reseller2, $contenuto_reseller2, $nrows_reseller2) = read_db_pdo($sql_reseller2, isset($id_rivenditori_array) ? $id_rivenditori_array : []);

	if (!$status_reseller2) {
		echo json_encode(array("error" => "Errore nell'esecuzione della query."));
		exit;
	}

	$vettore_rivenditori_json = array("data" => array());

	if ($nrows_reseller2 > 0) {
		foreach ($contenuto_reseller2 as $reseller) {
			$id_rivenditore = mb_convert_encoding($reseller["id_rivenditore"], 'UTF-8');
			$username = mb_convert_encoding($reseller["username"], 'UTF-8');
			$password = mb_convert_encoding($reseller["password"], 'UTF-8');
			$superiore = mb_convert_encoding($reseller["superiore"], 'UTF-8');
			$stato = mb_convert_encoding($reseller["stato"], 'UTF-8');
			$permessi = mb_convert_encoding($reseller["permessi"], 'UTF-8');
			$tipo = $vettore_permessi[$permessi];
			$ultima_ricarica = mb_convert_encoding($reseller["ultima_ricarica"], 'UTF-8');
			$crediti = mb_convert_encoding($reseller["crediti"], 'UTF-8');
			if (($tipo == "ADMIN") or ($tipo == "SUPER MASTER")) {
				$crediti = "∞";
			}
			$note = mb_convert_encoding($reseller["note"], 'UTF-8');

			if ($id_rivenditore != $not_include) {
				$array_clienti = array("id_rivenditore" => $id_rivenditore);
				$sql_clienti = "SELECT * FROM clienti WHERE id_rivenditore=:id_rivenditore";
				list($status_clienti, $contenuto_clienti, $nrows_clienti) = read_db_pdo($sql_clienti, $array_clienti);

				$n_clienti = $nrows_clienti;
				$pulsante = "<div class=\"dropdown\">
                    <button class=\"btn btn-danger dropdown-toggle\" type=\"button\" id=\"azione$id_rivenditore\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">
                        Azioni
                    </button>
                    <div class=\"dropdown-menu\" aria-labelledby=\"azione\" x-placement=\"top-start\" style=\"position: absolute; will-change: transform; top: 0px; left: 0px; transform: translate3d(0px, -181px, 0px);\">
                        <a class=\"dropdown-item\" href='#' data-toggle=\"modal\" data-target=\"#modifica_rivenditore\" data-whatever=\"modifica_rivenditore\" onclick='modifica_rivenditore($id_rivenditore,\"$username\",\"$note\",\"$password\",\"$crediti\");'>Modifica</a>";

				if (($tipo != "ADMIN") and ($tipo != "SUPER MASTER")) {
					$pulsante .= "
                        <a class=\"dropdown-item\" href='#' data-toggle=\"modal\" data-target=\"#aggiungi_crediti\" data-whatever=\"aggiungi_crediti\" onclick='aggiungi_crediti($id_rivenditore,\"$username\");'>Aggiungi Crediti</a>
                        <a class=\"dropdown-item\" href='#' data-toggle=\"modal\" data-target=\"#elimina_rivenditore\" data-whatever=\"elimina_rivenditore\" onclick='elimina_rivenditore($id_rivenditore,\"$username\");'>Elimina</a>
                    </div>
                    </div>";
				} else {
					$pulsante .= "
                        <a class=\"dropdown-item\" href='#' data-toggle=\"modal\" data-target=\"#elimina_rivenditore\" data-whatever=\"elimina_rivenditore\" onclick='elimina_rivenditore($id_rivenditore,\"$username\");'>Elimina</a>
                    </div>
                    </div>";
				}

				$vettore_rivenditori_json["data"][] = array(
					$id_rivenditore,
					$stato,
					$superiore,
					$username,
					$n_clienti,
					$crediti,
					$tipo,
					$ultima_ricarica,
					$note,
					$pulsante
				);
			}
		}

		echo json_encode($vettore_rivenditori_json);
		exit;
	}
} else {
	echo json_encode(array("error" => "Errore: nessun permesso trovato."));
	exit;
}
