203,6 → 203,9 |
foreach ($tab_a as $A) { |
if ($A->getIdAbsenceMotif() == $AM->getIdAbsenceMotif()) { |
$num = $aso_jours[$A->getIdDateAbsence()]; |
if ($A->getDuree() < 0) { |
$A->setDuree(0); |
} |
$aso_gestion['ab'][$AM->getIdAbsenceMotif()][$num] = $A->getDuree(); |
$aso_gestion['ab_total'][$num] += $A->getDuree(); |
$aso_gestion['totaux'][$num] += $A->getDuree(); |
260,7 → 263,7 |
// Initialisation de la variable pour la gestion des heures sup |
$jours_w_semaine = array_flip(explode(',', GTT_SEMAINE_JOUR_W_NBRE)); |
foreach ($jours_w_semaine as $c => $v) { |
$jours_w_semaine[$c] = array('act' => 0, 'pre' => 0); |
$jours_w_semaine[$c] = array('act' => 0, 'pre' => 0, 'act_a' => 0, 'pre_a' => 0, 'mod' => false); |
} |
|
// Ajout ou Mise à jour des durées de travail |
277,12 → 280,14 |
if ($TP->getIdDateTravail() == $aso_semaine[$jour_num]['mysql']) { |
if ($TP->getIdProjet() == $projet_id) { |
$bool_ajouter = false; |
if (isset($jours_w_semaine[$jour_num])) { |
$jours_w_semaine[$jour_num]['pre'] += $TP->getDuree(); |
} |
$jours_w_semaine[$jour_num]['pre'] += $TP->getDuree(); |
$jours_w_semaine[$jour_num]['mod'] = true; |
if ($TP->getDuree() != $nbr_heure) { |
if (empty($nbr_heure)) { |
$TP->supprimer(); |
// Une fois des données saisie dans un jour, on ne supprime pas la ligne mais |
// on met la durée 0 |
$TP->setDuree(0); |
$TP->modifier(); |
} else { |
$TP->setDuree($nbr_heure); |
$TP->modifier(); |
321,22 → 326,29 |
$AbsenceMotif->consulter(AbsenceMotif::GAM_ID, $ab_id, true); |
|
foreach($tab_num_j as $num_j => $ab_duree) { |
// Gestion des heures sup en fonction du type d'absence |
if (isset($jours_w_semaine[$num_j])) { |
$jours_w_semaine[$num_j]['act'] += $ab_duree; |
if ($AbsenceMotif->getMarkHsDiminuer()) { |
$jours_w_semaine[$num_j]['act_a'] += $ab_duree; |
} else { |
$jours_w_semaine[$num_j]['act'] += $ab_duree; |
} |
} |
$bool_ajouter = true; |
if (!empty($tab_a)) { |
foreach ($tab_a as $A) { |
if ($A->getIdDateAbsence() == $aso_semaine[$num_j]['mysql']) { |
|
if ($A->getIdAbsenceMotif() == $ab_id) { |
$bool_ajouter = false; |
if (isset($jours_w_semaine[$num_j])) { |
// Gestion des heures sup en fonction du type d'absence |
if ($AbsenceMotif->getMarkHsDiminuer()) { |
$jours_w_semaine[$num_j]['pre_a'] += $A->getDuree(); |
} else { |
$jours_w_semaine[$num_j]['pre'] += $A->getDuree(); |
$jours_w_semaine[$num_j]['mod'] = true; |
} |
if ($A->getDuree() != $ab_duree) { |
if (empty($ab_duree)) { |
$A->supprimer(); |
if ($AbsenceMotif->getMarkCpDiminuer()) { |
$cp_h_modif -= $A->getDuree(); |
} |
343,6 → 355,10 |
if ($AbsenceMotif->getMarkHsDiminuer()) { |
$hs_h_modif -= $A->getDuree(); |
} |
// Une fois des données saisie dans un jour, on ne supprime pas la ligne mais |
// on met la durée 0 |
$A->setDuree(0); |
$A->modifier(); |
} else { |
$ab_duree_tmp = $A->getDuree(); |
$A->setDuree($ab_duree); |
381,13 → 397,14 |
$Utilisateur->diminuerCongesPayes($cp_h_modif); |
} |
if ($cp_h_modif < 0) { |
$Utilisateur->augmenterCongesPayes(abs($cp_h_modif)); |
$Utilisateur->augmenterCongesPayes($cp_h_modif); |
} |
// Gestion de la mise à jour des heures sup |
if ($hs_h_modif > 0) { |
$Utilisateur->diminuerQuotaHeuresSup($hs_h_modif); |
} |
if ($hs_h_modif < 0) { |
$Utilisateur->augmenterQuotaHeuresSup(abs($hs_h_modif)); |
$Utilisateur->augmenterQuotaHeuresSup($hs_h_modif); |
} |
$Utilisateur->modifier(); |
} |
394,29 → 411,27 |
|
// Gestion de la mise à jour des heures sup |
foreach ($jours_w_semaine as $c => $j) { |
if (($j['pre'] - $j['act']) != 0) {// Modification sur le temps travaillé pour le jour courant |
$heure_sup_pre = $j['pre'] - $tps_w_jour;// -7 = 0 - 7 |
$heure_sup_act = $j['act'] - $tps_w_jour;// -5 = 2 - 7 |
$heure_sup_dif = $heure_sup_act - $heure_sup_pre;// 2 = -5 - -7 |
if (abs($heure_sup_pre) == $tps_w_jour) {// Premiere modifier du temps travaillé pour le jour courrant |
if (($j['pre'] != 0 || $j['act'] != 0) ) {// Modification sur le temps travaillé pour le jour courant |
$heure_sup_pre = $j['pre'] - ($tps_w_jour - $j['pre_a']);// -7 = 0 - 7 |
$heure_sup_act = $j['act'] - ($tps_w_jour - $j['act_a']);// -5 = 2 - 7 |
$heure_sup_dif = $heure_sup_act - $heure_sup_pre ;// 2 = -5 - -7 |
if ($j['mod'] == false) {// Première fois que l'on modifie le jour |
if ($heure_sup_act < 0) { |
$Utilisateur->diminuerQuotaHeuresSup(abs($heure_sup_act)); |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_act); |
} |
if ($heure_sup_act > 0) { |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act); |
} |
} else { |
} |
} else {// Les heures sup ont déjà été comptabilisées |
if ($heure_sup_dif < 0) { |
$Utilisateur->diminuerQuotaHeuresSup(abs($heure_sup_dif)); |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_dif); |
} |
if ($heure_sup_dif > 0) { |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_dif); |
} |
} |
} |
} |
} |
|
trigger_error(print_r($jours_w_semaine, true), E_USER_NOTICE);//$heure_sup_pre.'/'.$heure_sup_act.'-'.$total_jours |
$Utilisateur->modifier(); |
|
// Mise à jour de la vue Identité pour les congés payés et RTT |