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