Subversion Repositories Applications.gtt

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 jpm 1
<?php
2
// +------------------------------------------------------------------------------------------------------+
3
// | PHP version 4.1                                                                                      |
4
// +------------------------------------------------------------------------------------------------------+
5
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
6
// +------------------------------------------------------------------------------------------------------+
7
// | This library is free software; you can redistribute it and/or                                        |
8
// | modify it under the terms of the GNU Lesser General Public                                           |
9
// | License as published by the Free Software Foundation; either                                         |
10
// | version 2.1 of the License, or (at your option) any later version.                                   |
11
// |                                                                                                      |
12
// | This library is distributed in the hope that it will be useful,                                      |
13
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
14
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
15
// | Lesser General Public License for more details.                                                      |
16
// |                                                                                                      |
17
// | You should have received a copy of the GNU Lesser General Public                                     |
18
// | License along with this library; if not, write to the Free Software                                  |
19
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
20
// +------------------------------------------------------------------------------------------------------+
21
 
22
// |@author ABDOOL RAHEEM shaheen   shaheenar50@hotmail.com                                                 |
23
// |@version 3                                                                                            |
24
/**
25
* class Travail
26
*
27
*/
28
 
29
class Travail
30
{
31
    /**Attributes: */
32
    var $_utilisateur=null;
33
    var $_tache=null;
34
    var $_date_travail =null;
35
    var $_duree_travail=null;
36
 
37
    /**
38
    *constructeur travail
39
    *@param user : identifiant utilisateur
40
    *@param tache : identifiant tache
41
    */
42
    function Travail($user, $tache)
43
    {
44
	$this->_utilisateur= $user;
45
	$this->_tache=$tache;
46
 
47
    }
48
    /*
49
    *enregistre un travail dans la bse de donnees
50
    *renvoie 1 si effectue
51
    *0 si aucun enregistrement effectue
52
    *-1 si erreur
53
    */
54
 
55
    function enregistrerNewTravail()
56
    {
57
	$table =GEST_TRAVAIL;
58
	$champs =array(
59
	GEST_CHAMPS_ID_UTILISATEUR =>$this->_utilisateur,
60
	GEST_CHAMPS_ID_TACHE =>$this->_tache,
61
	GEST_CHAMPS_DATE_TRAVAIL =>$this->_date_travail,
62
	GEST_CHAMPS_DUREE_TRAVAIL =>$this->_duree_travail);
63
 
64
	$resultat =$GLOBALS['db']->autoExecute($table,$champs,DB_AUTOQUERY_INSERT);
65
	if (DB::isError($resultat)) {
66
	    die($resultat->getMessage());
67
	}
68
 
69
	$j=$GLOBALS['db']->affectedRows();
70
 
71
	if ($j==1)
72
	{
73
	    return 1;
74
	}elseif($j==0){
75
	    return 0;
76
	}else{
77
	    return -1;
78
	}
79
    }
80
 
81
    /**
82
    *fonction mettant a jour l'objet travail dans la base de donnees
83
    *mise a jour de la duree
84
    *renvoie 1 si une modification bien effectuee
85
    *-1 sinon
86
    */
87
    function mettreAjourTravail()
88
    {
89
	$table=GEST_TRAVAIL;
90
 
91
	$requete=" UPDATE $table SET ".
92
	GEST_CHAMPS_DUREE_TRAVAIL." = $this->_duree_travail ".
93
	" WHERE ".GEST_CHAMPS_ID_TACHE." = $this->_tache ".
94
	" AND ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_utilisateur".
95
	" AND ".GEST_CHAMPS_DATE_TRAVAIL." =\"$this->_date_travail\"";
96
 
97
 
98
	$resultat =$GLOBALS['db']->query($requete) ;
99
	(DB::isError($resultat)) ?
100
	die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
101
 
102
	$nb_ligne_modifie = $GLOBALS['db']->affectedRows();
103
 
104
	if ($nb_ligne_modifie==1)
105
	{
106
	    return 1;
107
	}
108
	else return -1;
109
 
110
    }
111
 
112
    /**
113
    *fonction faisiant la somme des heures travaillees
114
    *pour une journee donnee pour un utilisateur
115
    *@param $id : identifiant de la personne a chercher
116
    *@param $date: date pour laquelle on doit faire la somme
117
    *date est sous forme Y-m-d(format mysql)
118
    *@return  une somme temps de travail de l'utilisateur a la date donnee
119
    */
120
    function sommeHeureTravail($id,$date)
121
    {
122
	$requete="SELECT SUM(".GEST_CHAMPS_DUREE_TRAVAIL.")".
123
	" FROM ".GEST_TRAVAIL.
124
	" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $id".
125
	" AND ".GEST_CHAMPS_DATE_TRAVAIL." =\"$date\" ";
126
 
127
 
128
	$resultat = $GLOBALS['db']->query($requete);
129
 
130
	(DB::isError($resultat)) ?
131
	die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
132
 
133
	$ligne = $resultat->fetchRow(DB_FETCHMODE_ORDERED);
134
	return $ligne[0];
135
 
136
    }
137
    /**
138
    *fonction pour determiner la date de travail
139
    */
140
    function setDateTravail( $dateTravail )
141
    {
142
	$this->_date_travail =$dateTravail;
143
    }
144
 
145
    /**
146
    *fonction renvoyant la date de travail
147
    */
148
    function getDateTravail()
149
    {
150
	return $this->_date_travail;
151
    }
152
 
153
    /**
154
    *fonction renvoyant la duree du temps de travail
155
    */
156
    function getDureeTravail()
157
    {
158
	return $this->_duree_travail;
159
    }
160
    /**
161
    *fonction qui renvoie l'identifiant de l'utilisateur
162
    */
163
    function getIdUserTravail()
164
    {
165
	return $this->_utilisateur;
166
    }
167
    /**
168
    * fonction mettant a jour la duree de travail
169
    *
170
    */
171
    function setDureeTravail( $duree )
172
    {
173
	$this->_duree_travail =$duree;
174
    }
175
 
176
 
177
    /**
178
    *  supprime un travail de la bse de donnees
179
    */
180
 
181
    function supprimerTravail()
182
    {
183
	$requete="DELETE FROM ".GEST_TRAVAIL.
184
	" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $this->_utilisateur AND "
185
	.GEST_CHAMPS_ID_TACHE." =$this->_tache AND "
186
	.GEST_CHAMPS_DATE_TRAVAIL." = '$this->_date_travail'";
187
 
188
	$resultat = $GLOBALS['db']->query($requete);
189
 
190
	(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
191
 
192
 
193
	$j=$GLOBALS['db']->affectedRows();
194
	return $j;
195
    }
196
 
197
    /**
198
    *recuperer un tableau de travail
199
    *pour un utilisateur donne
200
    */
201
    function recupererTableauTravail($id)
202
    {
203
 
204
	$table=array();
205
	$requete="SELECT * FROM ".GEST_TRAVAIL.
206
	" WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $id ";
207
 
208
	$resultat = $GLOBALS['db']->query($requete);
209
 
210
	(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
211
 
212
	while($ligne=$resultat->fetchRow(DB_FETCHMODE_ASSOC))
213
	{
214
	    $case =array(GEST_CHAMPS_ID_TACHE => $ligne[GEST_CHAMPS_ID_TACHE],
215
	    GEST_CHAMPS_ID_UTILISATEUR =>$ligne[GEST_CHAMPS_ID_UTILISATEUR],
216
	    GEST_CHAMPS_DATE_TRAVAIL => $ligne[GEST_CHAMPS_DATE_TRAVAIL],
217
	    GEST_CHAMPS_DUREE_TRAVAIL =>$ligne[GEST_CHAMPS_DUREE_TRAVAIL]);
218
 
219
	    array_push($table,$case);
220
	}
221
 
222
	return $table;
223
    }
224
 
225
    /**
226
    *construire un travail
227
    */
228
 
229
    function construireTravail($tableau)
230
    {
231
	$this->_utilisateur=$tableau[GEST_CHAMPS_ID_UTILISATEUR];
232
	$this->_tache=$tableau[GEST_CHAMPS_ID_TACHE];
233
	$this->_date_travail=$tableau[GEST_CHAMPS_DATE_TRAVAIL];
234
	$this->_duree_travail=$tableau[GEST_CHAMPS_DUREE_TRAVAIL];
235
 
236
    }
237
    /**
238
    *fonction verifiant si un travail existe pour une date donnee
239
    *tache et utilisateurs donnes
240
    *renvoie la duree du travail si existe
241
    *O si aucun travail trouve et
242
    *-1 sinon
243
    */
244
    function existeTravail()
245
    {
246
	$requete="SELECT  * ".
247
	" FROM ".GEST_TRAVAIL.
248
	" WHERE ".GEST_CHAMPS_ID_TACHE." = $this->_tache AND ".
249
	GEST_CHAMPS_ID_UTILISATEUR." = $this->_utilisateur AND ".
250
	GEST_CHAMPS_DATE_TRAVAIL." ='$this->_date_travail'";
251
 
252
 
253
	$resultat = $GLOBALS['db']->query($requete);
254
	$ligne=$resultat->fetchRow(DB_FETCHMODE_ASSOC);
255
 
256
	(DB::isError($resultat)) ?
257
	die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;
258
 
259
	$j=$resultat->numRows();
260
	if ($j==1)
261
	{
262
	    return $ligne[GEST_CHAMPS_DUREE_TRAVAIL];
263
	}elseif($j==0){
264
	    return 0;
265
	}else{
266
	    return -1;
267
	}
268
 
269
    }
270
    /**
271
    *supression de tous les taches d'un utilisateur pour une
272
    *date donnee
273
    *@param $id : identifiant de l'utilisateur
274
    *@param : $date : date de travail format mysql Y-m-d
275
    *@return 1 si ok
276
    *-1 si erreur
277
    */
278
    function supprimerTachesUserDate($id,$date)
279
    {
280
	$requete="DELETE FROM ".GEST_TRAVAIL.
281
	         " WHERE ".GEST_CHAMPS_ID_UTILISATEUR." = $id".
282
		 " AND ".GEST_CHAMPS_DATE_TRAVAIL. "= \"$date\" ";
283
 
284
 
285
	$resultat=$GLOBALS['db']->query($requete);
286
	$j=$GLOBALS['db']->affectedRows();
287
	if ($j>=0){
288
	    return 1;
289
	}else return -1;
290
 
291
    }
292
    /*
293
    *affichage du travail
294
    */
295
    function afficherTravail()
296
    {
297
	echo "<br /> travail ";
298
	$t =array(
299
	$this->_utilisateur, $this->_tache,$this->_date_travail,$this->_duree_travail);
300
 
301
	foreach ($t as $p)
302
	{
303
	    if (isset($p)){
304
	    echo "$p  <br />";}
305
	}
306
 
307
 
308
    }
309
 
310
}
311
?>