Subversion Repositories Applications.gtt

Rev

Rev 48 | Rev 54 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
10 jpm 1
<?php
2
// +------------------------------------------------------------------------------------------------------+
3
// | PHP version 5.1.1                                                                                    |
4
// +------------------------------------------------------------------------------------------------------+
5
// | Copyright (C) 2006 Tela Botanica (accueil@tela-botanica.org)                                         |
6
// +------------------------------------------------------------------------------------------------------+
7
// | This file is part of eFlore.                                                                         |
8
// |                                                                                                      |
9
// | Foobar is free software; you can redistribute it and/or modify                                       |
10
// | it under the terms of the GNU General Public License as published by                                 |
11
// | the Free Software Foundation; either version 2 of the License, or                                    |
12
// | (at your option) any later version.                                                                  |
13
// |                                                                                                      |
14
// | Foobar is distributed in the hope that it will be useful,                                            |
15
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
16
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                        |
17
// | GNU General Public License for more details.                                                         |
18
// |                                                                                                      |
19
// | You should have received a copy of the GNU General Public License                                    |
20
// | along with Foobar; if not, write to the Free Software                                                |
21
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
22
// +------------------------------------------------------------------------------------------------------+
23
// CVS : $Id$
24
/**
25
* Classe Utilisateur
26
*
27
* Description
28
*
29
*@package eFlore
30
*@subpackage modele
31
//Auteur original :
32
*@version 3
33
*@author        Shaheen ABDOOL RAHEEM <shaheenar50@hotmail.com>
34
//Autres auteurs :
35
*@version 4
36
*@author        Jean-Pascal MILCENT <jpm@clapas.org>
37
*@author        aucun
38
*@copyright     Tela-Botanica 2000-2006
39
*@version       $Revision$ $Date$
40
// +------------------------------------------------------------------------------------------------------+
41
*/
42
 
43
/**
44
* class Utilisateur : est à la fois le DAO et le conteneur de la table gestion_utilisateur.
45
* classe métier
46
*/
47
class Utilisateur extends aGttSql {
48
	/*** Constantes : */
48 jpm 49
	const GU_TOUS = 'UTILISATEUR_TOUS';
10 jpm 50
	const GU_ID = 'UTILISATEUR_ID';
51
	const GU_ID_MAX = 'UTILISATEUR_ID_MAX';
48 jpm 52
	const GU_CE_STATUT = 'UTILISATEUR_CE_STATUT';
10 jpm 53
	const GU_MAIL = 'UTILISATEUR_MAIL';
36 jpm 54
 
10 jpm 55
	/*** Attributs : */
56
	private $id_utilisateur;
48 jpm 57
	private $ce_statut = 0;
10 jpm 58
	private $nom;
59
	private $prenom;
60
	private $password;
61
	private $email;
62
	private $telephone;
63
	private $adresse;
64
	private $code_postal;
65
	private $ville;
48 jpm 66
	private $quota_heures_supp = 0;
67
	private $conges_payes = 0;
68
	private $temps_de_travail = 7;
69
	private $mark_admin = 0;
70
	private $mark_recapitulatif = 1;
10 jpm 71
	private $notes;
36 jpm 72
 
10 jpm 73
	/*** Aggregations : */
74
 
75
	/*** Constructeur : */
76
	public function __construct($cmd = null, $parametres = null)
77
	{
78
		$this->dao_table_nom = 'gestion_utilisateur';
79
		$this->dao_correspondance = array(
80
			'gu_id_utilisateur'	=> 'id_utilisateur',
36 jpm 81
			'gu_ce_statut'	=> 'ce_statut',
10 jpm 82
			'gu_nom'	=> 'nom',
83
			'gu_prenom'	=> 'prenom',
84
			'gu_password'	=> 'password',
85
			'gu_email'	=> 'email',
86
			'gu_telephone'	=> 'telephone',
87
			'gu_adresse'	=> 'adresse',
88
			'gu_code_postal'	=> 'code_postal',
89
			'gu_ville'	=> 'ville',
90
			'gu_quota_heures_supp'	=> 'quota_heures_supp',
91
			'gu_conges_payes'	=> 'conges_payes',
92
			'gu_temps_de_travail'	=> 'temps_de_travail',
93
			'gu_mark_admin'	=> 'mark_admin',
94
			'gu_mark_recapitulatif'	=> 'mark_recapitulatif',
95
			'gu_notes'	=> 'notes');
36 jpm 96
 
10 jpm 97
		// Si l'on veut remplir l'objet à la création on lance la requete correspondante
98
		if (!is_null($cmd)) {
99
			$this->consulter($cmd, $parametres, true);
100
		}
101
	}
36 jpm 102
 
10 jpm 103
	/*** Accesseurs : */
104
	// Id Utilisateur
105
	public function getIdUtilisateur()
106
	{
107
		return $this->id_utilisateur;
108
	}
109
	public function setIdUtilisateur( $iu )
110
	{
111
		$this->id_utilisateur = $iu;
112
	}
36 jpm 113
 
10 jpm 114
	// Gus Id Utilisateur Statut
36 jpm 115
	public function getCeStatut()
10 jpm 116
	{
36 jpm 117
		return $this->ce_statut;
10 jpm 118
	}
36 jpm 119
	public function setCeStatut( $cs )
10 jpm 120
	{
36 jpm 121
		$this->ce_statut = $cs;
10 jpm 122
	}
36 jpm 123
 
10 jpm 124
	// Nom
125
	public function getNom()
126
	{
127
		return $this->nom;
128
	}
129
	public function setNom( $n )
130
	{
131
		$this->nom = $n;
132
	}
36 jpm 133
 
10 jpm 134
	// Prenom
135
	public function getPrenom()
136
	{
137
		return $this->prenom;
138
	}
139
	public function setPrenom( $p )
140
	{
141
		$this->prenom = $p;
142
	}
36 jpm 143
 
10 jpm 144
	// Password
145
	public function getPassword()
146
	{
147
		return $this->password;
148
	}
149
	public function setPassword( $p )
150
	{
151
		$this->password = $p;
152
	}
36 jpm 153
 
10 jpm 154
	// Email
155
	public function getEmail()
156
	{
157
		return $this->email;
158
	}
159
	public function setEmail( $e )
160
	{
161
		$this->email = $e;
162
	}
36 jpm 163
 
10 jpm 164
	// Telephone
165
	public function getTelephone()
166
	{
167
		return $this->telephone;
168
	}
169
	public function setTelephone( $t )
170
	{
171
		$this->telephone = $t;
172
	}
36 jpm 173
 
10 jpm 174
	// Adresse
175
	public function getAdresse()
176
	{
177
		return $this->adresse;
178
	}
179
	public function setAdresse( $a )
180
	{
181
		$this->adresse = $a;
182
	}
36 jpm 183
 
10 jpm 184
	// Code Postal
185
	public function getCodePostal()
186
	{
187
		return $this->code_postal;
188
	}
189
	public function setCodePostal( $cp )
190
	{
191
		$this->code_postal = $cp;
192
	}
36 jpm 193
 
10 jpm 194
	// Ville
195
	public function getVille()
196
	{
197
		return $this->ville;
198
	}
199
	public function setVille( $v )
200
	{
201
		$this->ville = $v;
202
	}
36 jpm 203
 
10 jpm 204
	// Quota Heures Supp
205
	public function getQuotaHeuresSupp()
206
	{
207
		return $this->quota_heures_supp;
208
	}
209
	public function setQuotaHeuresSupp( $qhs )
210
	{
211
		$this->quota_heures_supp = $qhs;
212
	}
36 jpm 213
 
10 jpm 214
	// Conges Payes
215
	public function getCongesPayes()
216
	{
217
		return $this->conges_payes;
218
	}
219
	public function setCongesPayes( $cp )
220
	{
221
		$this->conges_payes = $cp;
222
	}
36 jpm 223
 
10 jpm 224
	// Temps De Travail
225
	public function getTempsDeTravail()
226
	{
227
		return $this->temps_de_travail;
228
	}
229
	public function setTempsDeTravail( $tdt )
230
	{
231
		$this->temps_de_travail = $tdt;
232
	}
36 jpm 233
 
10 jpm 234
	// Mark Admin
235
	public function getMarkAdmin()
236
	{
237
		return $this->mark_admin;
238
	}
239
	public function setMarkAdmin( $ma )
240
	{
241
		$this->mark_admin = $ma;
242
	}
36 jpm 243
 
10 jpm 244
	// Mark Recapitulatif
245
	public function getMarkRecapitulatif()
246
	{
247
		return $this->mark_recapitulatif;
248
	}
249
	public function setMarkRecapitulatif( $mr )
250
	{
251
		$this->mark_recapitulatif = $mr;
252
	}
36 jpm 253
 
10 jpm 254
	// Notes
255
	public function getNotes()
256
	{
257
		return $this->notes;
258
	}
259
	public function setNotes( $n )
260
	{
261
		$this->notes = $n;
262
	}
36 jpm 263
 
10 jpm 264
	/*** Méthodes : */
265
 
266
	/**
267
	* Consulter la table gestion_utilisateur.
268
	* @return mixed un tableau d'objets Utilisateur s'il y en a plusieurs, l'objet Utilisateur s'il y en a 1 seul sinon false.
269
	*/
270
	public function consulter($cmd = '', $parametres = array(), $instancier = false)
271
	{
48 jpm 272
		if (!is_array($parametres)) {
273
			$parametres[0] = $parametres;
274
		}
10 jpm 275
		switch ($cmd) {
48 jpm 276
			case Utilisateur::GU_TOUS:
277
				$requete = 	'SELECT * '.
278
							'FROM gestion_utilisateur '.
279
							'ORDER BY gu_prenom, gu_nom ASC';
280
				break;
10 jpm 281
			case Utilisateur::GU_ID:
282
				$requete = 	'SELECT * '.
283
							'FROM gestion_utilisateur '.
284
							'WHERE gu_id_utilisateur = '.$parametres[0].' ';
285
				break;
286
			case Utilisateur::GU_ID_MAX:
48 jpm 287
				$requete =	'SELECT MAX(gu_id_utilisateur) AS gu_id_utilisateur '.
10 jpm 288
							'FROM gestion_utilisateur ';
289
				break;
48 jpm 290
			case Utilisateur::GU_CE_STATUT:
291
				$requete =	'SELECT * '.
292
							'FROM gestion_utilisateur '.
293
							'WHERE gu_ce_statut = "'.$parametres[0].'" ';
294
				break;
10 jpm 295
			case Utilisateur::GU_MAIL:
296
				$requete =	'SELECT * '.
297
							'FROM gestion_utilisateur '.
298
							'WHERE gu_email = "'.$parametres[0].'" ';
299
				break;
300
			default :
301
				$message = 'Commande '.$cmd.'inconnue!';
302
				$e = GestionnaireErreur::formaterMessageErreur(__FILE__, __LINE__, $message);
303
    			trigger_error($e, E_USER_ERROR);
304
		}
36 jpm 305
 
10 jpm 306
		$resultat = $GLOBALS['db']->query($requete);
307
		(DB::isError($resultat)) ? die (GestionnaireErreur::retournerErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
308
		$tab_resultat = array();
48 jpm 309
		while ($donnees =& $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
10 jpm 310
			$tab_resultat[] = $this->basculerEnregistrementObjet($donnees, $instancier);
311
		}
36 jpm 312
 
313
		$resultat_nbre = count($tab_resultat);
10 jpm 314
		if ($resultat_nbre > 1) {
315
			return $tab_resultat;
316
		} else if ($resultat_nbre == 1) {
317
			return $tab_resultat[0];
318
		} else if ($resultat_nbre == 0) {
319
			return false;
320
		}
321
	}
52 jpm 322
 
323
	public function supprimer()
324
	{
325
		$requete = 	'DELETE FROM gestion_utilisateur '.
326
					'WHERE gu_id_utilisateur = '.$this->getIdUtilisateur();
327
		$resultat = $GLOBALS['db']->query($requete);
328
		(DB::isError($resultat)) ? die (GestionnaireErreur::retournerErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
329
 
330
		if ($GLOBALS['db']->affectedRows() == 1) {
331
			return true;
332
		} elseif ($GLOBALS['db']->affectedRows() == 0) {
333
			return false;
334
		}
335
	}
36 jpm 336
 
10 jpm 337
	/** Afficher l'objet Utilisateur */
338
	function afficherUtilisateur()
339
	{
340
		echo '<pre>'.print_r($this, true).'</pre>';
341
	}
36 jpm 342
 
10 jpm 343
	/**augmenter le nombre d'heure sup
36 jpm 344
	*un acces est fait a la bse de donnees pour enregistrer les changements en temps reel
10 jpm 345
 	*/
346
	function augmenterQuotaHeuresSup($nb)
347
	{
348
		$this->quota_heures_sup =  $this->quota_heures_sup + $nb;
349
	}
350
 
351
	/**diminuer le nb d'heures sup*/
352
	public function diminuerQuotaHeuresSup($nb)
353
	{
354
		$this->quota_heures_sup =  $this->quota_heures_sup - $nb;
355
		/*un quota heure supp negatif implique qu'il y a des heures a rattraper*/
356
	}
36 jpm 357
 
10 jpm 358
	/**augmenter le nombre de jours de conges */
359
	function augmenterCongesPayes($nb)
360
	{
361
		$this->conges_payes = $this->conges_payes + $nb;
362
	}
36 jpm 363
 
10 jpm 364
	/**diminuer le nombre de jour de conges */
365
	function diminuerCongesPayes($nb)
366
	{
367
		$this->conges_payes = $this->conges_payes - $nb;
368
	}
369
}
370
 
371
/* +--Fin du code ----------------------------------------------------------------------------------------+
372
*
373
* $Log$
374
*
375
* +-- Fin du code ----------------------------------------------------------------------------------------+
376
*/
377
?>