New file |
0,0 → 1,783 |
<?php |
|
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 4.1 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | This library is free software; you can redistribute it and/or | |
// | modify it under the terms of the GNU Lesser General Public | |
// | License as published by the Free Software Foundation; either | |
// | version 2.1 of the License, or (at your option) any later version. | |
// | | |
// | This library is distributed in the hope that it will be useful, | |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
// | Lesser General Public License for more details. | |
// | | |
// | You should have received a copy of the GNU Lesser General Public | |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
|
// |@author ABDOOL RAHEEM shaheen shaheenar50@hotmail.com | |
// |@version 3 | |
|
include_once "gtt_travail.class.php"; |
include_once "gtt_absence.class.php"; |
include_once "gtt_preference.class.php"; |
include_once CHEMIN_CLASSES."BOG_debogage.inc.php"; |
/** |
* class Utilisateur : g?re les fonction utilisateurs |
* classe m?tier |
* |
*/ |
|
class Utilisateur |
{ |
|
|
var $_id_utilisateur=NULL; |
|
var $_nom=NULL; |
|
var $_prenom=NULL; |
|
var $_password=NULL; |
|
var $_email=NULL; |
|
var $_telephone=NULL; |
|
var $_adresse=NULL; |
|
var $_code_postal=NULL; |
|
var $_ville=NULL; |
|
var $_quota_heures_sup=NULL; |
|
var $_conges_payes=NULL; |
var $temps_de_travail=NULL; |
|
var $_admin=NULL; |
|
var $_admin2=NULL; |
/** |
*indique si l'utilisateur figure dans les recapitulatifs ou non |
*/ |
var $_Notes=NULL; |
|
var $_statut=NULL; |
/** |
*aggregations |
*/ |
var $_liste_preferences =array();//contient liste de preferences |
|
var $_liste_travaux =array();//contient la liste des travaux |
|
var $_liste_depenses=array(); |
|
var $_liste_absences=array(); |
|
/* |
*cree un nouvel utilisateur a artir d'un identifiant |
*/ |
|
function Utilisateur($id) |
{ |
$this->_id_utilisateur = $id; |
} |
|
|
/**construit un utilisateur a partir d'un tableau |
*remplit tous les champs except l'identifiant qui est deja attribué |
*/ |
|
|
function ConstruireUtilisateur($tableau) |
{ |
|
$this->_nom =$tableau[GEST_CHAMPS_NOM]; |
|
$this->_prenom =$tableau[GEST_CHAMPS_PRENOM]; |
|
$this->_password =$tableau[GEST_CHAMPS_PASSWORD]; |
|
$this->_email =$tableau[GEST_CHAMPS_EMAIL]; |
|
$this->_telephone = $tableau[GEST_CHAMPS_TELEPHONE]; |
|
$this->_adresse = $tableau[GEST_CHAMPS_ADRESSE]; |
|
$this->_code_postal = $tableau[GEST_CHAMPS_CODE_POSTAL]; |
|
$this->_ville =$tableau[GEST_CHAMPS_VILLE]; |
|
$this->_quota_heures_sup = $tableau[GEST_CHAMPS_QUOTA_HEURES_SUPP]; |
|
$this->_conges_payes = $tableau[GEST_CHAMPS_CONGES_PAYES]; |
|
$this->_temps_de_travail = $tableau[GEST_CHAMPS_TEMPS_DE_TRAVAIL]; |
|
$this->_admin =$tableau[GEST_CHAMPS_ADMIN]; |
|
$this->_admin2 =$tableau[GEST_CHAMPS_ADMIN2]; |
|
$this->_statut =$tableau[GEST_CHAMPS_STATUT]; |
|
if ($tableau[GEST_CHAMPS_NOTES]==NULL) |
{ |
$this->_Notes=NULL; |
}else{ |
$this->_Notes = $tableau[GEST_CHAMPS_NOTES]; |
} |
|
} |
|
|
/** |
* permet de recuperer un utilisateur de la base de donnees |
* renvoie -1 si erreur |
*renvoie un utilisateur sinon |
*/ |
|
function recupererUtilisateur($id) |
{ |
|
$requete ="SELECT * FROM ".GEST_UTILISATEUR. |
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $id"; |
|
$ligne = $GLOBALS['db']->query($requete); |
|
$resultat =$ligne->fetchRow(DB_FETCHMODE_ASSOC); |
|
(DB::isError($resultat)) ? |
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
|
$nb_ligne_selectionne = $ligne->numRows(); |
|
if($nb_ligne_selectionne==1) |
{ |
//construction d'un nouvel utilisateur |
|
$user = new Utilisateur ($resultat[GEST_CHAMPS_ID_UTILISATEUR]) ; |
$user->ConstruireUtilisateur($resultat); |
return $user; |
} |
else { |
return -1; |
} |
|
} |
|
/**on travaille sur les instances car on suppose que les donnees utilisateurs |
*ne sont pas en constante evolution dans la base |
*on limite ainsi les acces a la base de donnees |
*/ |
|
|
|
/**recuperer le nom |
* |
*/ |
function getNom( ) |
{ |
return $this->_nom; |
} |
|
|
/** |
* |
*/ |
function getPrenom( ) |
{ |
return $this->_prenom; |
} |
|
|
function getVille() |
{ |
return $this->_ville; |
} |
/** |
* |
*/ |
function getQuota( ) |
{ |
return $this->_quota_heures_sup; |
|
} |
|
|
function getConges( ) |
{ |
return $this->_conges_payes; |
} |
/** |
*recuperer le statut |
*/ |
function getStatut( ) |
{ |
return $this->_statut; |
} |
|
/** |
*recupere l'adresse |
*/ |
function getAdresse() |
{ |
return $this->_adresse; |
} |
/** |
*modifier les attributs de la classe |
*/ |
|
|
function setNom($nom) |
{ |
$this->_nom= $nom; |
} |
|
|
|
function setEmail($mail) |
{ |
$this->_email= $mail; |
} |
|
function setTelephone ($tel) |
{ |
$this->_telephone= $tel; |
} |
|
|
function setAdresse($adr) |
{ |
$this->_adresse = $adr; |
} |
|
|
function setCodePostal($code) |
{ |
$this->_code_postal = $code; |
} |
|
|
function setVille($ville) |
{ |
$this->_ville = $ville; |
} |
|
|
function setQuota($quota) |
{ |
$this->_quota_heures_sup = $quota; |
} |
|
|
function setConges($nb) |
{ |
$this->_conges_payes = $nb; |
} |
|
function setAdmin($nb) |
{ |
$this->admin = $nb; |
} |
|
function setAdmin2($nb) |
{ |
$this->admin2 = $nb; |
} |
|
|
function setStatut($st) |
{ |
$this->statut = $st; |
} |
|
|
/**insertion de notes sur l'utilisateur |
|
*/ |
|
function setNotes($notes) |
{ |
$this->Notes = $notes; |
} |
|
|
/**augmenter le nombre d'heure sup |
*un acces est fait a la bse de donnees pour enregistrer les changements en temps reel |
*/ |
function augmenterQuotaHeuresSup($nb) |
{ |
|
$requete = "UPDATE ".GEST_UTILISATEUR. |
"SET ".GEST_CHAMPS_QUOTA_HEURES_SUPP." = ".GEST_CHAMPS_QUOTA_HEURES_SUPP."+ $nb |
WHERE ".GEST_CHAMPS_ID_UTILISATEUR."= $this->_id_utilisateur"; |
|
$resultat = $GLOBALS['db']->query($requete); |
|
(DB::isError($resultat)) ? |
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
|
$this->_quota_heures_sup = $this->_quota_heures_sup +$nb; |
|
} |
|
|
|
/**diminuer le nb d'heures sup*/ |
|
function diminuerQuotaHeuresSup($nb) |
{ |
$requete = "UPDATE ".GEST_UTILISATEUR." |
SET ".GEST_CHAMPS_QUOTA_HEURES_SUPP." = ".GEST_CHAMPS_QUOTA_HEURES_SUPP."- $nb |
WHERE ".GEST_CHAMPS_ID_UTILISATEUR."= $this->_id_utilisateur"; |
|
$resultat = $GLOBALS['db']->query($requete); |
|
(DB::isError($resultat)) ? |
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
|
$this->_quota_heures_sup = $this->_quota_heures_sup -$nb; |
/*un quota heure supp negatif implique qu'il y a des heures a rattraper*/ |
} |
|
|
/*augmenter le nombre de jours de conges */ |
|
function augmenterConges($nb) |
{ |
$requete = "UPDATE ".GEST_UTILISATEUR." SET " |
.GEST_CHAMPS_CONGES_PAYES." = ".GEST_CHAMPS_CONGES_PAYES." + $nb |
WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_id_utilisateur"; |
|
$resultat = $GLOBALS['db']->query($requete); |
|
(DB::isError($resultat)) ? |
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
|
$this->_conges_payes = $this->_conges_payes +$nb; |
|
} |
|
|
/*diminuer le nombre de jour de conges */ |
|
function diminuerConges($nb) |
{ |
|
$requete = "UPDATE ".GEST_UTILISATEUR." SET " |
.GEST_CHAMPS_CONGES_PAYES." = ".GEST_CHAMPS_CONGES_PAYES."- $nb |
WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_id_utilisateur |
AND ".GEST_CHAMPS_CONGES_PAYES.">= $nb"; |
|
$resultat = $GLOBALS['db']->query($requete); |
|
|
(DB::isError($resultat)) ? |
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
|
$nb_ligne_modifie = $GLOBALS['db']->affectedRows(); |
|
|
/**si le update a bien eu lieu on renvoie 1 |
*sinon on renvoie -1 qui est synonyme d'erreur |
*/ |
if($nb_ligne_modifie==1) |
{ |
$this->_conges_payes = $this->_conges_payes -$nb; |
return 1; |
} |
else return -1; |
|
} |
|
|
|
/** |
* permet d'enregistrer un utilisateur dans une base de donnees a partir du nom de la |
* base de donnes, du nom de la table et des attributs à ajouter |
* |
*/ |
function enregistrerNewUtilisateur() |
{ |
//verification si identifiant deja attribue |
//ou si email deja utilise |
$b=&Utilisateur::nextId(); |
$this->_id_utilisateur =$b; |
|
$requete= "INSERT INTO ".GEST_UTILISATEUR. |
" SET ".GEST_CHAMPS_ID_UTILISATEUR." =$this->_id_utilisateur ," |
.GEST_CHAMPS_NOM." =\"$this->_nom\" ," |
.GEST_CHAMPS_PRENOM." =\"$this->_prenom\" ," |
.GEST_CHAMPS_PASSWORD." =MD5(\"$this->_password\") ," |
.GEST_CHAMPS_EMAIL." =\"$this->_email\" ," |
.GEST_CHAMPS_TELEPHONE." =$this->_telephone ," |
.GEST_CHAMPS_ADRESSE." =\"$this->_adresse\" ," |
.GEST_CHAMPS_CODE_POSTAL." =$this->_code_postal ," |
.GEST_CHAMPS_VILLE." =\"$this->_ville\" ," |
.GEST_CHAMPS_QUOTA_HEURES_SUPP." =$this->_quota_heures_sup ," |
.GEST_CHAMPS_CONGES_PAYES." =$this->_conges_payes ," |
.GEST_CHAMPS_TEMPS_DE_TRAVAIL." =$this->_temps_de_travail ," |
.GEST_CHAMPS_ADMIN." =$this->_admin ," |
.GEST_CHAMPS_ADMIN2." =$this->_admin2 ," |
.GEST_CHAMPS_STATUT." =$this->_statut ," |
.GEST_CHAMPS_NOTES." =\"$this->_Notes\" "; |
|
|
$resultat =$GLOBALS['db']->query($requete); |
|
(DB::isError($resultat)) ? |
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
|
$j=$GLOBALS['db']->affectedRows(); |
|
if ($j==1) |
{ |
return 1; |
}else return -1; |
|
} |
|
|
/*enregistrer la valeur d'un champs donne dans la table*/ |
|
function enregistrerChamps($field,$valeur) |
{ |
$requete ="INSERT INTO ".GEST_UTILISATEUR. |
" ($field) VALUES ($valeur)"; |
$resultat = $GLOBALS['db']->query($requete); |
|
(DB::isError($resultat)) ? |
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
} |
|
/**mettre a jour la table utilisateur pour prendre en compte les modifications |
*sur les donnees utilisateur |
*renvoie 1 si utilisateur mis a jour et -1 sinon |
*/ |
|
function mettreAJourUtilisateur() |
{ |
$table = GEST_UTILISATEUR; |
|
$requete= "UPDATE $table SET " |
.GEST_CHAMPS_NOM." =\"$this->_nom\"," |
.GEST_CHAMPS_PRENOM." = \"$this->_prenom\"," |
//.GEST_CHAMPS_PASSWORD." =MD5(\"$this->_password\") ," |
.GEST_CHAMPS_EMAIL." = \"$this->_email\"," |
.GEST_CHAMPS_TELEPHONE." =\"$this->_telephone\"," |
.GEST_CHAMPS_ADRESSE. "=\"$this->_adresse\"," |
.GEST_CHAMPS_CODE_POSTAL." = $this->_code_postal," |
.GEST_CHAMPS_VILLE." = \"$this->_ville\"," |
.GEST_CHAMPS_QUOTA_HEURES_SUPP." = $this->_quota_heures_sup," |
.GEST_CHAMPS_CONGES_PAYES." = $this->_conges_payes," |
.GEST_CHAMPS_TEMPS_DE_TRAVAIL." = $this->_temps_de_travail," |
.GEST_CHAMPS_ADMIN." = $this->_admin," |
.GEST_CHAMPS_ADMIN2." = $this->_admin2," |
.GEST_CHAMPS_NOTES." =\"$this->_Notes\"," |
.GEST_CHAMPS_STATUT." = $this->_statut" |
." WHERE ".GEST_CHAMPS_ID_UTILISATEUR. " = $this->_id_utilisateur "; |
|
$resultat= $GLOBALS['db']->query($requete); |
|
(DB::isError($resultat)) ? |
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
|
|
$nb_ligne_modifie = $GLOBALS['db']->affectedRows(); |
if ($nb_ligne_modifie==1) |
{ |
return 1; |
} |
else return -1; |
|
} |
|
/** |
*mettre a jour le champ password |
*/ |
function mettreAJourPassword($p) |
{ |
$table = GEST_UTILISATEUR; |
$requete= "UPDATE $table SET " |
.GEST_CHAMPS_PASSWORD." =MD5(\"$p\")" |
." WHERE ".GEST_CHAMPS_ID_UTILISATEUR. " = $this->_id_utilisateur "; |
|
$resultat= $GLOBALS['db']->query($requete); |
|
(DB::isError($resultat)) ? |
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
|
|
$nb_ligne_modifie = $GLOBALS['db']->affectedRows(); |
if ($nb_ligne_modifie==1) |
{ |
return 1; |
} |
else return -1; |
|
} |
|
|
/**supprimer un utilisateur |
*renvoie 1 si suppression effectuée et -1 sinon |
*/ |
|
function supprimerUtilisateur($id) |
{ |
$requete = "DELETE FROM ".GEST_UTILISATEUR. |
" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $id"; |
|
$resultat =$GLOBALS['db'] ->query($requete); |
|
(DB::isError($resultat)) ? |
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
|
/* verification avant destruction de l'instance de l'objet */ |
|
$nb_ligne_modifie = $GLOBALS['db']-> affectedRows(); |
if ($nb_ligne_modifie==1) |
{ |
return 1; |
} |
else return -1; |
|
|
} |
|
|
/** |
*ajouter preferences |
*prend en parametre une liste de projets |
*/ |
function ajouterPreference($tableau) |
{ |
//supression des preferences existantes |
|
//creation d'un controleur |
$cont=new Preference(0,0); |
|
$ligne=$cont->supprimerPreferences($this->_id_utilisateur); |
|
/*parcourt de la liste de projets |
*pour creer des preferences |
*et les enregistrer |
*/ |
if ($ligne>=0) |
{ |
foreach($tableau as $id) |
{ |
$pref=new Preference($this->_id_utilisateur,$id); |
$res= $pref->enregistrerPreference(); |
if ($res!=1){ |
exit; |
} |
} |
} |
|
} |
|
/** |
*recuperer les preferences d'un utilisateur |
*/ |
|
function recupererPreferencesUtilisateur() |
{ |
$controleur=new Preference($this->_id_utilisateur,0); |
$liste_pref=$controleur->recupererTableauPreferences(); |
return $liste_pref; |
} |
|
/** |
*modifie la liste de preferences |
*/ |
function setPreferences($tableau) |
{ |
$this->_liste_preferences=$tableau; |
} |
|
/** |
*ajoute une absence a la liste d'absence |
*de l'utilisateur |
*@param abs=tableau de donnees |
*/ |
|
function ajouterAbsenceUtilisateur($abs) |
{ |
$controleur=new Absence(0,0,time()); |
$controleur->construireAbsence($abs); |
//ajout a la liste |
array_push($this->_liste_absences,$controleur); |
//enregistrement de l'absence |
$res=$controleur->enregistrerNewAbsence(); |
if ($res!=1) |
{ |
echo "erreur ajout absence "; |
} |
} |
|
/** |
*ajouter un nouveau travail dans la liste |
*de travaux |
*/ |
|
function ajouterTravailUtilisateur($trav) |
{ |
$controleur=new Travail(0,0); |
$controleur->construireTravail($trav); |
array_push($this->_liste_travaux,controleur); |
$res=$controleur->enregistrerNewTravail(); |
if($res!=1) |
{ |
"echo erreur ajout travail"; |
} |
} |
|
/* |
*indique si la personn est administrateur |
*renvoie 1 si administrateur |
*0 sinon */ |
|
function isAdmin() |
{ |
return $this->_admin; |
} |
|
/* |
* |
recupere code _postal |
*/ |
function getCode() |
{ |
return $this->_code_postal; |
} |
|
/** |
*telephone |
*/ |
function getTelephone() |
{ |
return $this->_telephone; |
} |
/** |
*temsp de travail |
*/ |
|
function getTempsTravail() |
{ |
return $this->_temps_de_travail; |
} |
/* |
*fonction recuperant le mot de passe |
*/ |
function getPassword() |
{ |
return $this->_password; |
} |
|
/** |
*recupere l'identifiant de la base de donnees |
*/ |
|
function nextId() |
{ |
$requete = 'SELECT MAX('.GEST_CHAMPS_ID_UTILISATEUR.') AS maxi FROM '.GEST_UTILISATEUR; |
$resultat = $GLOBALS['db']->query($requete); |
if (DB::isError($resultat) || $resultat->numRows() > 1) { |
return false; |
} |
|
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
return $ligne->maxi + 1; |
} |
|
|
/* |
**indqiue si la personne ne doit pas figurer dans les recapitulatifs |
*renvoie 1 si ne figuer pas |
*0 sinon |
*/ |
|
function isAdmin2() |
{ |
return $this->_admin2; |
} |
|
/** |
*fonction recuperant le mail |
*/ |
function getEmail() |
{ |
return $this->_email; |
} |
/** |
*fonction permettant de chercher un utilisateur |
* a partir de son email |
*/ |
function recupIDUtilisateurMail($mail) |
{ |
$requete="SELECT ".GEST_CHAMPS_ID_UTILISATEUR. |
" FROM ".GEST_UTILISATEUR. |
" WHERE ".GEST_CHAMPS_EMAIL." ='$mail' "; |
|
$resultat =$GLOBALS['db']->query($requete) ; |
|
(DB::isError($resultat)) ? |
|
die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ; |
|
$i=$resultat->fetchRow(DB_FETCHMODE_ORDERED); |
|
return $i[0]; |
} |
|
|
|
/*afficher un utilisateur */ |
|
function afficherUtilisateur() |
{ |
|
//if ($this->_id_utilisateur !=null){ |
echo " utilisateur : "; |
echo "$this->_id_utilisateur<BR> \n" ; |
echo "nom : "; |
echo "$this->_nom \n"; |
echo "prenom :"; |
echo "$this->_prenom <BR>\n"; |
echo "mot de passe : "; |
echo "$this->_password \n"; |
echo "email :"; |
echo "$this->_email<BR> \n"; |
echo "tel"; |
echo "$this->_telephone <BR>\n"; |
echo "adre : "; |
echo "$this->_adresse \n"; |
echo "code_postal"; |
echo "$this->_code_postal \n"; |
echo "ville :"; |
echo "$this->_ville<BR> \n"; |
echo "nb heure supp :"; |
echo "$this->_quota_heures_sup <BR>\n"; |
echo "nb jour de conges restants : "; |
echo "$this->_conges_payes<BR> \n"; |
echo "nb d'heure de travail par jour : "; |
echo "$this->_temps_de_travail <BR>\n"; |
echo "admin : "; |
echo "$this->_admin<BR> \n "; |
echo "admin2 : "; |
echo "$this->_admin2 <BR>\n"; |
echo "statut : "; |
echo "$this->_statut<BR> \n"; |
echo "notes :"; |
echo "$this->_Notes<BR> \n"; |
} |
//} |
|
} |
?> |
Property changes: |
Added: svn:executable |