Subversion Repositories Applications.gtt

Compare Revisions

Ignore whitespace Rev 105 → Rev 106

/trunk/actions/GttCtrlActionGestion.class.php
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