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.
222 righe
8.9 KiB
222 righe
8.9 KiB
<?php |
|
|
|
require_once "IDataClass.php"; |
|
|
|
/** |
|
* Description of Graduatoria |
|
* |
|
* @author Anselmo |
|
*/ |
|
class Graduatoria extends DataClass { |
|
|
|
const TABLE_NAME = "GRADUATORIA"; |
|
const SEQ_NAME = "GRADUATORIA_ID_SEQ"; |
|
const VIEW_NAME = "VIEWGRADUATORIA"; |
|
const SP_NAME = "SPPUBBLICAGRADUATORIE"; |
|
|
|
|
|
public $ID = 0; |
|
public $ID_DOMANDA = 0; |
|
public $CODICE_FISCALE = ''; |
|
public $PUNTEGGIO_TRIENNIO = 0; |
|
public $PUNTEGGIO_MATURITA = 0; |
|
public $PUNTEGGIO_TITOLI = 0; |
|
public $PUNTEGGIO_ESAME_FINALE = 0; |
|
public $ETA = 0; |
|
public $PUNTEGGIO = 0; |
|
public $POSIZIONE = 0; |
|
public $TIPO = 0; |
|
public $DATA_GENERAZIONE = ''; |
|
public $DATA_VALIDAZIONE = ''; |
|
public $CANCELLATO = 0; |
|
public $CATEGORIA = ''; |
|
public $CATEGORIA_PERSONALE = ''; |
|
|
|
|
|
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); |
|
} |
|
} |
|
|
|
public static function Count($filter = null) { |
|
return parent::_count(self::TABLE_NAME, $filter); |
|
} |
|
|
|
/** |
|
* Restituisce l'elenco delle istanze inserite in graduatoria |
|
* @global type $con |
|
* @param type $personale |
|
* @param type $posizione_economica |
|
* @param type $tipo |
|
* @return type array(); |
|
*/ |
|
public static function loadGraduatoria($personale = '', $posizione_economica='', $tipo = TIPO_GRADUATORIA_PROVVISORIA) { |
|
global $con; |
|
$response = array(); |
|
if (!empty($personale) && !empty($posizione_economica) && !empty($tipo)) { |
|
|
|
$sql = "SELECT * FROM ".self::TABLE_NAME." WHERE CATEGORIA_PERSONALE = :personale AND CATEGORIA = :posizione_economica AND CANCELLATO = 0 AND TIPO = :tipo"; |
|
$query = $con->prepare($sql); |
|
$query->bindParam(':personale', $personale); |
|
$query->bindParam(':posizione_economica', $posizione_economica); |
|
$query->bindParam(':tipo', $tipo); |
|
try { |
|
$query->execute(); |
|
$response = $query->fetch(PDO::FETCH_ASSOC); |
|
} catch (Exception $exc) { |
|
$exc->getMessage(); |
|
} |
|
} |
|
return $response; |
|
} |
|
|
|
/** |
|
* Get data graduatoria |
|
* @global type $con |
|
* @param type $personale |
|
* @param type $posizione_economica |
|
* @param type $tipo |
|
* @return type |
|
*/ |
|
public static function GetDataGraduatoria($personale = '', $posizione_economica='', $tipo = TIPO_GRADUATORIA_PROVVISORIA) { |
|
global $con; |
|
$response = array(); |
|
if (!empty($personale) && !empty($posizione_economica) && !empty($tipo)) { |
|
|
|
if($tipo == TIPO_GRADUATORIA_DEFINITIVA){ |
|
$data_select = "DATA_VALIDAZIONE"; |
|
}else{ |
|
$data_select = "DATA_GENERAZIONE"; |
|
} |
|
|
|
$sql = "SELECT MAX(".$data_select.") AS DATA_GRADUATORIA FROM ".self::TABLE_NAME." WHERE CATEGORIA_PERSONALE = :personale AND CATEGORIA = :posizione_economica AND CANCELLATO = 0 AND TIPO = :tipo " |
|
. " GROUP BY CATEGORIA_PERSONALE, CATEGORIA, CANCELLATO , TIPO"; |
|
$query = $con->prepare($sql); |
|
$query->bindParam(':personale', $personale); |
|
$query->bindParam(':posizione_economica', $posizione_economica); |
|
$query->bindParam(':tipo', $tipo); |
|
try { |
|
$query->execute(); |
|
$response = $query->fetch(PDO::FETCH_ASSOC); |
|
} catch (Exception $exc) { |
|
$exc->getMessage(); |
|
} |
|
} |
|
return $response; |
|
} |
|
|
|
|
|
/** |
|
* Genera le graduatorie partendo dalla relativa vista |
|
* @global type $con |
|
* @param type $personale |
|
* @param type $posizione_economica |
|
* @param type $tipo |
|
*/ |
|
public function GeneraGraduaoria($personale = '', $posizione_economica='', $tipo='') { |
|
global $con; |
|
$response = Utils::initDefaultResponse(); |
|
if (!empty($personale) && !empty($posizione_economica) && !empty($tipo)) { |
|
$sql = "CALL " . self::SP_NAME . " (?,?,?)"; |
|
$query = $con->prepare($sql); |
|
$query->bindParam(1, $personale); |
|
$query->bindParam(2, $posizione_economica); |
|
$query->bindParam(3, $tipo); |
|
try { |
|
if ($query->execute()) { |
|
$response['esito'] = 1; |
|
} |
|
} catch (Exception $exc) { |
|
$response['descrizioneErrore'] = $exc->getMessage(); |
|
} |
|
} |
|
return $response; |
|
} |
|
|
|
/** |
|
* Genera la graduatoria provvisoria passando la tipologia del personale e la posizione economica |
|
* @param type $personale |
|
* @param type $posizione_economica |
|
* @return type |
|
*/ |
|
public static function GeneraGraduaorieProvvisoria($personale = '', $posizione_economica = '') { |
|
$graduatoria = new Graduatoria(); |
|
return $graduatoria->GeneraGraduaoria($personale, $posizione_economica, TIPO_GRADUATORIA_PROVVISORIA); |
|
} |
|
|
|
/** |
|
* Genera la graduatoria definitiva passando la tipologia del personale e la posizione economica |
|
* @param type $personale |
|
* @param type $posizione_economica |
|
* @return type |
|
*/ |
|
public static function GeneraGraduaorieDefinitiva($personale = '', $posizione_economica = '') { |
|
$response = Utils::initDefaultResponse(); |
|
$graduatoria = new Graduatoria(); |
|
$res = $graduatoria->ControllaGraduatoriaDefinitiva($personale, $posizione_economica); |
|
if($res['esito']==1 && intval($res['count'])==0){ |
|
$response = $graduatoria->GeneraGraduaoria($personale, $posizione_economica, TIPO_GRADUATORIA_DEFINITIVA); |
|
}else{ |
|
$response['descrizioneErrore'] = 'Esiste già una graduatoria definitiva per la categoria '.$personale.' e posizione econominca '.$posizione_economica.'!'; |
|
} |
|
return $response; |
|
} |
|
|
|
|
|
public function ControllaGenerazioneGraduatoria($personale = '', $posizione_economica='', $tipo=''){ |
|
$response = Utils::initDefaultResponse(); |
|
if (!empty($personale) && !empty($posizione_economica) && !empty($tipo)) { |
|
$filter = " CATEGORIA_PERSONALE = '".trim($personale)."' AND CATEGORIA = '".$posizione_economica."' AND CANCELLATO = 0 AND TIPO = ".intval($tipo); |
|
$response['esito'] = 1; |
|
$response['count'] = $this->Count($filter); |
|
} |
|
return $response; |
|
} |
|
|
|
/** |
|
* Controlla la presenza di graduatorie provvisorie per la categoria e la posizione economica di riferimento |
|
* @param type $personale |
|
* @param type $posizione_economica |
|
* @return type count domande |
|
*/ |
|
public static function ControllaGraduatoriaProvvisoria($personale = '', $posizione_economica = ''){ |
|
$response = Utils::initDefaultResponse(); |
|
$graduatoria = new Graduatoria(); |
|
$response = $graduatoria->ControllaGraduatoriaDefinitiva($personale, $posizione_economica); |
|
if($response['count'] <=0){ |
|
$response = $graduatoria->ControllaGenerazioneGraduatoria($personale, $posizione_economica, TIPO_GRADUATORIA_PROVVISORIA); |
|
} |
|
return $response; |
|
} |
|
|
|
/** |
|
* Controlla la presenza di graduatorie definitive per la categoria e la posizione economica di riferimento |
|
* @param type $personale |
|
* @param type $posizione_economica |
|
* @return type count domande |
|
*/ |
|
public static function ControllaGraduatoriaDefinitiva($personale = '', $posizione_economica = ''){ |
|
$graduatoria = new Graduatoria(); |
|
return $graduatoria->ControllaGenerazioneGraduatoria($personale, $posizione_economica, TIPO_GRADUATORIA_DEFINITIVA); |
|
} |
|
|
|
public function LoadDataTableCustom($searchQuery = "", $searchArray = array(), $columnName = array(), $columnSortOrder = array(), $start = 0, $offset = 0) { |
|
$select = "G.*,D.NUMERO_PROTOCOLLO, D.DATA_PROTOCOLLO"; |
|
return parent::_loadDataTableEx($select, self::TABLE_NAME . " G INNER JOIN " . Domanda::TABLE_NAME . " D ON D.ID = G.ID_DOMANDA ", $searchQuery, $searchArray, $columnName, $columnSortOrder, $start, $offset, false); |
|
} |
|
|
|
public static function LoadDataTable($searchQuery = "", $searchArray = array(), $columnName = array(), $columnSortOrder = array(), $start = 0, $offset = 0, $totCount = false) { |
|
return parent::_loadDataTable(self::TABLE_NAME, $searchQuery, $searchArray, $columnName, $columnSortOrder, $start, $offset, $totCount); |
|
} |
|
|
|
}
|
|
|