Subversion Repositories Applications.gtt

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1 → Rev 2

/trunk/classes_metier/gtt_utilisateur.class.php
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