gestione gare pubbliche
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 

160 righe
5.4 KiB

<?
class pubblicitaLegale {
public $modulo;
public $modulo_riferimento;
protected $gestore;
public $elemento;
public $elemento_comunicazione;
public $sub;
public $lock;
public $oggetto;
public $codice_pec;
protected $admin;
public $partecipanti;
protected $db;
public static function moduliAbilitati() {
$return = [];
$return["pcp"] = ["modulo_riferimento"=> "pcp","titolo"=>"Appalti pre-commerciali","script"=>"/pcp/pubblicita/init.php"];
$return["omc"] = ["modulo_riferimento"=> "omc","titolo"=>"Consultazioni","script"=>"/omc/pubblicita/init.php"];
$return["gare"] = ["modulo_riferimento"=> "gare","titolo"=>"Gare ed affidamenti","script"=>"/gare/pubblicita/init.php"];
$return["concorsi"] = ["modulo_riferimento"=> "concorsi","titolo"=>"Concorsi di progettazione","script"=>"/concorsi/pubblicita/init.php"];
$return["albo_fornitori"] = ["modulo_riferimento"=> "albo_fornitori","titolo"=>"Elenchi fornitori","script"=>"/albo_fornitori/partecipanti/pubblicita/init.php"];
return $return;
}
public function __construct($modulo=null,$elemento=null,$sub = 0)
{
if (!empty($modulo) && !empty($elemento)) {
if (!empty(self::moduliAbilitati()[$modulo])) {
global $pdo;
$this->modulo = $modulo;
$this->elemento = $elemento;
$this->gestore = $_SESSION["ente"]->codice;
$this->sub = $sub;
$this->db = $pdo;
$this->elemento_comunicazione = null;
$this->modulo_riferimento = $this->getModuloRiferimento();
return $this;
}
}
return false;
}
public function getPubblicazioni($filters=[],$order=[],$start=0,$limit=-1) {
$sql = "SELECT * FROM b_pubblicita_legale WHERE modulo = :modulo ";
$bind = [":codice_ente"=>$this->gestore];
if (!empty($this->modulo)) {
$bind[":modulo"] = $this->modulo;
if (!empty($this->elemento)) {
$bind[":elemento"] = $this->elemento;
$sql .= " AND codice_elemento = :elemento " ;
}
if (!empty($this->sub)) {
$bind[":sub"] = $this->sub;
$sql .= " AND sub = :sub " ;
}
if (!empty($filters)) {
$keys = ["titolo","testo"];
$addWhere = [];
foreach($keys AS $key) {
if (isset($filters[$key]) || isset($filters["*"])) {
$value = $filters[$key] ?? $filters["*"];
$sudd = suddivisione_pdo($value,$key);
if (!empty($sudd)) {
$bind = $bind + $sudd["bind"];
$addWhere[] = $sudd["sql"];
}
}
}
if (count($addWhere) > 0) { $sql .= " AND (" . implode(" OR ",$addWhere) . ") "; }
if (isset($filters["codice"])) {
if (is_numeric($filters["codice"])) {
$bind[":codice"] = (int)$filters["codice"];
$sql .= " AND codice = :codice ";
} else if (is_array($filters["codice"]) && !empty($filters["codice"])) {
$cont = 0;
$codici = [];
foreach($filters["codice"] AS $codice) {
if (is_numeric($codice)) {
$cont++;
$bind[":codice_{$cont}"] = (int)$codice;
$codici[] = "codice = :codice_{$cont}";
}
}
if (!empty($codici)) {
$sql .= " AND (" . implode(" OR ",$codici) . ") ";
} else {
return false;
}
} else {
return false;
}
}
}
if (!empty($order)) {
$keys = ["timestamp","data","codice","titolo"];
$sortArray = [];
foreach($keys AS $key) {
if (isset($order[$key])) {
if (strcmp($order[$key],"ASC") === 0) {
$sortArray[] = "{$key} ASC";
} else {
$sortArray[] = "{$key} DESC";
}
}
}
if (count($sortArray) > 0) {
$sql .= " ORDER BY " . implode(",",$sortArray);
}
} else {
$sql .= " ORDER BY data DESC";
}
if (is_numeric($limit) && is_numeric($start) && $limit != -1) {
$start = (int)$start;
$limit = (int)$limit;
$sql .= " LIMIT {$start}, {$limit}";
}
$return = $this->db->go($sql,$bind)->fetchAll(PDO::FETCH_ASSOC);
return $return;
}
}
public function getInfoProcedura() {
global $beRoot;
$checkAdmin = false;
$path = $beRoot . self::moduliAbilitati()[$this->modulo]["script"];
if (file_exists($path)) { include($path); }
}
public function getModuloRiferimento() {
return self::moduliAbilitati()[$this->modulo]["modulo_riferimento"];
}
public function checkAdminPermission($operazione = "CHECK") {
global $beRoot;
$checkAdmin = true;
if (!empty(self::moduliAbilitati()[$this->modulo])) {
$path = $beRoot . self::moduliAbilitati()[$this->modulo]["script"];
if (file_exists($path)) {
include($path);
return $return;
}
}
return false;
}
public function printEditor() {
if ($this->checkAdminPermission()) {
$this->admin = true;
include (__DIR__."/backend-table.php");
}
return false;
}
}
?>