Subversion Repositories Applications.gtt

Rev

Rev 147 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 147 Rev 154
Line 1... Line 1...
1
<?php
1
<?php
2
class GttCtrlActionGestion extends aControlleurAction {
2
class GttCtrlActionGestion extends aControlleurAction {
Line 3... Line 3...
3
 
3
 
4
	public function __construct(Registre $Registre)
4
	public function __construct(Registre $Registre)
5
    {
5
	{
6
    	$Registre->ajouterEspace('Gestion', 'gestion');
6
		$Registre->ajouterEspace('Gestion', 'gestion');
7
    	$Registre->ajouterEspace('ZoneCalendrier', 'zone_calendrier');
7
		$Registre->ajouterEspace('ZoneCalendrier', 'zone_calendrier');
8
    	$Registre->ajouterSquelette('zone_calendrier', 'calendrier_mini');
8
		$Registre->ajouterSquelette('zone_calendrier', 'calendrier_mini');
9
    }
9
	}
10
 
10
 
11
    public function executer()
11
	public function executer()
12
    {
12
	{
13
    	$aso_gestion = array();
13
		$aso_gestion = array();
Line 14... Line 14...
14
    	$this->getRegistre()->setTitre('Gérer son temps');
14
		$this->getRegistre()->setTitre('Gérer son temps');
15
 
15
 
16
    	//+-------------------------------------------------------------------------------------------------+
16
		//+-------------------------------------------------------------------------------------------------+
17
		// GESTION DES CALENDRIERS
17
		// GESTION DES CALENDRIERS
18
		//+-------------------------------------------------------------------------------------------------+
18
		//+-------------------------------------------------------------------------------------------------+
19
		// Initialisation des variables pour le calendrier
19
		// Initialisation des variables pour le calendrier
Line 122... Line 122...
122
		}
122
		}
Line 123... Line 123...
123
 
123
 
124
		//+-------------------------------------------------------------------------------------------------+
124
		//+-------------------------------------------------------------------------------------------------+
125
		// GESTION DES PROJETS
125
		// GESTION DES PROJETS
126
		//+-------------------------------------------------------------------------------------------------+
126
		//+-------------------------------------------------------------------------------------------------+
127
    	// Récupération des projets sur lesquels l'utilisateur travaille
127
		// Récupération des projets sur lesquels l'utilisateur travaille
128
		$UtilsateurAProjet = new UtilisateurAProjet();
128
		$UtilsateurAProjet = new UtilisateurAProjet();
129
    	$tab_uap = $UtilsateurAProjet->consulter(UtilisateurAProjet::GUAP_UTILISATEUR, $GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
129
		$tab_uap = $UtilsateurAProjet->consulter(UtilisateurAProjet::GUAP_UTILISATEUR, $GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
130
		// Si nous avons des données...
130
		// Si nous avons des données...
131
		$aso_gestion['bool_projets'] = false;
131
		$aso_gestion['bool_projets'] = false;
132
    	if ($tab_uap && count($tab_uap) >= 1) {
132
		if ($tab_uap && count($tab_uap) >= 1) {
133
	    	$aso_gestion['bool_projets'] = true;
133
			$aso_gestion['bool_projets'] = true;
134
	    	$tab_projet_id = array();
134
			$tab_projet_id = array();
135
	    	foreach ($tab_uap as $uap) {
135
			foreach ($tab_uap as $uap) {
136
	    		$tab_projet_id[] = $uap->getIdProjet();
136
				$tab_projet_id[] = $uap->getIdProjet();
Line 137... Line 137...
137
	    	}
137
			}
138
 
138
 
139
	    	// Récupération du temps de travail pour un utilisateur à une date donnée
139
			// Récupération du temps de travail pour un utilisateur à une date donnée
140
	    	$TravailProjet = new TravailProjet();
140
			$TravailProjet = new TravailProjet();
141
			$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
141
			$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
Line 142... Line 142...
142
			$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
142
			$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
143
			$tab_tp = $TravailProjet->consulter($cmd, $param);
143
			$tab_tp = $TravailProjet->consulter($cmd, $param);
144
 
144
 
145
			// Récupération des infos sur les projets de l'utilisateur
145
			// Récupération des infos sur les projets de l'utilisateur
146
	    	$aso_gestion['totaux'] = $aso_tps_w_vide;
146
			$aso_gestion['totaux'] = $aso_tps_w_vide;
147
	    	$Projet = new Projet();
147
			$Projet = new Projet();
148
	    	$tab_p = $Projet->consulter(Projet::GP_ID_LIST, array(implode(',', $tab_projet_id)));
148
			$tab_p = $Projet->consulter(Projet::GP_ID_LIST, array(implode(',', $tab_projet_id)));
149
			foreach ($tab_p as $Projet) {
149
			foreach ($tab_p as $Projet) {
150
	
150
 
151
				// Récupération de la catégorie du projet
151
				// Récupération de la catégorie du projet
152
				$ProjetCategorie = new ProjetCategorie();
152
				$ProjetCategorie = new ProjetCategorie();
153
				$Categorie = current($ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $Projet->getCeCategorie()));
153
				$Categorie = current($ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $Projet->getCeCategorie()));
154
	
154
 
155
				// Nous vérifions le temps de travail pour ce projet pour la semaine courrante
155
				// Nous vérifions le temps de travail pour ce projet pour la semaine courrante
156
				$aso_tps_w = $aso_tps_w_vide;
156
				$aso_tps_w = $aso_tps_w_vide;
Line 165... Line 165...
165
							$aso_gestion['categorie_totaux'][$Categorie->getLibelle()][$num] += $TP->getDuree();
165
							$aso_gestion['categorie_totaux'][$Categorie->getLibelle()][$num] += $TP->getDuree();
166
							$aso_gestion['totaux'][$num] += $TP->getDuree();
166
							$aso_gestion['totaux'][$num] += $TP->getDuree();
167
						}
167
						}
168
					}
168
					}
169
				}
169
				}
170
	
170
 
171
				// Stockage des infos nécessaire pour l'affichage
171
				// Stockage des infos nécessaire pour l'affichage
172
				$aso_gestion['preferences'][$Categorie->getLibelle()][] = array(
172
				$aso_gestion['preferences'][$Categorie->getLibelle()][] = array(
173
					'id' => $Projet->getIdProjet(),
173
					'id' => $Projet->getIdProjet(),
174
					'valeur' => $Projet->getIdProjet(),
174
					'valeur' => $Projet->getIdProjet(),
175
					'nom' => $Projet->getNom(),
175
					'nom' => $Projet->getNom(),
176
					'desc' => $Projet->getDescription(),
176
					'desc' => $Projet->getDescription(),
177
					'date' => $aso_tps_w);
177
					'date' => $aso_tps_w);
178
	
178
 
179
	
179
 
180
			}
180
			}
181
		}
181
		}
182
		// Trie par odre alphabétique des catégories...
182
		// Trie par odre alphabétique des catégories...
-
 
183
		if (isset($aso_gestion['preferences']) && is_array($aso_gestion['preferences'])) {
183
		ksort($aso_gestion['preferences']);
184
			ksort($aso_gestion['preferences']);
-
 
185
		}
184
		
186
 
185
		//+-------------------------------------------------------------------------------------------------+
187
		//+-------------------------------------------------------------------------------------------------+
186
		// GESTION DES ABSENCES
188
		// GESTION DES ABSENCES
187
		//+-------------------------------------------------------------------------------------------------+
189
		//+-------------------------------------------------------------------------------------------------+
188
		// Récupération des motifs d'absence
190
		// Récupération des motifs d'absence
189
		$AbsenceMotif = new AbsenceMotif();
191
		$AbsenceMotif = new AbsenceMotif();
190
		$cmd = AbsenceMotif::GAM_TOUS;
192
		$cmd = AbsenceMotif::GAM_TOUS;
191
		$tab_am = $AbsenceMotif->consulter($cmd);
193
		$tab_am = $AbsenceMotif->consulter($cmd);
Line 192... Line 194...
192
 
194
 
193
		// Récupération des absences pour un utilisateur à une date donnée
195
		// Récupération des absences pour un utilisateur à une date donnée
194
    	$Absence = new Absence();
196
		$Absence = new Absence();
195
		$cmd = Absence::GA_ID_UTILISATEUR_DATE_DEB_FIN;
197
		$cmd = Absence::GA_ID_UTILISATEUR_DATE_DEB_FIN;
196
		$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
198
		$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
197
		$tab_a = $Absence->consulter($cmd, $param);
199
		$tab_a = $Absence->consulter($cmd, $param);
Line 215... Line 217...
215
						}
217
						}
216
					}
218
					}
217
				}
219
				}
218
			}
220
			}
219
		}
221
		}
220
		
222
 
221
		// Création de l'url de réponse du formulaire
223
		// Création de l'url de réponse du formulaire
222
		$aso_gestion['url_gestion_valider'] = 'index.php?action='.GTT_ACTION_GESTION_VALIDER.$url_sc_param_date;
224
		$aso_gestion['url_gestion_valider'] = 'index.php?action='.GTT_ACTION_GESTION_VALIDER.$url_sc_param_date;
Line 223... Line 225...
223
 
225
 
224
    	//echo '<pre>ici '.print_r($aso_gestion['ab'], true).'la</pre>';
226
		//echo '<pre>ici '.print_r($aso_gestion['ab'], true).'la</pre>';
225
		$this->getRegistre()->ajouterDonnee('gestion', $aso_gestion);
227
		$this->getRegistre()->ajouterDonnee('gestion', $aso_gestion);
226
		$this->getRegistre()->ajouterDonnee('zone_calendrier', $aso_gestion);
228
		$this->getRegistre()->ajouterDonnee('zone_calendrier', $aso_gestion);
Line 227... Line 229...
227
    }
229
	}
228
 
230
 
Line 229... Line 231...
229
    public function verifierValider()
231
	public function verifierValider()
Line 230... Line 232...
230
    {
232
	{
231
 
233
 
232
    }
234
	}
233
 
235
 
Line 234... Line 236...
234
	public function executerValider()
236
	public function executerValider()
235
    {
237
	{
236
		// Création du Calendrier
238
		// Création du Calendrier
237
		$Calendrier = new Calendrier($_GET['jour'], null, $_GET['mois'], $_GET['annee']);
239
		$Calendrier = new Calendrier($_GET['jour'], null, $_GET['mois'], $_GET['annee']);
238
 
240
 
239
    	// Récupération des info sur la semaine courrante
241
		// Récupération des info sur la semaine courrante
240
		$Week = new Calendar_Week($_GET['annee'], $_GET['mois'], $_GET['jour']);
242
		$Week = new Calendar_Week($_GET['annee'], $_GET['mois'], $_GET['jour']);
241
		$Week->build();
243
		$Week->build();
242
		$aso_jours = array();
244
		$aso_jours = array();
243
		$aso_semaine = array();
245
		$aso_semaine = array();
244
		$jours_w_semaine = array();
246
		$jours_w_semaine = array();
245
		foreach($Week->fetchAll() as $num => $j) {
247
		foreach($Week->fetchAll() as $num => $j) {
246
			$aso_semaine[$num]['mysql'] = $j->thisYear().'-'.sprintf("%02s", $j->thisMonth()).'-'.sprintf("%02s", $j->thisDay());
248
			$aso_semaine[$num]['mysql'] = $j->thisYear().'-'.sprintf("%02s", $j->thisMonth()).'-'.sprintf("%02s", $j->thisDay());
247
			$aso_jours[$aso_semaine[$num]['mysql']] = $num;
249
			$aso_jours[$aso_semaine[$num]['mysql']] = $num;
248
			
250
 
249
			// Initialisation de la variable pour la gestion des heures sup
251
			// Initialisation de la variable pour la gestion des heures sup
250
			$methode = 'getTdt'.$Calendrier->getNomJoursLong($num);
252
			$methode = 'getTdt'.$Calendrier->getNomJoursLong($num);
251
			$jours_w_semaine[$num] = array(	'act' => 0, 
253
			$jours_w_semaine[$num] = array(	'act' => 0,
252
											'pre' => 0, 
254
											'pre' => 0,
Line 260... Line 262...
260
				$jours_w_semaine[$num]['tdt'] = 0;
262
				$jours_w_semaine[$num]['tdt'] = 0;
261
			}
263
			}
262
		}
264
		}
Line 263... Line 265...
263
 
265
 
264
		// Récupération du temps de travail pour un utilisateur à une date donnée
266
		// Récupération du temps de travail pour un utilisateur à une date donnée
265
    	$TravailProjet = new TravailProjet();
267
		$TravailProjet = new TravailProjet();
266
		$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
268
		$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
267
		$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_semaine[1]['mysql'], $aso_semaine[7]['mysql']);
269
		$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_semaine[1]['mysql'], $aso_semaine[7]['mysql']);
Line 268... Line 270...
268
		$tab_tp = $TravailProjet->consulter($cmd, $param);
270
		$tab_tp = $TravailProjet->consulter($cmd, $param);
Line 315... Line 317...
315
				}
317
				}
316
			}
318
			}
317
		}
319
		}
Line 318... Line 320...
318
 
320
 
319
		// Récupération des absences pour un utilisateur à une date donnée
321
		// Récupération des absences pour un utilisateur à une date donnée
320
    	$Absence = new Absence();
322
		$Absence = new Absence();
321
		$cmd = Absence::GA_ID_UTILISATEUR_DATE_DEB_FIN;
323
		$cmd = Absence::GA_ID_UTILISATEUR_DATE_DEB_FIN;
322
		$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_semaine[1]['mysql'], $aso_semaine[7]['mysql']);
324
		$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_semaine[1]['mysql'], $aso_semaine[7]['mysql']);
Line 323... Line 325...
323
		$tab_a = $Absence->consulter($cmd, $param);
325
		$tab_a = $Absence->consulter($cmd, $param);
Line 395... Line 397...
395
		foreach ($jours_w_semaine as $c => $j) {
397
		foreach ($jours_w_semaine as $c => $j) {
396
			// Modifications existantes pour le jour courant
398
			// Modifications existantes pour le jour courant
397
			if (($j['pre'] != 0 || $j['act'] != 0) || ($j['act_a'] != 0 || $j['pre_a'] != 0)) {
399
			if (($j['pre'] != 0 || $j['act'] != 0) || ($j['act_a'] != 0 || $j['pre_a'] != 0)) {
398
				$heure_sup_pre = ($j['tdt'] - ($j['pre_a'] + $j['pre'])) + $j['pre_a'];
400
				$heure_sup_pre = ($j['tdt'] - ($j['pre_a'] + $j['pre'])) + $j['pre_a'];
399
				$heure_sup_act = ($j['tdt'] - ($j['act_a'] + $j['act'])) + $j['act_a'];
401
				$heure_sup_act = ($j['tdt'] - ($j['act_a'] + $j['act'])) + $j['act_a'];
400
				$heure_sup_dif = $heure_sup_act - $heure_sup_pre ;  
402
				$heure_sup_dif = $heure_sup_act - $heure_sup_pre ;
401
				if ($j['mod'] == false) {// Première fois que l'on modifie le jour
403
				if ($j['mod'] == false) {// Première fois que l'on modifie le jour
402
					if ($heure_sup_act > 0) {
404
					if ($heure_sup_act > 0) {
403
						$Utilisateur->diminuerQuotaHeuresSup($heure_sup_act);
405
						$Utilisateur->diminuerQuotaHeuresSup($heure_sup_act);
404
					}
406
					}
405
					if ($heure_sup_act < 0) {
407
					if ($heure_sup_act < 0) {
406
						$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
408
						$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
407
					}					
409
					}
408
				} else  {// Les heures sup ont déjà été comptabilisées
410
				} else  {// Les heures sup ont déjà été comptabilisées
409
					if ($heure_sup_dif > 0) {
411
					if ($heure_sup_dif > 0) {
410
						$Utilisateur->diminuerQuotaHeuresSup($heure_sup_dif);
412
						$Utilisateur->diminuerQuotaHeuresSup($heure_sup_dif);
411
					}
413
					}
412
					if ($heure_sup_dif < 0) {
414
					if ($heure_sup_dif < 0) {
413
						$Utilisateur->augmenterQuotaHeuresSup($heure_sup_dif);
415
						$Utilisateur->augmenterQuotaHeuresSup($heure_sup_dif);
414
					}					
416
					}
415
				}
417
				}
416
			}
418
			}
417
		}
419
		}
418
		$Utilisateur->modifier();
420
		$Utilisateur->modifier();
Line 419... Line 421...
419
 
421
 
420
		// Mise à jour de la vue Identité pour les congés payés et RTT
422
		// Mise à jour de la vue Identité pour les congés payés et RTT
421
		$GttCtrlActionIdentification = new GttCtrlActionIdentification($this->getRegistre());
423
		$GttCtrlActionIdentification = new GttCtrlActionIdentification($this->getRegistre());
422
		$GttCtrlActionIdentification->setSuivant('__defaut__');
424
		$GttCtrlActionIdentification->setSuivant('__defaut__');
Line 423... Line 425...
423
		$this->setSuivant($GttCtrlActionIdentification);
425
		$this->setSuivant($GttCtrlActionIdentification);
424
 
426
 
425
    	// Action suivante
427
		// Action suivante
426
    	$this->setSuivant('__defaut__');
428
		$this->setSuivant('__defaut__');
427
    }
429
	}
428
}
430
}