1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
<?php
class model_postes extends abstract_model{
protected $sClassRow='row_postes';
protected $sTable='postes';
protected $sConfig='candidature';
protected $tId=array('id');
public static function getInstance(){
return self::_getInstance(__CLASS__);
}
public function findById($uId){
return $this->findOne('SELECT * FROM '.$this->sTable.' WHERE id=?',$uId );
}
public function findByDirectionContrat($iDirection, $sContrat){
return $this->findMany('SELECT * FROM '.$this->sTable.' WHERE direction_id=? AND type_contrat=? ',$iDirection,$sContrat );
}
public function findByDirection($iDirection){
return $this->findMany('SELECT * FROM '.$this->sTable.' WHERE direction_id=?',$iDirection );
}
public function findByContrat($sContrat){
return $this->findMany('SELECT * FROM '.$this->sTable.' WHERE type_contrat=?',$sContrat );
}
public function findAll(){
return $this->findMany('SELECT * FROM '.$this->sTable);
}
public function findByCandidat($iCandidat){
return $this->findMany('SELECT postes.id as "id", reference, intitule, statut_poste_id, date_publication
FROM postes, candidatures, candidats
WHERE candidats.id = candidatures.candidat_id
And candidatures.poste_id = postes.id
and candidats.id =?',$iCandidat );
}
public function getSelect(){
$tab=$this->findAll();
$tSelect=array();
if($tab){
foreach($tab as $oRow){
$tSelect[ $oRow->id ]=$oRow->intitule;
}
}
return $tSelect;
}
//methode listant le nombre total d'enregistrements
public function findTotal(){
$oRow=$this->findOneSimple('SELECT count(*) as total FROM '.$this->sTable.' WHERE statut_poste_id = 1');
return $oRow->total;
}
//methode retournant les enregistrements trie et pagine
public function findListLimitOrderBy($start,$limit,$sField,$side){
return $this->findManySimple('SELECT * FROM '.$this->sTable.' WHERE statut_poste_id = 1 ORDER BY '.$sField.' '.$side.' LIMIT '.$start.','.$limit);
}
//ici la meme chose incluant un filtre
//methode listant le nombre total d'enregistrements filtre
public function findTotalFiltered($tFilter){
foreach($tFilter as $sField => $sValue){
if($sField=='direction_id'){
$sValue ='%'.$sValue.'%';
$oDirection = model_directions::getInstance()->findByLibelleLike($sValue);
$svalue = $oDirection->id;
}
$tWhere[]=$sField.' LIKE ?';
$tValue[]=$sValue;
}
$oRow=$this->findOneSimple('SELECT count(*) as total FROM '.$this->sTable.' WHERE statut_poste_id = 1 AND '.implode(' AND ',$tWhere).'',$tValue);
return $oRow->total;
}
//methode retournant les enregistrements trie et pagine et filtre
public function findListFilteredAndLimitOrderBy($tFilter,$start,$limit,$sField,$side){
foreach($tFilter as $sField => $sValue){
if($sField=='direction_id'){
$sValue ='%'.$sValue.'%';
$oDirection = model_directions::getInstance()->findByLibelleLike($sValue);
$svalue = $oDirection->id;
}
$tWhere[]=$sField.' LIKE ?';
$tValue[]=$sValue;
}
return $this->findManySimple('SELECT * FROM '.$this->sTable.' WHERE statut_poste_id = 1 AND '.implode(' AND ',$tWhere).' ORDER BY '.$sField.' '.$side.' LIMIT '.$start.','.$limit,$tValue);
}
}
class row_postes extends abstract_row{
protected $sClassModel='model_postes';
/*exemple jointure
public function findAuteur(){
return model_auteur::getInstance()->findById($this->auteur_id);
}
*/
/*exemple test validation*/
private function getCheck(){
$oPluginValid=new plugin_valid($this->getTab());
/* renseigner vos check ici
$oPluginValid->isEqual('champ','valeurB','Le champ n\est pas égal à '.$valeurB);
$oPluginValid->isNotEqual('champ','valeurB','Le champ est égal à '.$valeurB);
$oPluginValid->isUpperThan('champ','valeurB','Le champ n\est pas supé à '.$valeurB);
$oPluginValid->isUpperOrEqualThan('champ','valeurB','Le champ n\est pas supé ou égal à '.$valeurB);
$oPluginValid->isLowerThan('champ','valeurB','Le champ n\est pas inférieur à '.$valeurB);
$oPluginValid->isLowerOrEqualThan('champ','valeurB','Le champ n\est pas inférieur ou égal à '.$valeurB);
$oPluginValid->isEmpty('champ','Le champ n\'est pas vide');
$oPluginValid->isNotEmpty('champ','Le champ ne doit pas être vide');
$oPluginValid->isEmailValid('champ','L\email est invalide');
$oPluginValid->matchExpression('champ','/[0-9]/','Le champ n\'est pas au bon format');
$oPluginValid->notMatchExpression('champ','/[a-zA-Z]/','Le champ ne doit pas être a ce format');
*/
return $oPluginValid;
}
public function isValid(){
return $this->getCheck()->isValid();
}
public function getListError(){
return $this->getCheck()->getListError();
}
public function save(){
if(!$this->isValid()){
return false;
}
parent::save();
return true;
}
/*FORMATAGE DES DATES*/
//on surcharge le constructeur
public function __construct($tRow=null){
//on appel le constructeur normal de la row
parent::__construct($tRow);
//on modifie le champ date_publication avant d'initialiser l'objet
$oDate = new plugin_date($tRow['date_publication'],'Y-m-d');
$this->date_publication = $oDate->toString('d-m-Y');
}
} ?> |
Partager