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.
198 righe
7.2 KiB
198 righe
7.2 KiB
<?php |
|
|
|
require_once "IDataClass.php"; |
|
|
|
/** |
|
* Description of AccountAnagrafica |
|
* |
|
* @author Gigi |
|
*/ |
|
class AccountAnagrafica extends DataClass { |
|
|
|
const TABLE_NAME = "ACCOUNT_ANAGRAFICA"; |
|
const SEQ_NAME = "ACCOUNT_ANAG_ID_SEQ"; |
|
|
|
public $ID = ""; |
|
public $CODICE_FISCALE = ""; |
|
public $NOME = ""; |
|
public $COGNOME = ""; |
|
public $DATA_NASCITA = ""; |
|
public $COMUNE_NASCITA = ""; |
|
public $PROV_NASCITA = ""; |
|
public $CAP_NASCITA = ""; |
|
public $COMUNE_RESIDENZA = ""; |
|
public $PROV_RESIDENZA = ""; |
|
public $CAP_RESIDENZA = ""; |
|
public $INDIRIZZO_RESIDENZA = ""; |
|
public $CIVICO_RESIDENZA = ""; |
|
public $SPID_CELLULARE = ""; |
|
public $SPID_DOCUMENTO = ""; |
|
public $SPID_DOCUMENTO_SCADENZA = ""; |
|
public $SPID_DOCUMENTO_RILASCIO = ""; |
|
public $SPID_TIPO_DOCUMENTO = ""; |
|
public $SPID_DOCUMENTO_ENTE = ""; |
|
public $SPID_EMAIL = ""; |
|
public $DATA_MODIFICA = ""; |
|
public $RECAPITO = ""; |
|
public $SESSO = ""; |
|
public $PEC = ""; |
|
public $EMAIL = ""; |
|
public $FLAG = ""; |
|
public $STUDENTE = ""; |
|
|
|
|
|
public function __construct($src = null) { |
|
global $con; |
|
if ($src == null) |
|
return; |
|
$stripSlashes = false; |
|
if (is_array($src)) { |
|
if (isset($src['CODICE_FISCALE']) && $src['CODICE_FISCALE'] != "") { |
|
$this->_loadAndFillObject($src['CODICE_FISCALE'], self::TABLE_NAME, $src, null, "CODICE_FISCALE"); |
|
} else { |
|
$this->_loadByRow($src, $stripSlashes); |
|
} |
|
} elseif ($src) { |
|
$this->_loadById($src, self::TABLE_NAME, true, null, "CODICE_FISCALE"); |
|
} |
|
$this->getPriorityColumn(); |
|
} |
|
|
|
public function getPriorityColumn(){ |
|
$nucleo = AccountNucleoFamiliare::loadFromCf($this->CODICE_FISCALE); |
|
$this->FLAG = $nucleo->FLAG; |
|
$this->STUDENTE = $nucleo->STUDENTE; |
|
} |
|
|
|
/** |
|
* Save |
|
*/ |
|
public function Save() { |
|
global $con, $LoggedAccount; |
|
$response = array(); |
|
$this->DATA_MODIFICA = date(FORMAT_TIMESTAMP_ORACLE); |
|
$vars = get_object_vars($this); |
|
unset($vars['FLAG']); |
|
unset($vars['STUDENTE']); |
|
$sql = Utils::prepareQuery(self::TABLE_NAME, $vars, "ID"); |
|
$queryabi = $con->prepare($sql); |
|
foreach ($vars as $k => $v) { |
|
if ($k == "ID" && empty($v)) |
|
continue; |
|
$queryabi->bindValue(":" . $k, $v); |
|
} |
|
try { |
|
$response = parent::_Save($queryabi); |
|
} catch (Exception $exc) { |
|
$response['descrizioneErrore'] = $exc->getMessage(); |
|
} |
|
return $response; |
|
} |
|
|
|
/** |
|
* Load From Fields (1 or 2 fields) |
|
* Default filter Codice AND Seriale |
|
* return empty object without filter |
|
*/ |
|
// public static function load($field1Value = '', $field1 = 'CODICE', $field2Value = '', $field2 = 'SERIALE') { |
|
// global $con, $LoggedAccount; |
|
// $istituto = new AccountIstituto(); |
|
// $filter = ""; |
|
// if (!empty($field1Value)) { |
|
// $filter .= ($filter != "" ? " AND " : "") . $field1Value . " = :field1"; |
|
// } |
|
// if (!empty($field2Value)) { |
|
// $filter .= ($filter != "" ? " AND " : "") . $field2Value . " = :field2"; |
|
// } |
|
// if (!empty($filter)) { |
|
// $stmn = $con->prepare("SELECT * FROM " . self::TABLE_NAME . " WHERE " . $filter); //CODICE = :codice AND SERIALE=:seriale |
|
// $stmn->bindParam(":codice", $codice); |
|
// $stmn->bindParam(":seriale", $seriale); |
|
// try { |
|
// $stmn->execute(); |
|
// $row = $stmn->fetch(PDO::FETCH_ASSOC); |
|
// if (!empty($row['ACCOUNT'])) { |
|
// Utils::FillObjectFromRow($istituto, $row); |
|
// } |
|
// } catch (Exception $exc) { |
|
// |
|
// } |
|
// } |
|
// return $istituto; |
|
// } |
|
|
|
/** |
|
* Funzione per il load dei dati per DataTable |
|
* |
|
* @return array Risultato booleano dell'operazione |
|
*/ |
|
public static function LoadDataTable($searchQuery = "", $searchArray = array(), $columnName = array(), $columnSortOrder = array(), $start = 0, $offset = 0) { |
|
return parent::_loadDataTable(self::TABLE_NAME, $searchQuery, $searchArray, $columnName, $columnSortOrder, $start, $offset); |
|
} |
|
|
|
/** |
|
* Elimina l'oggetto corrente, in modo logico, 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)); |
|
} |
|
|
|
/** |
|
* Restituisce il totale i |
|
* |
|
* @param bool $filter Se specificato, filtra i comune in funzione dei parametri specificati in esso specificato |
|
* @return int |
|
*/ |
|
public static function Count($filter = null) { |
|
return parent::_count(self::TABLE_NAME, $filter); |
|
} |
|
|
|
/** |
|
* Funzione per il controllo se i dati SPID presenti nel LoggedAccount (ricevuti da SPID) sono uguali a quelli che vengono salvati per evitare manimissioni |
|
*/ |
|
public static function verificaDatiSPID($input = array()) { |
|
global $LoggedAccount; |
|
$response = false; |
|
if (!empty($input)) { |
|
if ( |
|
isset($input['CODICE_FISCALE']) && $LoggedAccount->CODICE_FISCALE == $input['CODICE_FISCALE'] && |
|
isset($input['SPID_CELLULARE']) && $LoggedAccount->Anagrafica->SPID_CELLULARE == $input['SPID_CELLULARE'] && |
|
isset($input['SPID_EMAIL']) && $LoggedAccount->Anagrafica->SPID_EMAIL == $input['SPID_EMAIL'] && |
|
isset($input['SPID_DOCUMENTO']) && $LoggedAccount->Anagrafica->SPID_DOCUMENTO == $input['SPID_DOCUMENTO'] && |
|
isset($input['SPID_DOCUMENTO_SCADENZA']) && $LoggedAccount->Anagrafica->SPID_DOCUMENTO_SCADENZA == $input['SPID_DOCUMENTO_SCADENZA'] && |
|
isset($input['SPID_DOCUMENTO_RILASCIO']) && $LoggedAccount->Anagrafica->SPID_DOCUMENTO_RILASCIO == $input['SPID_DOCUMENTO_RILASCIO'] && |
|
isset($input['SPID_TIPO_DOCUMENTO']) && $LoggedAccount->Anagrafica->SPID_TIPO_DOCUMENTO == $input['SPID_TIPO_DOCUMENTO'] && |
|
isset($input['SPID_DOCUMENTO_ENTE']) && $LoggedAccount->Anagrafica->SPID_DOCUMENTO_ENTE == $input['SPID_DOCUMENTO_ENTE'] |
|
) { |
|
$response = true; |
|
} |
|
} |
|
return $response; |
|
} |
|
|
|
public function checkValidazioneCodiceFiscale($codiceFiscale = ''){ |
|
|
|
if($this->FORZATURA_CODICE_FISCALE == 0){ |
|
$cf = new CodiceFiscale(); |
|
$data = Date::FormatDate($this->DATA_NASCITA); |
|
$codice = $cf->calcola($this->NOME, $this->COGNOME, $data, $this->SESSO, $this->COMUNE_NASCITA, $this->PROV_NASCITA); |
|
if($codiceFiscale != $codice || $codiceFiscale == ''){ |
|
return false; |
|
} |
|
} |
|
return true; |
|
} |
|
|
|
}
|
|
|