Subversion Repositories Applications.gtt

Rev

Rev 103 | Rev 110 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 103 Rev 106
Line 201... Line 201...
201
				$aso_gestion['ab'][$AM->getIdAbsenceMotif()] = $aso_tps_w_vide;
201
				$aso_gestion['ab'][$AM->getIdAbsenceMotif()] = $aso_tps_w_vide;
202
				if ($tab_a) {
202
				if ($tab_a) {
203
					foreach ($tab_a as $A) {
203
					foreach ($tab_a as $A) {
204
						if ($A->getIdAbsenceMotif() == $AM->getIdAbsenceMotif()) {
204
						if ($A->getIdAbsenceMotif() == $AM->getIdAbsenceMotif()) {
205
							$num = $aso_jours[$A->getIdDateAbsence()];
205
							$num = $aso_jours[$A->getIdDateAbsence()];
-
 
206
							if ($A->getDuree() < 0) {
-
 
207
								$A->setDuree(0);
-
 
208
							}
206
							$aso_gestion['ab'][$AM->getIdAbsenceMotif()][$num] = $A->getDuree();
209
							$aso_gestion['ab'][$AM->getIdAbsenceMotif()][$num] = $A->getDuree();
207
							$aso_gestion['ab_total'][$num] += $A->getDuree();
210
							$aso_gestion['ab_total'][$num] += $A->getDuree();
208
							$aso_gestion['totaux'][$num] += $A->getDuree();
211
							$aso_gestion['totaux'][$num] += $A->getDuree();
209
						}
212
						}
210
					}
213
					}
Line 258... Line 261...
258
		$Utilisateur->setMarkRecapitulatif(null);
261
		$Utilisateur->setMarkRecapitulatif(null);
Line 259... Line 262...
259
 
262
 
260
		// Initialisation de la variable pour la gestion des heures sup
263
		// Initialisation de la variable pour la gestion des heures sup
261
		$jours_w_semaine = array_flip(explode(',', GTT_SEMAINE_JOUR_W_NBRE));
264
		$jours_w_semaine = array_flip(explode(',', GTT_SEMAINE_JOUR_W_NBRE));
262
		foreach ($jours_w_semaine as $c => $v) {
265
		foreach ($jours_w_semaine as $c => $v) {
263
			$jours_w_semaine[$c] = array('act' => 0, 'pre' => 0);
266
			$jours_w_semaine[$c] = array('act' => 0, 'pre' => 0, 'act_a' => 0, 'pre_a' => 0, 'mod' => false);
Line 264... Line 267...
264
		}
267
		}
265
 
268
 
266
		// Ajout ou Mise à jour des durées de travail
269
		// Ajout ou Mise à jour des durées de travail
Line 275... Line 278...
275
					if (!empty($tab_tp)) {
278
					if (!empty($tab_tp)) {
276
						foreach ($tab_tp as $TP) {
279
						foreach ($tab_tp as $TP) {
277
							if ($TP->getIdDateTravail() == $aso_semaine[$jour_num]['mysql']) {
280
							if ($TP->getIdDateTravail() == $aso_semaine[$jour_num]['mysql']) {
278
								if ($TP->getIdProjet() == $projet_id) {
281
								if ($TP->getIdProjet() == $projet_id) {
279
									$bool_ajouter = false;
282
									$bool_ajouter = false;
280
									if (isset($jours_w_semaine[$jour_num])) {
283
									$jours_w_semaine[$jour_num]['pre'] += $TP->getDuree();
281
										$jours_w_semaine[$jour_num]['pre'] += $TP->getDuree();
284
									$jours_w_semaine[$jour_num]['mod'] = true;
282
									}
-
 
283
									if ($TP->getDuree() != $nbr_heure) {
285
									if ($TP->getDuree() != $nbr_heure) {
284
										if (empty($nbr_heure)) {
286
										if (empty($nbr_heure)) {
-
 
287
											// Une fois des données saisie dans un jour, on ne supprime pas la ligne mais
-
 
288
											// on met la durée 0
-
 
289
											$TP->setDuree(0);
285
											$TP->supprimer();
290
											$TP->modifier();
286
										} else {
291
										} else {
287
											$TP->setDuree($nbr_heure);
292
											$TP->setDuree($nbr_heure);
288
											$TP->modifier();
293
											$TP->modifier();
289
										}
294
										}
290
									}
295
									}
Line 319... Line 324...
319
				// Création du motif d'absence pour voir si on doit diminuer les congés payés
324
				// Création du motif d'absence pour voir si on doit diminuer les congés payés
320
				$AbsenceMotif = new AbsenceMotif();
325
				$AbsenceMotif = new AbsenceMotif();
321
				$AbsenceMotif->consulter(AbsenceMotif::GAM_ID, $ab_id, true);
326
				$AbsenceMotif->consulter(AbsenceMotif::GAM_ID, $ab_id, true);
Line 322... Line 327...
322
 
327
 
-
 
328
				foreach($tab_num_j as $num_j => $ab_duree) {
323
				foreach($tab_num_j as $num_j => $ab_duree) {
329
					// Gestion des heures sup en fonction du type d'absence
-
 
330
					if (isset($jours_w_semaine[$num_j])) {
-
 
331
						if ($AbsenceMotif->getMarkHsDiminuer()) {
-
 
332
							$jours_w_semaine[$num_j]['act_a'] += $ab_duree;
324
					if (isset($jours_w_semaine[$num_j])) {
333
						} else {
-
 
334
							$jours_w_semaine[$num_j]['act'] += $ab_duree;
325
						$jours_w_semaine[$num_j]['act'] += $ab_duree;
335
						}
326
					}
336
					}
327
					$bool_ajouter = true;
337
					$bool_ajouter = true;
328
					if (!empty($tab_a)) {
338
					if (!empty($tab_a)) {
329
						foreach ($tab_a as $A) {
339
						foreach ($tab_a as $A) {
330
							if ($A->getIdDateAbsence() == $aso_semaine[$num_j]['mysql']) {
-
 
331
 
340
							if ($A->getIdDateAbsence() == $aso_semaine[$num_j]['mysql']) {
332
								if ($A->getIdAbsenceMotif() == $ab_id) {
341
								if ($A->getIdAbsenceMotif() == $ab_id) {
-
 
342
									$bool_ajouter = false;
333
									$bool_ajouter = false;
343
									// Gestion des heures sup en fonction du type d'absence
-
 
344
									if ($AbsenceMotif->getMarkHsDiminuer()) {
-
 
345
										$jours_w_semaine[$num_j]['pre_a'] += $A->getDuree();
334
									if (isset($jours_w_semaine[$num_j])) {
346
									} else {
-
 
347
										$jours_w_semaine[$num_j]['pre'] += $A->getDuree();
335
										$jours_w_semaine[$num_j]['pre'] += $A->getDuree();
348
										$jours_w_semaine[$num_j]['mod'] = true;
336
									}
349
									}
337
									if ($A->getDuree() != $ab_duree) {
350
									if ($A->getDuree() != $ab_duree) {
338
										if (empty($ab_duree)) {
-
 
339
											$A->supprimer();
351
										if (empty($ab_duree)) {
340
											if ($AbsenceMotif->getMarkCpDiminuer()) {
352
											if ($AbsenceMotif->getMarkCpDiminuer()) {
341
												$cp_h_modif -= $A->getDuree();
353
												$cp_h_modif -= $A->getDuree();
342
											}
354
											}
343
											if ($AbsenceMotif->getMarkHsDiminuer()) {
355
											if ($AbsenceMotif->getMarkHsDiminuer()) {
344
												$hs_h_modif -= $A->getDuree();
356
												$hs_h_modif -= $A->getDuree();
-
 
357
											}
-
 
358
											// Une fois des données saisie dans un jour, on ne supprime pas la ligne mais
-
 
359
											// on met la durée 0
-
 
360
											$A->setDuree(0);
345
											}
361
											$A->modifier();
346
										} else {
362
										} else {
347
											$ab_duree_tmp = $A->getDuree();
363
											$ab_duree_tmp = $A->getDuree();
348
											$A->setDuree($ab_duree);
364
											$A->setDuree($ab_duree);
349
											$A->modifier();
365
											$A->modifier();
Line 379... Line 395...
379
			// Gestion de la mise à jour des congés payés
395
			// Gestion de la mise à jour des congés payés
380
			if ($cp_h_modif > 0) {
396
			if ($cp_h_modif > 0) {
381
				$Utilisateur->diminuerCongesPayes($cp_h_modif);
397
				$Utilisateur->diminuerCongesPayes($cp_h_modif);
382
			}
398
			}
383
			if ($cp_h_modif < 0) {
399
			if ($cp_h_modif < 0) {
384
				$Utilisateur->augmenterCongesPayes(abs($cp_h_modif));
400
				$Utilisateur->augmenterCongesPayes($cp_h_modif);
385
			}
401
			}
-
 
402
			// Gestion de la mise à jour des heures sup
386
			if ($hs_h_modif > 0) {
403
			if ($hs_h_modif > 0) {
387
				$Utilisateur->diminuerQuotaHeuresSup($hs_h_modif);
404
				$Utilisateur->diminuerQuotaHeuresSup($hs_h_modif);
388
			}
405
			}
389
			if ($hs_h_modif < 0) {
406
			if ($hs_h_modif < 0) {
390
				$Utilisateur->augmenterQuotaHeuresSup(abs($hs_h_modif));
407
				$Utilisateur->augmenterQuotaHeuresSup($hs_h_modif);
391
			}
408
			}
392
			$Utilisateur->modifier();
409
			$Utilisateur->modifier();
393
		}
410
		}
Line 394... Line 411...
394
 
411
 
395
		// Gestion de la mise à jour des heures sup
412
		// Gestion de la mise à jour des heures sup
396
		foreach ($jours_w_semaine as $c => $j) {
413
		foreach ($jours_w_semaine as $c => $j) {
397
			if (($j['pre'] - $j['act']) != 0) {// Modification sur le temps travaillé pour le jour courant
414
			if (($j['pre'] != 0 || $j['act'] != 0) ) {// Modification sur le temps travaillé pour le jour courant
398
				$heure_sup_pre = $j['pre'] - $tps_w_jour;// -7 = 0 - 7
415
				$heure_sup_pre = $j['pre'] - ($tps_w_jour - $j['pre_a']);// -7 = 0 - 7
399
				$heure_sup_act = $j['act'] - $tps_w_jour;// -5 = 2 - 7
416
				$heure_sup_act = $j['act'] - ($tps_w_jour - $j['act_a']);// -5 = 2 - 7
400
				$heure_sup_dif = $heure_sup_act - $heure_sup_pre;// 2 = -5 - -7  
417
				$heure_sup_dif = $heure_sup_act - $heure_sup_pre ;// 2 =  -5 - -7  
401
				if (abs($heure_sup_pre) == $tps_w_jour) {// Premiere modifier du temps travaillé pour le jour courrant
418
				if ($j['mod'] == false) {// Première fois que l'on modifie le jour
402
					if ($heure_sup_act < 0) {
419
					if ($heure_sup_act < 0) {
403
						$Utilisateur->diminuerQuotaHeuresSup(abs($heure_sup_act));
420
						$Utilisateur->diminuerQuotaHeuresSup($heure_sup_act);
404
					}
421
					}
405
					if ($heure_sup_act > 0) {
422
					if ($heure_sup_act > 0) {
406
						$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
423
						$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
407
					}
424
					}					
408
				} else {
425
				} else  {// Les heures sup ont déjà été comptabilisées
409
					if ($heure_sup_dif < 0) {
426
					if ($heure_sup_dif < 0) {
410
						$Utilisateur->diminuerQuotaHeuresSup(abs($heure_sup_dif));
427
						$Utilisateur->diminuerQuotaHeuresSup($heure_sup_dif);
411
					}
428
					}
412
					if ($heure_sup_dif > 0) {
429
					if ($heure_sup_dif > 0) {
413
						$Utilisateur->augmenterQuotaHeuresSup($heure_sup_dif);
430
						$Utilisateur->augmenterQuotaHeuresSup($heure_sup_dif);
414
					}
431
					}					
415
				}
432
				}
416
			}
433
			}
417
		}
-
 
418
		
-
 
419
		trigger_error(print_r($jours_w_semaine, true), E_USER_NOTICE);//$heure_sup_pre.'/'.$heure_sup_act.'-'.$total_jours
434
		}
Line 420... Line 435...
420
		$Utilisateur->modifier();
435
		$Utilisateur->modifier();
421
 
436
 
422
		// Mise à jour de la vue Identité pour les congés payés et RTT
437
		// Mise à jour de la vue Identité pour les congés payés et RTT