Subversion Repositories Applications.gtt

Rev

Rev 64 | Rev 79 | 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';
67 jpm 53
	const GU_MAIL = 'UTILISATEUR_MAIL';
54
	const GU_TOUS_AFFICHABLE = 'UTILISATEUR_TOUS_AFFICHABLE';
36 jpm 55
 
10 jpm 56
	/*** Attributs : */
57
	private $id_utilisateur;
48 jpm 58
	private $ce_statut = 0;
10 jpm 59
	private $nom;
60
	private $prenom;
61
	private $password;
62
	private $email;
63
	private $telephone;
64
	private $adresse;
65
	private $code_postal;
66
	private $ville;
48 jpm 67
	private $quota_heures_supp = 0;
68
	private $conges_payes = 0;
67 jpm 69
	private $temps_de_travail_jour = 7;
70
	private $temps_de_travail_mois = 0;
48 jpm 71
	private $mark_admin = 0;
72
	private $mark_recapitulatif = 1;
10 jpm 73
	private $notes;
36 jpm 74
 
10 jpm 75
	/*** Aggregations : */
76
 
77
	/*** Constructeur : */
78
	public function __construct($cmd = null, $parametres = null)
79
	{
80
		$this->dao_table_nom = 'gestion_utilisateur';
81
		$this->dao_correspondance = array(
82
			'gu_id_utilisateur'	=> 'id_utilisateur',
36 jpm 83
			'gu_ce_statut'	=> 'ce_statut',
10 jpm 84
			'gu_nom'	=> 'nom',
85
			'gu_prenom'	=> 'prenom',
86
			'gu_password'	=> 'password',
87
			'gu_email'	=> 'email',
88
			'gu_telephone'	=> 'telephone',
89
			'gu_adresse'	=> 'adresse',
90
			'gu_code_postal'	=> 'code_postal',
91
			'gu_ville'	=> 'ville',
92
			'gu_quota_heures_supp'	=> 'quota_heures_supp',
93
			'gu_conges_payes'	=> 'conges_payes',
67 jpm 94
			'gu_temps_de_travail_jour'	=> 'temps_de_travail_jour',
95
			'gu_temps_de_travail_mois'	=> 'temps_de_travail_mois',
10 jpm 96
			'gu_mark_admin'	=> 'mark_admin',
97
			'gu_mark_recapitulatif'	=> 'mark_recapitulatif',
98
			'gu_notes'	=> 'notes');
36 jpm 99
 
10 jpm 100
		// Si l'on veut remplir l'objet à la création on lance la requete correspondante
101
		if (!is_null($cmd)) {
102
			$this->consulter($cmd, $parametres, true);
103
		}
104
	}
36 jpm 105
 
10 jpm 106
	/*** Accesseurs : */
107
	// Id Utilisateur
108
	public function getIdUtilisateur()
109
	{
110
		return $this->id_utilisateur;
111
	}
112
	public function setIdUtilisateur( $iu )
113
	{
114
		$this->id_utilisateur = $iu;
115
	}
36 jpm 116
 
10 jpm 117
	// Gus Id Utilisateur Statut
36 jpm 118
	public function getCeStatut()
10 jpm 119
	{
36 jpm 120
		return $this->ce_statut;
10 jpm 121
	}
36 jpm 122
	public function setCeStatut( $cs )
10 jpm 123
	{
36 jpm 124
		$this->ce_statut = $cs;
10 jpm 125
	}
36 jpm 126
 
10 jpm 127
	// Nom
128
	public function getNom()
129
	{
130
		return $this->nom;
131
	}
132
	public function setNom( $n )
133
	{
54 jpm 134
		$this->nom = strtoupper($n);
10 jpm 135
	}
36 jpm 136
 
10 jpm 137
	// Prenom
138
	public function getPrenom()
139
	{
140
		return $this->prenom;
141
	}
142
	public function setPrenom( $p )
143
	{
144
		$this->prenom = $p;
145
	}
36 jpm 146
 
10 jpm 147
	// Password
148
	public function getPassword()
149
	{
150
		return $this->password;
151
	}
152
	public function setPassword( $p )
153
	{
54 jpm 154
		$this->password = md5($p);
10 jpm 155
	}
36 jpm 156
 
10 jpm 157
	// Email
158
	public function getEmail()
159
	{
160
		return $this->email;
161
	}
162
	public function setEmail( $e )
163
	{
164
		$this->email = $e;
165
	}
36 jpm 166
 
10 jpm 167
	// Telephone
168
	public function getTelephone()
169
	{
170
		return $this->telephone;
171
	}
172
	public function setTelephone( $t )
173
	{
54 jpm 174
		$this->telephone = (string) $t;
10 jpm 175
	}
36 jpm 176
 
10 jpm 177
	// Adresse
178
	public function getAdresse()
179
	{
180
		return $this->adresse;
181
	}
182
	public function setAdresse( $a )
183
	{
184
		$this->adresse = $a;
185
	}
36 jpm 186
 
10 jpm 187
	// Code Postal
188
	public function getCodePostal()
189
	{
190
		return $this->code_postal;
191
	}
192
	public function setCodePostal( $cp )
193
	{
194
		$this->code_postal = $cp;
195
	}
36 jpm 196
 
10 jpm 197
	// Ville
198
	public function getVille()
199
	{
200
		return $this->ville;
201
	}
202
	public function setVille( $v )
203
	{
204
		$this->ville = $v;
205
	}
36 jpm 206
 
10 jpm 207
	// Quota Heures Supp
208
	public function getQuotaHeuresSupp()
209
	{
210
		return $this->quota_heures_supp;
211
	}
212
	public function setQuotaHeuresSupp( $qhs )
213
	{
214
		$this->quota_heures_supp = $qhs;
215
	}
36 jpm 216
 
10 jpm 217
	// Conges Payes
218
	public function getCongesPayes()
219
	{
220
		return $this->conges_payes;
221
	}
222
	public function setCongesPayes( $cp )
223
	{
224
		$this->conges_payes = $cp;
225
	}
36 jpm 226
 
67 jpm 227
	// Temps De Travail Jour
228
	public function getTempsDeTravailJour()
10 jpm 229
	{
67 jpm 230
		return $this->temps_de_travail_jour;
10 jpm 231
	}
67 jpm 232
	public function setTempsDeTravailJour( $tdt )
10 jpm 233
	{
67 jpm 234
		$this->temps_de_travail_jour = $tdt;
10 jpm 235
	}
36 jpm 236
 
67 jpm 237
	// Temps De Travail Mois
238
	public function getTempsDeTravailMois()
239
	{
240
		return $this->temps_de_travail_mois;
241
	}
242
	public function setTempsDeTravailMois( $tdt )
243
	{
244
		$this->temps_de_travail_mois = $tdt;
245
	}
246
 
10 jpm 247
	// Mark Admin
248
	public function getMarkAdmin()
249
	{
250
		return $this->mark_admin;
251
	}
252
	public function setMarkAdmin( $ma )
253
	{
254
		$this->mark_admin = $ma;
255
	}
36 jpm 256
 
10 jpm 257
	// Mark Recapitulatif
258
	public function getMarkRecapitulatif()
259
	{
260
		return $this->mark_recapitulatif;
261
	}
262
	public function setMarkRecapitulatif( $mr )
263
	{
264
		$this->mark_recapitulatif = $mr;
265
	}
36 jpm 266
 
10 jpm 267
	// Notes
268
	public function getNotes()
269
	{
270
		return $this->notes;
271
	}
272
	public function setNotes( $n )
273
	{
274
		$this->notes = $n;
275
	}
36 jpm 276
 
10 jpm 277
	/*** Méthodes : */
278
 
279
	/**
280
	* Consulter la table gestion_utilisateur.
281
	* @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.
282
	*/
283
	public function consulter($cmd = '', $parametres = array(), $instancier = false)
284
	{
48 jpm 285
		if (!is_array($parametres)) {
286
			$parametres[0] = $parametres;
287
		}
10 jpm 288
		switch ($cmd) {
48 jpm 289
			case Utilisateur::GU_TOUS:
290
				$requete = 	'SELECT * '.
291
							'FROM gestion_utilisateur '.
292
							'ORDER BY gu_prenom, gu_nom ASC';
293
				break;
10 jpm 294
			case Utilisateur::GU_ID:
295
				$requete = 	'SELECT * '.
296
							'FROM gestion_utilisateur '.
297
							'WHERE gu_id_utilisateur = '.$parametres[0].' ';
298
				break;
299
			case Utilisateur::GU_ID_MAX:
48 jpm 300
				$requete =	'SELECT MAX(gu_id_utilisateur) AS gu_id_utilisateur '.
10 jpm 301
							'FROM gestion_utilisateur ';
302
				break;
48 jpm 303
			case Utilisateur::GU_CE_STATUT:
304
				$requete =	'SELECT * '.
305
							'FROM gestion_utilisateur '.
306
							'WHERE gu_ce_statut = "'.$parametres[0].'" ';
307
				break;
10 jpm 308
			case Utilisateur::GU_MAIL:
309
				$requete =	'SELECT * '.
310
							'FROM gestion_utilisateur '.
311
							'WHERE gu_email = "'.$parametres[0].'" ';
67 jpm 312
				break;
313
			case Utilisateur::GU_TOUS_AFFICHABLE:
314
				$requete = 	'SELECT * '.
315
							'FROM gestion_utilisateur '.
316
							'WHERE gu_mark_recapitulatif = 0 '.
317
							'ORDER BY gu_prenom, gu_nom ASC';
10 jpm 318
				break;
319
			default :
320
				$message = 'Commande '.$cmd.'inconnue!';
321
				$e = GestionnaireErreur::formaterMessageErreur(__FILE__, __LINE__, $message);
322
    			trigger_error($e, E_USER_ERROR);
323
		}
36 jpm 324
 
10 jpm 325
		$resultat = $GLOBALS['db']->query($requete);
326
		(DB::isError($resultat)) ? die (GestionnaireErreur::retournerErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
327
		$tab_resultat = array();
48 jpm 328
		while ($donnees =& $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
10 jpm 329
			$tab_resultat[] = $this->basculerEnregistrementObjet($donnees, $instancier);
330
		}
36 jpm 331
 
332
		$resultat_nbre = count($tab_resultat);
10 jpm 333
		if ($resultat_nbre > 1) {
334
			return $tab_resultat;
335
		} else if ($resultat_nbre == 1) {
336
			return $tab_resultat[0];
337
		} else if ($resultat_nbre == 0) {
338
			return false;
339
		}
340
	}
52 jpm 341
 
342
	public function supprimer()
343
	{
344
		$requete = 	'DELETE FROM gestion_utilisateur '.
345
					'WHERE gu_id_utilisateur = '.$this->getIdUtilisateur();
346
		$resultat = $GLOBALS['db']->query($requete);
347
		(DB::isError($resultat)) ? die (GestionnaireErreur::retournerErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
348
 
349
		if ($GLOBALS['db']->affectedRows() == 1) {
350
			return true;
351
		} elseif ($GLOBALS['db']->affectedRows() == 0) {
352
			return false;
353
		}
354
	}
36 jpm 355
 
10 jpm 356
	/** Afficher l'objet Utilisateur */
357
	function afficherUtilisateur()
358
	{
359
		echo '<pre>'.print_r($this, true).'</pre>';
360
	}
36 jpm 361
 
10 jpm 362
	/**augmenter le nombre d'heure sup
36 jpm 363
	*un acces est fait a la bse de donnees pour enregistrer les changements en temps reel
10 jpm 364
 	*/
365
	function augmenterQuotaHeuresSup($nb)
366
	{
367
		$this->quota_heures_sup =  $this->quota_heures_sup + $nb;
368
	}
369
 
370
	/**diminuer le nb d'heures sup*/
371
	public function diminuerQuotaHeuresSup($nb)
372
	{
373
		$this->quota_heures_sup =  $this->quota_heures_sup - $nb;
374
		/*un quota heure supp negatif implique qu'il y a des heures a rattraper*/
375
	}
36 jpm 376
 
10 jpm 377
	/**augmenter le nombre de jours de conges */
378
	function augmenterCongesPayes($nb)
379
	{
380
		$this->conges_payes = $this->conges_payes + $nb;
381
	}
36 jpm 382
 
10 jpm 383
	/**diminuer le nombre de jour de conges */
384
	function diminuerCongesPayes($nb)
385
	{
386
		$this->conges_payes = $this->conges_payes - $nb;
387
	}
388
}
389
 
390
/* +--Fin du code ----------------------------------------------------------------------------------------+
391
*
392
* $Log$
393
*
394
* +-- Fin du code ----------------------------------------------------------------------------------------+
395
*/
396
?>