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