Subversion Repositories Applications.gtt

Rev

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

Rev 82 Rev 89
Line 261... Line 261...
261
		// Récupération des infos sur l'utilisateur courrant
261
		// Récupération des infos sur l'utilisateur courrant
262
		$tps_w_jour = $GLOBALS['_GTT_']['Utilisateur']->getTempsDeTravailJour();
262
		$tps_w_jour = $GLOBALS['_GTT_']['Utilisateur']->getTempsDeTravailJour();
263
		// Création d'un utilisateur pour les mises à jour des CP et RTT
263
		// Création d'un utilisateur pour les mises à jour des CP et RTT
264
		$Utilisateur = new Utilisateur();
264
		$Utilisateur = new Utilisateur();
265
		$Utilisateur->setIdUtilisateur($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
265
		$Utilisateur->setIdUtilisateur($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
-
 
266
		$Utilisateur->setQuotaHeuresSupp($GLOBALS['_GTT_']['Utilisateur']->getQuotaHeuresSupp());
266
		$Utilisateur->setCongesPayes(null);
267
		$Utilisateur->setCongesPayes($GLOBALS['_GTT_']['Utilisateur']->getCongesPayes());
267
		$Utilisateur->setTempsDeTravailJour(null);
268
		$Utilisateur->setTempsDeTravailJour(null);
268
		$Utilisateur->setTempsDeTravailMois(null);
269
		$Utilisateur->setTempsDeTravailMois(null);
269
		$Utilisateur->setMarkAdmin(null);
270
		$Utilisateur->setMarkAdmin(null);
270
		$Utilisateur->setMarkRecapitulatif(null);
271
		$Utilisateur->setMarkRecapitulatif(null);
Line -... Line 272...
-
 
272
 
-
 
273
		// Initialisation de la variable pour la gestion des heures sup
-
 
274
		$jours_w_semaine = array_flip(explode(',', GTT_SEMAINE_JOUR_W_NBRE));
-
 
275
		foreach ($jours_w_semaine as $c => $v) {
-
 
276
			$jours_w_semaine[$c] = array('act' => 0, 'pre' => 0);
-
 
277
		}
271
 
278
 
272
		// Ajout ou Mise à jour des durées de travail
279
		// Ajout ou Mise à jour des durées de travail
273
		if (isset($_POST['pr'])) {
-
 
274
			$total_heure_act = 0;
-
 
275
			$total_heure_pre = 0;
-
 
276
			$total_jours = 0;
-
 
277
			$jours_w_semaine = array_flip(explode(',', GTT_SEMAINE_JOUR_W_NBRE));
-
 
278
			foreach ($jours_w_semaine as $c => $v) {
-
 
279
				$jours_w_semaine[$c] = array('act' => 0, 'pre' => 0);
-
 
280
			}
280
		if (isset($_POST['pr'])) {
281
			foreach($_POST['pr'] as $projet_id => $jours) {
281
			foreach($_POST['pr'] as $projet_id => $jours) {
282
				//echo '<pre>'.print_r($jours, true).'</pre>';
282
				//echo '<pre>'.print_r($jours, true).'</pre>';
283
				foreach($jours as $jour_num => $nbr_heure) {
283
				foreach($jours as $jour_num => $nbr_heure) {
284
					if (isset($jours_w_semaine[$jour_num])) {
284
					if (isset($jours_w_semaine[$jour_num])) {
Line 313... Line 313...
313
						$TP->setIdDateTravail((string)$aso_semaine[$jour_num]['mysql']);
313
						$TP->setIdDateTravail((string)$aso_semaine[$jour_num]['mysql']);
314
						$TP->ajouter();
314
						$TP->ajouter();
315
					}
315
					}
316
				}
316
				}
317
			}
317
			}
318
			// Gestion de la mise à jour des heures sup
-
 
319
			$Utilisateur->setQuotaHeuresSupp($GLOBALS['_GTT_']['Utilisateur']->getQuotaHeuresSupp());
-
 
320
			foreach ($jours_w_semaine as $c => $j) {
-
 
321
				if (($j['pre'] - $j['act']) != 0) {// Modification sur le temps travaillé pour le jour courant
-
 
322
					$heure_sup_pre = $j['pre'] - $tps_w_jour;// -7 = 0 - 7
-
 
323
					$heure_sup_act = $j['act'] - $tps_w_jour;// -5 = 2 - 7
-
 
324
					$heure_sup_dif = $heure_sup_act - $heure_sup_pre;// 2 = -5 - -7  
-
 
325
					if (abs($heure_sup_pre) == $tps_w_jour) {// Premiere modifier du temps travaillé pour le jour courrant
-
 
326
						if ($heure_sup_act < 0) {
-
 
327
							$Utilisateur->diminuerQuotaHeuresSup(abs($heure_sup_act));
-
 
328
						}
-
 
329
						if ($heure_sup_act > 0) {
-
 
330
							$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
-
 
331
						}
-
 
332
					} else {
-
 
333
						if ($heure_sup_dif < 0) {
-
 
334
							$Utilisateur->diminuerQuotaHeuresSup(abs($heure_sup_dif));
-
 
335
						}
-
 
336
						if ($heure_sup_dif > 0) {
-
 
337
							$Utilisateur->augmenterQuotaHeuresSup($heure_sup_dif);
-
 
338
						}
-
 
339
					}
-
 
340
				}
-
 
341
			}
-
 
342
			
-
 
343
			
-
 
344
			trigger_error(print_r($jours_w_semaine, true), E_USER_NOTICE);//$heure_sup_pre.'/'.$heure_sup_act.'-'.$total_jours
-
 
345
			$Utilisateur->modifier();
-
 
346
		}
318
		}
Line 347... Line 319...
347
 
319
 
348
		// Récupération des absences pour un utilisateur à une date donnée
320
		// Récupération des absences pour un utilisateur à une date donnée
349
    	$Absence = new Absence();
321
    	$Absence = new Absence();
Line 354... Line 326...
354
			$tab_a = array($tab_a);
326
			$tab_a = array($tab_a);
355
		}
327
		}
Line 356... Line 328...
356
 
328
 
357
		// Ajout ou Mise à jour des durées d'absences pour congés payés
329
		// Ajout ou Mise à jour des durées d'absences pour congés payés
-
 
330
		$cp_h_modif = 0;
358
		$cp_h_modif = 0;
331
		$hs_h_modif = 0;
359
		if (isset($_POST['ab'])) {
332
		if (isset($_POST['ab'])) {
360
			//echo '<pre>'.print_r($_POST['ab'], true).'</pre>';
333
			//echo '<pre>'.print_r($_POST['ab'], true).'</pre>';
-
 
334
			foreach($_POST['ab'] as $ab_id => $tab_num_j) {
-
 
335
				// Création du motif d'absence pour voir si on doit diminuer les congés payés
-
 
336
				$AbsenceMotif = new AbsenceMotif();
-
 
337
				$AbsenceMotif->consulter(AbsenceMotif::GAM_ID, $ab_id, true);
361
			foreach($_POST['ab'] as $ab_id => $tab_num_j) {
338
 
-
 
339
				foreach($tab_num_j as $num_j => $ab_duree) {
-
 
340
					if (isset($jours_w_semaine[$num_j])) {
-
 
341
						$jours_w_semaine[$num_j]['act'] += $ab_duree;
362
				foreach($tab_num_j as $num_j => $ab_duree) {
342
					}
363
					$bool_ajouter = true;
343
					$bool_ajouter = true;
364
					if (!empty($tab_a)) {
344
					if (!empty($tab_a)) {
365
						foreach ($tab_a as $A) {
345
						foreach ($tab_a as $A) {
Line 366... Line 346...
366
							if ($A->getIdDateAbsence() == $aso_semaine[$num_j]['mysql']) {
346
							if ($A->getIdDateAbsence() == $aso_semaine[$num_j]['mysql']) {
367
 
347
 
-
 
348
								if ($A->getIdAbsenceMotif() == $ab_id) {
-
 
349
									$bool_ajouter = false;
368
								if ($A->getIdAbsenceMotif() == $ab_id) {
350
									if (isset($jours_w_semaine[$num_j])) {
369
									$bool_ajouter = false;
351
										$jours_w_semaine[$num_j]['pre'] += $A->getDuree();
370
 
352
									}
371
									if ($A->getDuree() != $ab_duree) {
353
									if ($A->getDuree() != $ab_duree) {
372
										if (empty($ab_duree)) {
354
										if (empty($ab_duree)) {
373
											$A->supprimer();
355
											$A->supprimer();
374
											if ($ab_id == GTT_ABSCENCE_ID_CP) {
356
											if ($AbsenceMotif->getMarkCpDiminuer()) {
-
 
357
												$cp_h_modif -= $A->getDuree();
-
 
358
											}
-
 
359
											if ($AbsenceMotif->getMarkHsDiminuer()) {
375
												$cp_h_modif -= $A->getDuree();
360
												$hs_h_modif -= $A->getDuree();
376
											}
361
											}
377
										} else {
362
										} else {
378
											$ab_duree_tmp = $A->getDuree();
363
											$ab_duree_tmp = $A->getDuree();
379
											$A->setDuree($ab_duree);
364
											$A->setDuree($ab_duree);
380
											$A->modifier();
-
 
381
											if ($ab_id == GTT_ABSCENCE_ID_CP) {
365
											$A->modifier();
382
												trigger_error('ici'.($ab_duree_tmp - $ab_duree), E_USER_NOTICE);
366
											if ($AbsenceMotif->getMarkCpDiminuer()) {
-
 
367
												$cp_h_modif -= $ab_duree_tmp - $ab_duree;
-
 
368
											}
-
 
369
											if ($AbsenceMotif->getMarkHsDiminuer()) {
383
												$cp_h_modif -= $ab_duree_tmp - $ab_duree;
370
												$hs_h_modif -= $ab_duree_tmp - $ab_duree;
384
											}
371
											}
385
										}
372
										}
386
									}
373
									}
387
								}
374
								}
Line 393... Line 380...
393
						$A->setDuree((float)$ab_duree);
380
						$A->setDuree((float)$ab_duree);
394
						$A->setIdUtilisateur($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
381
						$A->setIdUtilisateur($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
395
						$A->setIdAbsenceMotif($ab_id);
382
						$A->setIdAbsenceMotif($ab_id);
396
						$A->setIdDateAbsence((string)$aso_semaine[$num_j]['mysql']);
383
						$A->setIdDateAbsence((string)$aso_semaine[$num_j]['mysql']);
397
						$A->ajouter();
384
						$A->ajouter();
398
						if ($ab_id == GTT_ABSCENCE_ID_CP) {
385
						if ($AbsenceMotif->getMarkCpDiminuer()) {
399
							$cp_h_modif += $ab_duree;
386
							$cp_h_modif += $ab_duree;
400
						}
387
						}
-
 
388
						if ($AbsenceMotif->getMarkHsDiminuer()) {
-
 
389
							$hs_h_modif += $ab_duree;
-
 
390
						}
401
					}
391
					}
402
				}
392
				}
403
			}
393
			}
-
 
394
			
404
			// Gestion de la mise à jour des heures sup
395
			// Gestion de la mise à jour des congés payés
405
			$Utilisateur->setQuotaHeuresSupp(null);
-
 
406
			$Utilisateur->setCongesPayes($GLOBALS['_GTT_']['Utilisateur']->getCongesPayes());
-
 
407
			trigger_error($cp_h_modif, E_USER_NOTICE);
-
 
408
			if ($cp_h_modif > 0) {
396
			if ($cp_h_modif > 0) {
409
				$Utilisateur->diminuerCongesPayes($cp_h_modif);
397
				$Utilisateur->diminuerCongesPayes($cp_h_modif);
410
			}
398
			}
411
			if ($cp_h_modif < 0) {
399
			if ($cp_h_modif < 0) {
412
				$Utilisateur->augmenterCongesPayes(abs($cp_h_modif));
400
				$Utilisateur->augmenterCongesPayes(abs($cp_h_modif));
413
			}
401
			}
-
 
402
			if ($hs_h_modif > 0) {
-
 
403
				$Utilisateur->diminuerQuotaHeuresSup($hs_h_modif);
-
 
404
			}
-
 
405
			if ($hs_h_modif < 0) {
-
 
406
				$Utilisateur->augmenterQuotaHeuresSup(abs($hs_h_modif));
414
			
407
			}
415
			$Utilisateur->modifier();
408
			$Utilisateur->modifier();
416
		}
409
		}
Line -... Line 410...
-
 
410
 
-
 
411
		// Gestion de la mise à jour des heures sup
-
 
412
		foreach ($jours_w_semaine as $c => $j) {
-
 
413
			if (($j['pre'] - $j['act']) != 0) {// Modification sur le temps travaillé pour le jour courant
-
 
414
				$heure_sup_pre = $j['pre'] - $tps_w_jour;// -7 = 0 - 7
-
 
415
				$heure_sup_act = $j['act'] - $tps_w_jour;// -5 = 2 - 7
-
 
416
				$heure_sup_dif = $heure_sup_act - $heure_sup_pre;// 2 = -5 - -7  
-
 
417
				if (abs($heure_sup_pre) == $tps_w_jour) {// Premiere modifier du temps travaillé pour le jour courrant
-
 
418
					if ($heure_sup_act < 0) {
-
 
419
						$Utilisateur->diminuerQuotaHeuresSup(abs($heure_sup_act));
-
 
420
					}
-
 
421
					if ($heure_sup_act > 0) {
-
 
422
						$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
-
 
423
					}
-
 
424
				} else {
-
 
425
					if ($heure_sup_dif < 0) {
-
 
426
						$Utilisateur->diminuerQuotaHeuresSup(abs($heure_sup_dif));
-
 
427
					}
-
 
428
					if ($heure_sup_dif > 0) {
-
 
429
						$Utilisateur->augmenterQuotaHeuresSup($heure_sup_dif);
-
 
430
					}
-
 
431
				}
-
 
432
			}
-
 
433
		}
-
 
434
		
-
 
435
		trigger_error(print_r($jours_w_semaine, true), E_USER_NOTICE);//$heure_sup_pre.'/'.$heure_sup_act.'-'.$total_jours
-
 
436
		$Utilisateur->modifier();
417
 
437
 
418
		// Mise à jour de la vue Identité pour les congés payés et RTT
438
		// Mise à jour de la vue Identité pour les congés payés et RTT
419
		$GttCtrlActionIdentification = new GttCtrlActionIdentification($this->getRegistre());
439
		$GttCtrlActionIdentification = new GttCtrlActionIdentification($this->getRegistre());
420
		$GttCtrlActionIdentification->setSuivant('__defaut__');
440
		$GttCtrlActionIdentification->setSuivant('__defaut__');