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 LoadDataTable($searchQuery = "", $searchArray = array(), $columnName = array(), $columnSortOrder = array(), $start = 0, $offset = 0) {
return parent::_loadDataTable(self::TABLE_NAME, $searchQuery, $searchArray, $columnName, $columnSortOrder, $start, $offset);
}
/**
*
* @global type $con
* @global type $LoggedAccount
* @param type $id_domanda
* @return type array
*/
public static function load($id_domanda = 0) {
global $con, $LoggedAccount;
$rows = array();
if (intval($id_domanda) > 0) {
$sql = "SELECT * FROM " . self::TABLE_NAME . " WHERE ID_DOMANDA=:id_domanda ORDER BY ID_DOMANDA ASC ";
$query = $con->prepare($sql);
$query->bindParam(":id_domanda", $id_domanda);
try {
$query->execute();
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
}
return $rows;
}
public static function checkVerificaDatiPreSalvataggio() {
global $LoggedAccount;
$domanda = Domanda::loadDomandaFromAccount();
$_POST['ID'] = intval(Utils::get_filter_int_POST('ID'));
$_POST['ID_DOMANDA'] = $domanda->ID;
$_POST['COMUNE'] = Utils::get_filter_string_POST('COMUNE');
$_POST['PROVINCIA'] = Utils::get_filter_string_POST('PROVINCIA');
$_POST['INDIRIZZO'] = Utils::get_filter_string_POST('INDIRIZZO');
$_POST['CIVICO'] = Utils::get_filter_string_POST('CIVICO');
$_POST['SCALA'] = Utils::get_filter_string_POST('SCALA');
$_POST['PIANO'] = Utils::get_filter_string_POST('PIANO');
$_POST['CONTRATTO_DAL'] = Utils::get_filter_string_POST('CONTRATTO_DAL');
$_POST['CONTRATTO_AL'] = Utils::get_filter_string_POST('CONTRATTO_AL');
$_POST['CANONE_ANNUO'] = Utils::get_filter_string_POST('CANONE_ANNUO');
$_POST['IMMOBILE_F23'] = Utils::get_filter_string_POST('IMMOBILE_F23');
$_POST['SFRATTO_ESECUTIVO'] = Utils::get_filter_string_POST('SFRATTO_ESECUTIVO');
$_POST['SFRATTO_ESECUTIVO'] = (strtolower($_POST['SFRATTO_ESECUTIVO']) == 'on' ? 1 : 0);
if (isset($_POST['SFRATTO_ESECUTIVO_NUMERO'])) {
$_POST['SFRATTO_ESECUTIVO_NUMERO'] = Utils::get_filter_string_POST('SFRATTO_ESECUTIVO_NUMERO');
}else{
$_POST['SFRATTO_ESECUTIVO_NUMERO'] = "";
}
if (isset($_POST['SFRATTO_ESECUTIVO_DATA'])) {
$_POST['SFRATTO_ESECUTIVO_DATA'] = Utils::get_filter_string_POST('SFRATTO_ESECUTIVO_DATA');
} else {
$_POST['SFRATTO_ESECUTIVO_DATA'] = "";
}
$_POST['COMUNE_AE'] = Utils::get_filter_string_POST('COMUNE_AE');
$_POST['PROVINCIA_AE'] = Utils::get_filter_string_POST('PROVINCIA_AE');
$_POST['DATA_AE'] = Utils::get_filter_string_POST('DATA_AE');
$_POST['NUMERO_AE'] = Utils::get_filter_string_POST('NUMERO_AE');
$_POST['SERIE_AE'] = Utils::get_filter_string_POST('SERIE_AE');
$_POST['IMMOBILE_PROPRIETARIO'] = Utils::get_filter_string_POST('IMMOBILE_PROPRIETARIO');
$_POST['IMMOBILE_CF'] = Utils::get_filter_string_POST('IMMOBILE_CF');
$_POST['IMMOBILE_NCEU'] = Utils::get_filter_string_POST('IMMOBILE_NCEU');
$_POST['IMMOBILE_FOGLIO'] = Utils::get_filter_string_POST('IMMOBILE_FOGLIO');
$_POST['IMMOBILE_PARTICELLA'] = Utils::get_filter_string_POST('IMMOBILE_PARTICELLA');
$_POST['IMMOBILE_SUBALTERNO'] = Utils::get_filter_string_POST('IMMOBILE_SUBALTERNO');
$_POST['CONIUGI_SEPARATI'] = Utils::get_filter_string_POST('CONIUGI_SEPARATI');
$_POST['CONIUGI_SEPARATI'] = (strtolower($_POST['CONIUGI_SEPARATI']) == 'on' ? 1 : 0);
$_POST['CONTRATTO_CF'] = Utils::get_filter_string_POST('CONTRATTO_CF');
}
public function checkDatiPreSave() {
global $LoggedAccount;
$response = array();
$controllValidita = true;
$dati_mancanti = '';
if (trim($this->COMUNE) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il comune dell'appartamento
";
}
if (trim($this->PROVINCIA) == '') {
$controllValidita = false;
$dati_mancanti .= "
La provincia dell'appartamento
";
}
if (trim($this->INDIRIZZO) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo indirizzo
";
}
if (trim($this->CONTRATTO_DAL) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo data decorrenza del contratto
";
}
if (trim($this->CONTRATTO_AL) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo data termine del contratto
";
}
if (floatval($this->CANONE_ANNUO) <= 0) {
$controllValidita = false;
$dati_mancanti .= "
Il campo canone annuo deve essere maggiore di zero
";
}
if (trim($this->COMUNE_AE) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo del comune dell'Agenzia delle entrate
";
}
if (trim($this->PROVINCIA_AE) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo dell provincia dell'Agenzia delle entrate
";
}
if (trim($this->DATA_AE) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo data di registrazione del contratto
";
}
if (trim($this->DATA_AE) != '') {
$checkAE = Date::checkSaveDate($this->DATA_AE, "", "", true);
if ($checkAE['esito'] != 1) {
$controllValidita = false;
$dati_mancanti .= "Controllo data A.E.: " . $checkAE['erroreDescrizione'] . "
";
}
}
if (trim($this->NUMERO_AE) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo numero di registrazione del contratto
";
}
if (trim($this->SERIE_AE) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo serie di registrazione del contratto
";
}
if (trim($this->IMMOBILE_PROPRIETARIO) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo proprietario dell'immobile
";
}
if (trim($this->IMMOBILE_CF) == '' || (strlen(trim($this->IMMOBILE_CF)) != MIN_IMMOBILE_CF && strlen(trim($this->IMMOBILE_CF)) != MAX_IMMOBILE_CF )) {
$controllValidita = false;
$dati_mancanti .= "
Il campo codice fiscale del proprietario dell'immobile
";
}
if (CONTROLLO_FORMATTAZIONE_CF && strlen(trim($this->IMMOBILE_CF)) == MAX_IMMOBILE_CF && !Utils::ControlloCodiceFiscale(trim($this->IMMOBILE_CF))) {
$controllValidita = false;
$dati_mancanti .= "
Codice fiscale del proprietario dell'immobile non valido
";
}
if (trim($this->IMMOBILE_CF) == $LoggedAccount->CODICE_FISCALE) {
$controllValidita = false;
$dati_mancanti .= "
Il codice fiscale dell'intestatario del contratto è lo stesso dell'utente che sta presentando la domanda
";
}
if (trim($this->IMMOBILE_NCEU) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo Comune NCEU dell'immobile
";
}
if (trim($this->IMMOBILE_FOGLIO) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo Foglio dell'immobile
";
}
if (trim($this->IMMOBILE_PARTICELLA) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo Particella dell'immobile
";
}
if (trim($this->IMMOBILE_SUBALTERNO) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo Subalterno dell'immobile
";
}
if (intval($this->SFRATTO_ESECUTIVO) == 1 && trim($this->SFRATTO_ESECUTIVO_NUMERO) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo Numero sentenza
";
}
if (intval($this->SFRATTO_ESECUTIVO) == 1 && trim($this->SFRATTO_ESECUTIVO_DATA) == '') {
$controllValidita = false;
$dati_mancanti .= "
Il campo Data sentenza
";
}
$checkContratto = Date::checkSaveDate($this->CONTRATTO_DAL, $this->CONTRATTO_AL);
if ($checkContratto['esito'] != 1) {
$controllValidita = false;
$dati_mancanti .= "Controllo date contratto: " . $checkContratto['erroreDescrizione'] . "
";
}
if (trim($this->CONTRATTO_CF) == '' || strlen(trim($this->CONTRATTO_CF)) < MIN_CF || strlen(trim($this->CONTRATTO_CF)) > MAX_CF ) {
$controllValidita = false;
$dati_mancanti .= "
Il campo codice fiscale dell'intestatario del contratto
";
}
if (CONTROLLO_FORMATTAZIONE_CF && !Utils::ControlloCodiceFiscale(trim($this->CONTRATTO_CF))) {
$controllValidita = false;
$dati_mancanti .= "
Codice fiscale dell'intestatario del contratto non valido
";
}
if (trim($this->CONTRATTO_CF) != $LoggedAccount->CODICE_FISCALE) {
$controllValidita = false;
$dati_mancanti .= "
Il codice fiscale dell'intestatario del contratto è diverso del codice fiscale dell'utente che sta presentando la domanda
";
}
$this->CANONE_ANNUO= str_replace(",", ".", $this->CANONE_ANNUO);
/* $checkAE1 = Date::checkSaveDate($this->CONTRATTO_DAL, $this->DATA_AE);
if ($checkAE1['esito'] != 1) {
$controllValidita = false;
if ($checkAE1['errorePersonalizzato'] == 1) {
$dati_mancanti .= "Data decorrenza contratto dal ".date("d/m/Y", strtotime($this->CONTRATTO_DAL)).", Data registrazione A.E. ".date("d/m/Y", strtotime($this->DATA_AE))."
";
} else {
$dati_mancanti .= "Controllo date A.E. 1: " . $checkAE1['erroreDescrizione'] . "
";
}
}
$checkAE2 = Date::checkSaveDate($this->DATA_AE, $this->CONTRATTO_AL);
if ($checkAE2['esito'] != 1) {
$controllValidita = false;
if($checkAE2['errorePersonalizzato']==1){
$dati_mancanti .= "Data registrazione A.E. ".date("d/m/Y", strtotime($this->DATA_AE)).", data fine contratto locazione. ".date("d/m/Y", strtotime($this->CONTRATTO_AL))."
";
}else{
$dati_mancanti .= "Controllo date A.E. 2: " . $checkAE2['erroreDescrizione'] . "
";
}
} */
if (trim($this->SFRATTO_ESECUTIVO_DATA) != "") {
$checkSfratto = Date::checkSaveDate($this->CONTRATTO_DAL, $this->SFRATTO_ESECUTIVO_DATA);
if ($checkSfratto['esito'] != 1) {
$controllValidita = false;
$dati_mancanti .= "Controllo data sfratto: " . $checkSfratto['erroreDescrizione'] . "
";
}
}
if ($this->CONIUGI_SEPARATI == 0) {
$fileDelete = new Allegati();
$resF = $fileDelete->DeleteDocumentiBando($this->ID_DOMANDA, ID_FILE_CONIUGI_SEPARATI);
if ($resF['esito'] != 1) {
$controllValidita = false;
$dati_mancanti .= "Allegato coniugi separati: " . $resF['erroreDescrizione'] . "
";
}
}
if ($this->IMMOBILE_F23 == 1) {
$fileDelete = new Allegati();
$resF = $fileDelete->DeleteDocumentiBando($this->ID_DOMANDA, ID_FILE_IMMOBILE_F23);
if ($resF['esito'] != 1) {
$controllValidita = false;
$dati_mancanti .= "Allegato modulo f23: " . $resF['erroreDescrizione'] . "
";
}
}
$this->CONTRATTO_DAL = Date::dateOracleDate($this->CONTRATTO_DAL, 'd-M-y');
$this->CONTRATTO_AL = Date::dateOracleDate($this->CONTRATTO_AL, 'd-M-y');
$this->DATA_AE = Date::dateOracleDate($this->DATA_AE, 'd-M-y');
$this->SFRATTO_ESECUTIVO_DATA = (trim($this->SFRATTO_ESECUTIVO_DATA) != "" ? Date::dateOracleDate($this->SFRATTO_ESECUTIVO_DATA, 'd-M-y') : null);
$response['checkDati'] = $controllValidita;
$response['txt_dati_mancanti'] = $dati_mancanti;
return $response;
}
public function isErasable() {
global $LoggedAccount;
$response = false;
$domanda = Domanda::loadDomandaFromAccount();
if ($this->ID_DOMANDA == $domanda->ID) {
$response = true;
}
return $response;
}
/**
*
* @global type $con
* @global type $LoggedAccount
* @return type
*/
public function Save() {
global $con, $LoggedAccount;
$vars = get_object_vars($this);
$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['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));
}
public function VerificaSlotTemporale() {
global $con;
$response = Utils::initDefaultResponse();
$response['erroreDescrizione'] = 'Il periodo di contratto inserito si sovrappone con altri periodi già inseriti';
$from = new DateTime(MIN_DATA_CONTRIBUTO);
$to = new DateTime(MAX_DATA_CONTRIBUTO);
if ($this->SFRATTO_ESECUTIVO == 1 && !empty($this->SFRATTO_ESECUTIVO_DATA)) {
$d_sfratto = new DateTime($this->SFRATTO_ESECUTIVO_DATA);
$d_al = new DateTime($this->CONTRATTO_AL);
$out = ($d_sfratto < $d_al ? $d_sfratto : $d_al);
} else {
$out = new DateTime($this->CONTRATTO_AL);
}
$in = new DateTime($this->CONTRATTO_DAL);
if ($in <= $to && $from <= $out) {
$sql = "SELECT " . self::FNZ_SLOTCONTRATTI . "('" . $this->ID . "','" . $this->ID_DOMANDA . "', '" . $this->CONTRATTO_DAL . "', '" . $out->format('d-M-y') . "') AS COUNT FROM DUAL";
$query = $con->prepare($sql);
try {
$query->execute();
$res = $query->fetch(PDO::FETCH_ASSOC);
} catch (Exception $exc) {
$exc->getMessage();
}
if (intval($res['COUNT']) <= 0) {
$response['esito'] = 1;
}
} else {
$response['esito'] = -999;
$response['erroreDescrizione'] = "Le date del contratto devono ricadere nel periodo richiesto dal bando";
}
return $response;
}
}