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); } } ?>