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.
152 righe
4.4 KiB
152 righe
4.4 KiB
<?php |
|
|
|
require_once "IDataClass.php"; |
|
|
|
/** |
|
* Description of Account |
|
* |
|
* @author Gigi |
|
*/ |
|
class Account extends DataClass { |
|
|
|
const TABLE_NAME = "ACCOUNT"; |
|
const SEQ_NAME = "ACCOUNT_ID_SEQ"; |
|
|
|
public $ID = 0; // PK |
|
public $CODICE_FISCALE = ''; |
|
public $USERNAME = ''; |
|
public $PASSWORD = ''; |
|
public $AUTORIZZAZIONE_TRATTAMENTO = ''; |
|
public $CANCELLATO = 0; |
|
public $CountDomande = 0; |
|
|
|
/**/ |
|
// public $PRIMO_ACCESSO = false; |
|
public $IP = null; |
|
public $Anagrafica = null; |
|
public $NucleoFamiliare = null; |
|
|
|
public function __construct($src = null) { |
|
global $con; |
|
if ($src == null) |
|
return; |
|
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)) { |
|
$this->_loadById($src, self::TABLE_NAME, true); |
|
} |
|
$this->loadDati($src); |
|
} |
|
|
|
/* |
|
* Load dati a corredo dell'account (anagrafica, domande ecc.) |
|
*/ |
|
public function loadDati($src = array()) { |
|
$this->Anagrafica = $this->loadAccountAnagrafica(); |
|
//$this->CountDomande = $this->countDomandeAssociate(); |
|
//$this->CanLogIn = $this->checkAuthPersonale(); |
|
$this->NucleoFamiliare = $this->loadNucleoFamiliare(); |
|
if (isset($src['IP']) && !empty($src['IP'])) { |
|
$this->IP = $src['IP']; |
|
} else { |
|
$this->IP = Utils::get_IP_address(); |
|
} |
|
} |
|
|
|
public function loadNucleoFamiliare(){ |
|
return AccountNucleoFamiliare::load($this->ID, 1); |
|
} |
|
|
|
/** |
|
* Load dati from anagrafica personale (primo accesso o accesso con anagrafica non confermata) |
|
*/ |
|
public function LoadDatiFromAnagraficaPersonale(){ |
|
$anag = AnagraficaPersonale::load($this->CODICE_FISCALE); |
|
$this->Anagrafica->NOME = $anag->NOME; |
|
$this->Anagrafica->COGNOME = $anag->COGNOME; |
|
$this->Anagrafica->DATA_NASCITA = $anag->DATA_NASCITA; |
|
$this->Anagrafica->SESSO = Utils::extractGenderFromCF($this->CODICE_FISCALE); |
|
} |
|
|
|
|
|
|
|
public function loadAccountAnagrafica() { |
|
return new AccountAnagrafica($this->CODICE_FISCALE); |
|
} |
|
|
|
|
|
|
|
/* |
|
* Select id by Field |
|
* default field: codice Fiscale |
|
*/ |
|
|
|
public static function load($field = "", $fieldName = "CODICE_FISCALE") { |
|
global $con; |
|
$account = new Account(); |
|
if (!empty($field) && !empty($fieldName)) { |
|
$stmn = $con->prepare("SELECT * FROM " . self::TABLE_NAME . " WHERE " . $fieldName . " = :" . $fieldName . " "); |
|
$stmn->bindParam(":" . $fieldName, $field); |
|
try { |
|
$stmn->execute(); |
|
$row = $stmn->fetch(PDO::FETCH_ASSOC); |
|
if (intval($row['ID']) > 0) { |
|
Utils::FillObjectFromRow($account, $row); |
|
$account->loadDati(); // DA VERIFICARE |
|
} |
|
} catch (Exception $exc) { |
|
|
|
} |
|
} |
|
return $account; |
|
} |
|
|
|
public function Save() { |
|
global $con, $LoggedAccount; |
|
$vars = get_object_vars($this); |
|
/* REMOVE LOCAL VAR */ |
|
unset($vars['IP']); |
|
unset($vars['Anagrafica']); |
|
unset($vars['CountDomande']); |
|
// unset($vars['PRIMO_ACCESSO']); |
|
/**/ |
|
$sql = Utils::prepareQuery(self::TABLE_NAME, $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); |
|
} catch (Exception $exc) { |
|
$it['descrizioneErrore'] = $exc->getMessage(); |
|
} |
|
return $it; |
|
} |
|
|
|
/** |
|
* Elimina l'oggetto corrente dal database e restituisce TRUE se ha successo |
|
* |
|
* @return bool Risultato booleano dell'operazione |
|
*/ |
|
public function Delete() { |
|
return parent::_LogicalDelete(self::TABLE_NAME, "id = " . $this->id); |
|
} |
|
|
|
/** |
|
* Funzione per la visualizzazione dei logs |
|
* @param type $record |
|
* @param type $campo |
|
*/ |
|
public function Parse(&$record, $campo = "") { |
|
$props = get_class_vars(get_class($this)); |
|
array_push($record, array("Campo" => $campo, "Valore" => $this->$campo)); |
|
} |
|
|
|
|
|
}
|
|
|