$configPath = substr(__DIR__,0,strpos(__DIR__,"/public_html"))."/config.php";
include_once($configPath);
if (!empty($_SESSION["utente"]) && $_SESSION["utente"]->permission($radice) && $_SESSION["utente"]->permission("mercato")) {
if (isset($_GET["draw"])) {
$return = array();
$return["draw"] = (int)$_GET["draw"];
$return["recordsTotal"] = (int)0;
$return["recordsFiltered"] = (int)0;
$campi = array("codice","idVenditore","idProduttore","idStandard","brand","paeseOrigine","prezzo","prezzo","disponibilita","codice_cliente","codice_settore");
$codici_oe = Market::getOeInMercato();
if(!empty($codici_oe)){
$codici_oe = implode(',',purifyInput($codici_oe));
$bind = [];
$sql = "SELECT b_prodotti.*
FROM b_prodotti
WHERE codice_oe IN ($codici_oe)
AND b_prodotti.soft_delete = 'N'
AND b_prodotti.attivo = 'S'
AND b_prodotti.confermato = 'S'
AND b_prodotti.codice NOT IN (
SELECT codice_aggiornamento
FROM b_prodotti
WHERE confermato='S'
AND codice_aggiornamento IS NOT NULL
)";
// gestione dei filtri
$cpv = [];
if (!empty($_GET["cpv"])) {
$cpv = explode(",",base64_decode($_GET["cpv"]));
}
if (count($cpv) > 0) {
$cpv = array_unique($cpv);
$where_pos = strpos($sql,"WHERE") - 1;
$rel = " JOIN r_cpv_prodotti ON b_prodotti.codice = r_cpv_prodotti.codice_prodotto ";
$sql = substr_replace($sql, $rel, $where_pos,0);
$sql .= " AND (";
$n_cat = 0;
foreach($cpv as $codice) {
$n_cat++;
if ($codice != "") {
$bind[":cat_".$n_cat] = $codice;
$sql .= "(r_cpv_prodotti.cpv = :cat_".$n_cat ." ";
if (strlen($codice)>2) {
$diff = strlen($codice) - 2;
$n_sub_cat = 0;
for($i=1;$i<=$diff;$i++) {
$n_sub_cat++;
$bind[":cat_".$n_cat."_".$n_sub_cat] = substr($codice,0,$i*-1);
$sql .= "OR r_cpv_prodotti.cpv = :cat_".$n_cat."_".$n_sub_cat . " ";
}
}
$sql.=") OR ";
}
}
$sql = substr($sql,0,-4);
$sql .= ")";
}
if (!empty($_GET["advanced"])) {
foreach($_GET["advanced"] as $campo => $valore) {
if (in_array($campo, $campi)!==false) {
if (strpos($campo,"prezzo")===false) {
$sql .= "AND ( ";
$suddivisione = suddivisione_pdo($valore,$campo,$campo);
$sql .= "(" . $suddivisione["sql"] . ") ";
$bind = array_merge($bind,$suddivisione["bind"]);
$sql .= ") ";
}
}
}
}
if (!empty($_GET["advanced"]["prezzo-min"])) {
$sql .= " AND (b_prodotti.prezzo >= :prezzo_min) ";
$bind[":prezzo_min"] = $_GET["advanced"]["prezzo-min"];
}
if (!empty($_GET["advanced"]["prezzo-max"])) {
$sql .= " AND (b_prodotti.prezzo <= :prezzo_max) ";
$bind[":prezzo_max"] = $_GET["advanced"]["prezzo-max"];
}
$risultati = $pdo->go($sql,$bind);
if ($risultati->rowCount() > 0) {
if (!empty($_GET["search"]["value"])) {
$return["recordsFiltered"] = (int)$risultati->rowCount();
} else {
$return["recordsFiltered"] = $return["recordsTotal"];
}
$return["data"] = array();
while($record = $risultati->fetch(PDO::FETCH_ASSOC)) {
$oe = oeManager::getOE($record['codice_oe']);
$row = array();
$row[] = $record["idVenditore"];
$row[] = "" . $record["denominazione"] . "";
$row[] = $record["brand"];
$row[] = "". $oe["ragione_sociale"] ."";
$row[] = number_format($record["prezzo"],2,",",".");
$row[] = "";
$return["data"][] = $row;
}
}else{
$return["data"] = [];
}
}else{
$return["data"] = [];
}
echo json_encode($return);
}
}
?>