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.
205 righe
6.6 KiB
205 righe
6.6 KiB
<?php |
|
|
|
require_once ROOT . "lib/classes/IDataClass.php"; |
|
|
|
/** |
|
* Description of DomandaScontiControlli |
|
* |
|
* @author Amerigo |
|
*/ |
|
class DomandaScontiControlli extends DataClass { |
|
|
|
const TABLE_NAME = "DOMANDA_SCONTI_CONTROLLI"; |
|
const SEQ_NAME = "DOMANDA_SCONTI_CONTROLLI_ID_SEQ"; |
|
|
|
public $ID = 0; |
|
public $ID_DOMANDA_SCONTI = 0; |
|
public $LOTTO = 0; |
|
public $ESITO = 0; |
|
public $DATA_ESITO = NULL; |
|
public $ID_UID_FIREBASE_ADMIN = 0; |
|
|
|
public function __construct($src = null) { |
|
global $con; |
|
if ($src == null) { |
|
return; |
|
} |
|
$stripSlashes = 0; |
|
if (is_array($src)) { |
|
if (isset($src['ID']) && $src['ID'] > 0) { |
|
$this->_loadAndFillObject($src['ID'], self::TABLE_NAME, $src); |
|
} else { |
|
$this->_loadByRow($src, $stripSlashes); |
|
} |
|
} elseif (intval($src)) { |
|
$sql = "SELECT * FROM " . self::TABLE_NAME . " WHERE ID = :id"; |
|
$query = $con->prepare($sql); |
|
$query->bindParam(":id", $src); |
|
try { |
|
$query->execute(); |
|
$it = $query->fetchAll(PDO::FETCH_ASSOC); |
|
Utils::FillObjectFromRow($this, $it[0]); |
|
} catch (Exception $exc) { |
|
$exc->getMessage(); |
|
} |
|
} |
|
} |
|
|
|
/** |
|
* |
|
* @param type $filter |
|
* @return type |
|
*/ |
|
public static function Count($filter = null) { |
|
return parent::_count(self::TABLE_NAME, $filter); |
|
} |
|
|
|
public static function getEsiti() { |
|
global $con; |
|
$return = array(); |
|
$sel = $con->prepare("SELECT ESITO, COUNT(ID) AS TOTALE FROM " . self::TABLE_NAME . " GROUP BY ESITO"); |
|
try { |
|
$sel->execute(); |
|
$itAll = $sel->fetchAll(PDO::FETCH_ASSOC); |
|
$return = $itAll; |
|
} catch (Exception $exc) { |
|
echo $exc->getMessage(); |
|
} |
|
return $return; |
|
} |
|
|
|
public static function loadControlloFromSconto($id_domanda_sconti = 0) { |
|
global $con; |
|
$sel = $con->prepare("SELECT * FROM " . self::TABLE_NAME . " WHERE ID_DOMANDA_SCONTI=:ID_DOMANDA_SCONTI"); |
|
$sel->bindParam(":ID_DOMANDA_SCONTI", $id_domanda_sconti); |
|
try { |
|
$sel->execute(); |
|
$it = $sel->fetch(PDO::FETCH_ASSOC); |
|
} catch (Exception $exc) { |
|
echo $exc->getMessage(); |
|
} |
|
return $it; |
|
} |
|
|
|
public static function generazioneRandomicaDomande() { |
|
global $con; |
|
$return = Utils::initDefaultResponse(1); |
|
$selPrio = $con->prepare("SELECT ID, LOTTO |
|
FROM ( |
|
SELECT ID, LOTTO |
|
FROM DOMANDA_SCONTI |
|
WHERE STATO = :STATO AND PRIORITY=1 |
|
ORDER BY DBMS_RANDOM.VALUE |
|
) |
|
WHERE ROWNUM <= (SELECT ROUND(COUNT(ID) * " . PERCENTUALE_PRIORITARI . ") FROM DOMANDA_SCONTI WHERE STATO =:STATO AND PRIORITY=1)"); |
|
$selPrio->bindValue(":STATO", RS_PRESA_IN_CARICO); |
|
try { |
|
$selPrio->execute(); |
|
$itAllPrio = $selPrio->fetchAll(PDO::FETCH_ASSOC); |
|
} catch (Exception $exc) { |
|
echo $exc->getMessage(); |
|
} |
|
if (count($itAllPrio) > 500) { |
|
$estraggoPrio = array_slice($itAllPrio, 0, 500, true); |
|
$return['datiPrio'] = $estraggoPrio; |
|
} else { |
|
$return['datiPrio'] = $itAllPrio; |
|
} |
|
|
|
$selNonPrio = $con->prepare("SELECT ID, LOTTO |
|
FROM ( |
|
SELECT ID, LOTTO |
|
FROM DOMANDA_SCONTI |
|
WHERE STATO = :STATO AND PRIORITY=0 AND ISEE!=1 |
|
ORDER BY DBMS_RANDOM.VALUE |
|
) |
|
WHERE ROWNUM <= (SELECT ROUND(COUNT(ID) * " . PERCENTUALE_RESIDENTI . ") FROM DOMANDA_SCONTI WHERE STATO =:STATO AND PRIORITY=0 AND ISEE!=1)"); |
|
$selNonPrio->bindValue(":STATO", RS_PRESA_IN_CARICO); |
|
try { |
|
$selNonPrio->execute(); |
|
$itAllNonPrio = $selNonPrio->fetchAll(PDO::FETCH_ASSOC); |
|
} catch (Exception $exc) { |
|
echo $exc->getMessage(); |
|
} |
|
|
|
if (count($itAllNonPrio) > 500) { |
|
$estraggoNonPrio = array_slice($itAllNonPrio, 0, 500, true); |
|
$return['datiNonPrio'] = $estraggoNonPrio; |
|
} else { |
|
$return['datiNonPrio'] = $itAllNonPrio; |
|
} |
|
|
|
$datiCombinati = array_merge($return['datiPrio'], $return['datiNonPrio']); |
|
$return['totaleID'] = $datiCombinati; |
|
return $return; |
|
} |
|
|
|
public static function creaRecord($listaID = array()) { |
|
global $con; |
|
$return = Utils::initDefaultResponse(-999); |
|
$contatore = 0; |
|
if (count($listaID) > 0) { |
|
$con->db_transactionStart(); |
|
foreach ($listaID as $valore) { |
|
$salvoRecord = new DomandaScontiControlli(); |
|
$salvoRecord->ID_DOMANDA_SCONTI = $valore['ID']; |
|
$salvoRecord->LOTTO = $valore['LOTTO']; |
|
$risposta = $salvoRecord->save(); |
|
if ($risposta['esito'] == 1) { |
|
$contatore++; |
|
} |
|
} |
|
if ($contatore == count($listaID)) { |
|
$return['esito'] = 1; |
|
$con->db_transactionCommit(); |
|
} else { |
|
$return['erroreDescrizione'] = "Attenzione , riprovare o contattare il Personale Tecnico"; |
|
$con->db_transactionRollback(); |
|
} |
|
} |
|
return $return; |
|
} |
|
|
|
/** |
|
* |
|
* @global type $con |
|
* @global type $LoggedAccount |
|
* @return type |
|
*/ |
|
public function Save() { |
|
global $con, $LoggedAccount; |
|
$vars = get_object_vars($this); |
|
unset($vars["DATA_REGISTRAZIONE"]); |
|
$sql = Utils::prepareQuery(self::TABLE_NAME, $vars); |
|
/* Utils::print_array($sql); |
|
Utils::print_array($vars); */ |
|
$queryabi = $con->prepare($sql); |
|
foreach ($vars as $k => $v) { |
|
if ($k == "ID" && $v == 0) { |
|
continue; |
|
} |
|
$queryabi->bindValue(":" . $k, $v); |
|
} |
|
try { |
|
$it = parent::_Save($queryabi); |
|
if (trim($it['erroreCode']) == 'HY000') { |
|
$it['erroreDescrizione'] = '<b>Richiesta già inserita!</b><br/> Non è possibile richiedere un ulteriore rimborso per questo biglietto'; |
|
} |
|
} catch (Exception $exc) { |
|
$it['erroreDescrizione'] = $exc->getMessage(); |
|
} |
|
return $it; |
|
} |
|
|
|
public function Delete() { |
|
return parent::_Delete(self::TABLE_NAME, "ID = " . $this->ID); |
|
} |
|
|
|
public function DeleteAll() { |
|
return parent::_Delete(self::TABLE_NAME, "ID_DOMANDA = " . $this->ID_DOMANDA); |
|
} |
|
|
|
public function Parse(&$record, $campo = "") { |
|
array_push($record, array("Campo" => $campo, "Valore" => $this->$campo)); |
|
} |
|
}
|
|
|