Line 117... |
Line 117... |
117 |
$aso_gestion['sj_'.$num]['mois'] = $Calendrier->getNomMois($j->thisMonth());
|
117 |
$aso_gestion['sj_'.$num]['mois'] = $Calendrier->getNomMois($j->thisMonth());
|
118 |
$aso_gestion['sj_'.$num]['annee'] = $j->thisYear();
|
118 |
$aso_gestion['sj_'.$num]['annee'] = $j->thisYear();
|
119 |
$aso_gestion['sj_'.$num]['mysql'] = $aso_gestion['sj_'.$num]['annee'].'-'.sprintf("%02s", $j->thisMonth()).'-'.sprintf("%02s", $aso_gestion['sj_'.$num]['jour']);
|
119 |
$aso_gestion['sj_'.$num]['mysql'] = $aso_gestion['sj_'.$num]['annee'].'-'.sprintf("%02s", $j->thisMonth()).'-'.sprintf("%02s", $aso_gestion['sj_'.$num]['jour']);
|
120 |
$aso_jours[$aso_gestion['sj_'.$num]['mysql']] = $num;
|
120 |
$aso_jours[$aso_gestion['sj_'.$num]['mysql']] = $num;
|
121 |
$aso_tps_w_vide[$num] = '';
|
121 |
$aso_tps_w_vide[$num] = '';
|
- |
|
122 |
$aso_abscence_initial[$num] = array(
|
- |
|
123 |
'duree' => '',
|
- |
|
124 |
'duree_defaut' => $GLOBALS['_GTT_']['Utilisateur']->getTdtParNumJour($num));
|
122 |
}
|
125 |
}
|
Line 123... |
Line 126... |
123 |
|
126 |
|
124 |
//+-------------------------------------------------------------------------------------------------+
|
127 |
//+-------------------------------------------------------------------------------------------------+
|
125 |
// GESTION DES PROJETS
|
128 |
// GESTION DES PROJETS
|
Line 199... |
Line 202... |
199 |
|
202 |
|
200 |
$aso_gestion['ab_total'] = $aso_tps_w_vide;
|
203 |
$aso_gestion['ab_total'] = $aso_tps_w_vide;
|
201 |
if ($tab_am) {
|
204 |
if ($tab_am) {
|
202 |
foreach ($tab_am as $AM) {
|
205 |
foreach ($tab_am as $AM) {
|
203 |
$aso_gestion['ab_libelle'][$AM->getIdAbsenceMotif()] = $AM->getLibelle();
|
206 |
$aso_gestion['ab_libelle'][$AM->getIdAbsenceMotif()] = $AM->getLibelle();
|
204 |
$aso_gestion['ab'][$AM->getIdAbsenceMotif()] = $aso_tps_w_vide;
|
207 |
$aso_gestion['ab'][$AM->getIdAbsenceMotif()] = $aso_abscence_initial;
|
205 |
if ($tab_a) {
|
208 |
if ($tab_a) {
|
206 |
foreach ($tab_a as $A) {
|
209 |
foreach ($tab_a as $A) {
|
207 |
if ($A->getIdAbsenceMotif() == $AM->getIdAbsenceMotif()) {
|
210 |
if ($A->getIdAbsenceMotif() == $AM->getIdAbsenceMotif()) {
|
208 |
$num = $aso_jours[$A->getIdDateAbsence()];
|
211 |
$num = $aso_jours[$A->getIdDateAbsence()];
|
209 |
if ($A->getDuree() < 0) {
|
212 |
if ($A->getDuree() < 0) {
|
210 |
$A->setDuree(0);
|
213 |
$A->setDuree(0);
|
211 |
}
|
214 |
}
|
212 |
$aso_gestion['ab'][$AM->getIdAbsenceMotif()][$num] = $A->getDuree();
|
215 |
$aso_gestion['ab'][$AM->getIdAbsenceMotif()][$num]['duree'] = $A->getDuree();
|
213 |
$aso_gestion['ab_total'][$num] += $A->getDuree();
|
216 |
$aso_gestion['ab_total'][$num] += $A->getDuree();
|
214 |
$aso_gestion['totaux'][$num] += $A->getDuree();
|
217 |
$aso_gestion['totaux'][$num] += $A->getDuree();
|
215 |
}
|
218 |
}
|
216 |
}
|
219 |
}
|
Line 289... |
Line 292... |
289 |
$bool_ajouter = false;
|
292 |
$bool_ajouter = false;
|
290 |
$jours_w_semaine[$jour_num]['pre'] += $TP->getDuree();
|
293 |
$jours_w_semaine[$jour_num]['pre'] += $TP->getDuree();
|
291 |
$jours_w_semaine[$jour_num]['mod'] = true;
|
294 |
$jours_w_semaine[$jour_num]['mod'] = true;
|
292 |
if ($TP->getDuree() != $nbr_heure) {
|
295 |
if ($TP->getDuree() != $nbr_heure) {
|
293 |
if (empty($nbr_heure)) {
|
296 |
if (empty($nbr_heure)) {
|
294 |
// Une fois des données saisie dans un jour, on ne supprime pas la ligne mais
|
297 |
// Si un temps de travail est mis à 0, on le supprime.
|
295 |
// on met la durée 0
|
298 |
// Les heures sup sont réinitialisés ci-dessous.
|
296 |
$TP->setDuree(0);
|
- |
|
297 |
$TP->modifier();
|
299 |
$TP->supprimer();
|
298 |
} else {
|
300 |
} else {
|
299 |
$TP->setDuree($nbr_heure);
|
301 |
$TP->setDuree($nbr_heure);
|
300 |
$TP->modifier();
|
302 |
$TP->modifier();
|
301 |
}
|
303 |
}
|
302 |
}
|
304 |
}
|
Line 319... |
Line 321... |
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']);
|
323 |
$tab_a = $Absence->consulter($cmd, $param);
|
325 |
$tab_a = $Absence->consulter($cmd, $param);
|
324 |
|
- |
|
- |
|
326 |
//echo '<pre>'.print_r($tab_a, true).'</pre>';
|
325 |
// Ajout ou Mise à jour des durées d'absences pour congés payés
|
327 |
// Ajout ou Mise à jour des durées d'absences pour congés payés
|
326 |
$cp_h_modif = 0;
|
328 |
$cp_h_modif = 0;
|
327 |
$hs_h_modif = 0;
|
329 |
$hs_h_modif = 0;
|
328 |
if (isset($_POST['ab'])) {
|
330 |
$abscences_a_supprimer = $tab_a;
|
329 |
//echo '<pre>'.print_r($_POST['ab'], true).'</pre>';
|
331 |
//echo '<pre>'.print_r($_POST['ab'], true).'</pre>';
|
- |
|
332 |
if (isset($_POST['ab'])) {
|
- |
|
333 |
echo '<pre>'.print_r($_POST['ab'], true).'</pre>';
|
330 |
foreach($_POST['ab'] as $ab_id => $tab_num_j) {
|
334 |
foreach($_POST['ab'] as $num_j => $tab_ab_id_duree) {
|
- |
|
335 |
if (isset($tab_ab_id_duree)) {
|
- |
|
336 |
list($ab_id, $ab_duree) = explode(':', $tab_ab_id_duree);
|
- |
|
337 |
|
331 |
// Création du motif d'absence pour voir si on doit diminuer les congés payés
|
338 |
// Création du motif d'absence pour voir si on doit diminuer les congés payés
|
332 |
$AbsenceMotif = new AbsenceMotif();
|
339 |
$AbsenceMotif = new AbsenceMotif();
|
333 |
$AbsenceMotif->consulter(AbsenceMotif::GAM_ID, $ab_id, true);
|
340 |
$AbsenceMotif->consulter(AbsenceMotif::GAM_ID, $ab_id, true);
|
Line 334... |
Line -... |
334 |
|
- |
|
335 |
foreach($tab_num_j as $num_j => $ab_duree) {
|
341 |
|
336 |
// Gestion des heures sup en fonction du type d'absence
|
342 |
// Gestion des heures sup en fonction du type d'absence
|
337 |
if (isset($jours_w_semaine[$num_j])) {
|
343 |
if (isset($jours_w_semaine[$num_j])) {
|
338 |
if ($AbsenceMotif->getMarkHsDiminuer()) {
|
344 |
if ($AbsenceMotif->getMarkHsDiminuer()) {
|
339 |
$jours_w_semaine[$num_j]['act_a'] += $ab_duree;
|
345 |
$jours_w_semaine[$num_j]['act_a'] += $ab_duree;
|
340 |
} else {
|
346 |
} else {
|
341 |
$jours_w_semaine[$num_j]['act'] += $ab_duree;
|
347 |
$jours_w_semaine[$num_j]['act'] += $ab_duree;
|
342 |
}
|
348 |
}
|
343 |
}
|
349 |
}
|
344 |
$bool_ajouter = true;
|
350 |
$bool_ajouter = true;
|
345 |
if (!empty($tab_a)) {
|
351 |
if (!empty($tab_a)) {
|
346 |
foreach ($tab_a as $A) {
|
352 |
foreach ($tab_a as $id => $A) {
|
347 |
if ($A->getIdDateAbsence() == $aso_semaine[$num_j]['mysql']) {
|
353 |
if ($A->getIdDateAbsence() == $aso_semaine[$num_j]['mysql']) {
|
- |
|
354 |
if ($A->getIdAbsenceMotif() == $ab_id) {
|
348 |
if ($A->getIdAbsenceMotif() == $ab_id) {
|
355 |
unset($abscences_a_supprimer[$id]);
|
349 |
$bool_ajouter = false;
|
356 |
$bool_ajouter = false;
|
350 |
$jours_w_semaine[$num_j]['mod'] = true;
|
357 |
$jours_w_semaine[$num_j]['mod'] = true;
|
351 |
// Gestion des heures sup en fonction du type d'absence
|
358 |
// Gestion des heures sup en fonction du type d'absence
|
352 |
if ($AbsenceMotif->getMarkHsDiminuer()) {
|
359 |
if ($AbsenceMotif->getMarkHsDiminuer()) {
|
Line 374... |
Line 381... |
374 |
}
|
381 |
}
|
375 |
}
|
382 |
}
|
376 |
}
|
383 |
}
|
377 |
}
|
384 |
}
|
378 |
}
|
385 |
}
|
- |
|
386 |
// Ajout de nouvelle abscences
|
379 |
if ($bool_ajouter && !empty($ab_duree)) {
|
387 |
if ($bool_ajouter && !empty($ab_duree)) {
|
380 |
$A = new Absence();
|
388 |
$A = new Absence();
|
381 |
$A->setDuree((float)$ab_duree);
|
389 |
$A->setDuree((float)$ab_duree);
|
382 |
$A->setIdUtilisateur($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
|
390 |
$A->setIdUtilisateur($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
|
383 |
$A->setIdAbsenceMotif($ab_id);
|
391 |
$A->setIdAbsenceMotif($ab_id);
|
Line 388... |
Line 396... |
388 |
}
|
396 |
}
|
389 |
}
|
397 |
}
|
390 |
}
|
398 |
}
|
391 |
}
|
399 |
}
|
392 |
}
|
400 |
}
|
- |
|
401 |
// Suppression des abscences décochées
|
- |
|
402 |
//echo '<pre>'.print_r($abscences_a_supprimer, true).'</pre>';
|
- |
|
403 |
if (count($abscences_a_supprimer) > 0) {
|
- |
|
404 |
foreach ($abscences_a_supprimer as $A) {
|
- |
|
405 |
$num_jour_ab = $aso_jours[$A->getIdDateAbsence()];
|
- |
|
406 |
$AbsenceMotif = new AbsenceMotif();
|
- |
|
407 |
$AbsenceMotif->consulter(AbsenceMotif::GAM_ID, $A->getIdAbsenceMotif(), true);
|
- |
|
408 |
if ($AbsenceMotif->getMarkHsDiminuer()) {
|
- |
|
409 |
$jours_w_semaine[$num_jour_ab]['pre_a'] = $A->getDuree();
|
- |
|
410 |
$jours_w_semaine[$num_jour_ab]['act_a'] = 0;
|
- |
|
411 |
$jours_w_semaine[$num_jour_ab]['mod'] = true;
|
- |
|
412 |
}
|
- |
|
413 |
$A->supprimer();
|
- |
|
414 |
}
|
- |
|
415 |
}
|
Line 393... |
Line 416... |
393 |
|
416 |
|
- |
|
417 |
// Gestion de la mise à jour des heures sup
|
394 |
// Gestion de la mise à jour des heures sup
|
418 |
//echo '<pre>'.print_r($jours_w_semaine, true).'</pre>';
|
395 |
foreach ($jours_w_semaine as $c => $j) {
|
419 |
foreach ($jours_w_semaine as $c => $j) {
|
396 |
// Modifications existantes pour le jour courant
|
420 |
// Modifications existantes pour le jour courant
|
397 |
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'];
|
- |
|
399 |
$heure_sup_act = ($j['tdt'] - ($j['act_a'] + $j['act'])) + $j['act_a'];
|
- |
|
400 |
$heure_sup_dif = $heure_sup_act - $heure_sup_pre ;
|
421 |
if (($j['pre'] != 0 || $j['act'] != 0) || ($j['act_a'] != 0 || $j['pre_a'] != 0)) {
|
- |
|
422 |
if ($j['mod'] == false) {// Première fois que l'on modifie le jour
|
- |
|
423 |
if ($j['act_a'] == 0 && $j['act'] != 0) {// Journée de travail
|
401 |
if ($j['mod'] == false) {// Première fois que l'on modifie le jour
|
424 |
$heure_sup_act = $j['act'] - $j['tdt'];
|
402 |
if ($heure_sup_act > 0) {
|
425 |
if ($heure_sup_act > 0) {
|
403 |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_act);
|
426 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
|
404 |
}
|
427 |
}
|
- |
|
428 |
if ($heure_sup_act < 0) {
|
- |
|
429 |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_act);
|
- |
|
430 |
}
|
- |
|
431 |
} else {// Journée d'abscence
|
- |
|
432 |
$Utilisateur->diminuerQuotaHeuresSup($j['act_a']);
|
- |
|
433 |
}
|
- |
|
434 |
} else {// Les heures sup ont déjà été comptabilisées, réinitialisation nécessaire
|
- |
|
435 |
// Nous restaurons les heures sup précédement ajoutées ou décomptées
|
- |
|
436 |
if ($j['pre_a'] == 0 && $j['pre'] != 0) {// Journée de travail
|
- |
|
437 |
$heure_sup_pre = $j['pre'] - $j['tdt'];
|
- |
|
438 |
if ($heure_sup_pre > 0) {
|
- |
|
439 |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_pre);
|
- |
|
440 |
} else if ($heure_sup_pre < 0) {
|
- |
|
441 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_pre);
|
- |
|
442 |
}
|
- |
|
443 |
} else {// Journée d'abscence
|
- |
|
444 |
$Utilisateur->augmenterQuotaHeuresSup($j['pre_a']);
|
- |
|
445 |
}
|
- |
|
446 |
// Nous ajoutons ou décomptons les heures sup actuelles
|
- |
|
447 |
if ($j['act_a'] == 0 && $j['act'] != 0) {// Journée de travail
|
- |
|
448 |
$heure_sup_act = $j['act'] - $j['tdt'];
|
405 |
if ($heure_sup_act < 0) {
|
449 |
if ($heure_sup_act > 0) {
|
406 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
|
450 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
|
407 |
}
|
- |
|
408 |
} else {// Les heures sup ont déjà été comptabilisées
|
451 |
}
|
409 |
if ($heure_sup_dif > 0) {
|
452 |
if ($heure_sup_act < 0) {
|
410 |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_dif);
|
453 |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_act);
|
411 |
}
|
454 |
}
|
412 |
if ($heure_sup_dif < 0) {
|
455 |
} else {// Journée d'abscence
|
413 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_dif);
|
456 |
$Utilisateur->diminuerQuotaHeuresSup($j['act_a']);
|
414 |
}
|
457 |
}
|
415 |
}
|
458 |
}
|
416 |
}
|
459 |
}
|
417 |
}
|
460 |
}
|