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'] = 'Richiesta già inserita!
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));
}
}