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.
419 righe
17 KiB
419 righe
17 KiB
<?php |
|
|
|
require_once ROOT . "lib/classes/IDataClass.php"; |
|
|
|
/** |
|
* Description of DomandaContratti |
|
* |
|
* @author Anselmo |
|
*/ |
|
class DomandaContratti extends DataClass { |
|
|
|
const TABLE_NAME = "DOMANDA_CONTRATTI"; |
|
const SEQ_NAME = "DOMANDA_CONTRATTI_ID_SEQ"; |
|
const FNZ_SLOTCONTRATTI = "FNSLOTCONTRATTI"; |
|
|
|
public $ID = 0; |
|
public $ID_DOMANDA = 0; |
|
public $COMUNE = ""; |
|
public $PROVINCIA = ""; |
|
public $INDIRIZZO = ""; |
|
public $CIVICO = ""; |
|
public $SCALA = ""; |
|
public $PIANO = ""; |
|
public $CONTRATTO_DAL = null; |
|
public $CONTRATTO_AL = null; |
|
public $CANONE_ANNUO = 0; |
|
public $COMUNE_AE = ""; |
|
public $PROVINCIA_AE = ""; |
|
public $DATA_AE = null; |
|
public $NUMERO_AE = ""; |
|
public $SERIE_AE = ""; |
|
public $IMMOBILE_PROPRIETARIO = ""; |
|
public $IMMOBILE_CF = ""; |
|
public $IMMOBILE_NCEU = ""; |
|
public $IMMOBILE_FOGLIO = ""; |
|
public $IMMOBILE_PARTICELLA = ""; |
|
public $IMMOBILE_SUBALTERNO = ""; |
|
public $IMMOBILE_F23 = 0; |
|
public $CONIUGI_SEPARATI = ""; |
|
public $SFRATTO_ESECUTIVO = 0; |
|
public $SFRATTO_ESECUTIVO_NUMERO = ""; |
|
public $SFRATTO_ESECUTIVO_DATA = null; |
|
public $CONTRATTO_CF = ''; |
|
|
|
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)) { |
|
$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 .= " <br><b>Il comune dell'appartamento</b><br> "; |
|
} |
|
if (trim($this->PROVINCIA) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>La provincia dell'appartamento</b><br> "; |
|
} |
|
if (trim($this->INDIRIZZO) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo indirizzo</b><br> "; |
|
} |
|
if (trim($this->CONTRATTO_DAL) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo data decorrenza del contratto</b><br> "; |
|
} |
|
if (trim($this->CONTRATTO_AL) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo data termine del contratto</b><br>"; |
|
} |
|
if (floatval($this->CANONE_ANNUO) <= 0) { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo canone annuo deve essere maggiore di zero</b><br>"; |
|
} |
|
if (trim($this->COMUNE_AE) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo del comune dell'Agenzia delle entrate</b><br> "; |
|
} |
|
if (trim($this->PROVINCIA_AE) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo dell provincia dell'Agenzia delle entrate</b><br> "; |
|
} |
|
if (trim($this->DATA_AE) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo data di registrazione del contratto</b><br> "; |
|
} |
|
|
|
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'] . "<br>"; |
|
} |
|
} |
|
if (trim($this->NUMERO_AE) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo numero di registrazione del contratto</b><br> "; |
|
} |
|
if (trim($this->SERIE_AE) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo serie di registrazione del contratto</b><br> "; |
|
} |
|
if (trim($this->IMMOBILE_PROPRIETARIO) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo proprietario dell'immobile</b><br> "; |
|
} |
|
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 .= " <br><b>Il campo codice fiscale del proprietario dell'immobile</b><br> "; |
|
} |
|
|
|
if (CONTROLLO_FORMATTAZIONE_CF && strlen(trim($this->IMMOBILE_CF)) == MAX_IMMOBILE_CF && !Utils::ControlloCodiceFiscale(trim($this->IMMOBILE_CF))) { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Codice fiscale del proprietario dell'immobile non valido</b><br> "; |
|
} |
|
if (trim($this->IMMOBILE_CF) == $LoggedAccount->CODICE_FISCALE) { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il codice fiscale dell'intestatario del contratto è lo stesso dell'utente che sta presentando la domanda</b><br> "; |
|
} |
|
if (trim($this->IMMOBILE_NCEU) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo Comune NCEU dell'immobile</b><br> "; |
|
} |
|
if (trim($this->IMMOBILE_FOGLIO) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo Foglio dell'immobile</b><br> "; |
|
} |
|
if (trim($this->IMMOBILE_PARTICELLA) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo Particella dell'immobile</b><br> "; |
|
} |
|
if (trim($this->IMMOBILE_SUBALTERNO) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo Subalterno dell'immobile</b><br> "; |
|
} |
|
|
|
if (intval($this->SFRATTO_ESECUTIVO) == 1 && trim($this->SFRATTO_ESECUTIVO_NUMERO) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo Numero sentenza</b><br>"; |
|
} |
|
if (intval($this->SFRATTO_ESECUTIVO) == 1 && trim($this->SFRATTO_ESECUTIVO_DATA) == '') { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo Data sentenza</b><br>"; |
|
} |
|
|
|
$checkContratto = Date::checkSaveDate($this->CONTRATTO_DAL, $this->CONTRATTO_AL); |
|
if ($checkContratto['esito'] != 1) { |
|
$controllValidita = false; |
|
$dati_mancanti .= "Controllo date contratto: " . $checkContratto['erroreDescrizione'] . "<br>"; |
|
} |
|
|
|
if (trim($this->CONTRATTO_CF) == '' || strlen(trim($this->CONTRATTO_CF)) < MIN_CF || strlen(trim($this->CONTRATTO_CF)) > MAX_CF ) { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il campo codice fiscale dell'intestatario del contratto</b><br> "; |
|
} |
|
if (CONTROLLO_FORMATTAZIONE_CF && !Utils::ControlloCodiceFiscale(trim($this->CONTRATTO_CF))) { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Codice fiscale dell'intestatario del contratto non valido</b><br> "; |
|
} |
|
if (trim($this->CONTRATTO_CF) != $LoggedAccount->CODICE_FISCALE) { |
|
$controllValidita = false; |
|
$dati_mancanti .= " <br><b>Il codice fiscale dell'intestatario del contratto è diverso del codice fiscale dell'utente che sta presentando la domanda</b><br> "; |
|
} |
|
|
|
$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))."<br>"; |
|
} else { |
|
$dati_mancanti .= "Controllo date A.E. 1: " . $checkAE1['erroreDescrizione'] . "<br>"; |
|
} |
|
} |
|
|
|
|
|
$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))."<br>"; |
|
}else{ |
|
$dati_mancanti .= "Controllo date A.E. 2: " . $checkAE2['erroreDescrizione'] . "<br>"; |
|
} |
|
} */ |
|
|
|
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'] . "<br>"; |
|
} |
|
} |
|
|
|
|
|
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'] . "<br>"; |
|
} |
|
} |
|
|
|
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'] . "<br>"; |
|
} |
|
} |
|
|
|
$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; |
|
} |
|
|
|
}
|
|
|