Line 1... |
Line 1... |
1 |
<?php
|
1 |
<?php
|
2 |
class GttCtrlActionGestion extends aControlleurAction {
|
2 |
class GttCtrlActionGestion extends aControlleurAction {
|
Line 3... |
Line 3... |
3 |
|
3 |
|
4 |
public function __construct(Registre $Registre)
|
4 |
public function __construct(Registre $Registre)
|
5 |
{
|
5 |
{
|
6 |
$Registre->ajouterEspace('Gestion', 'gestion');
|
6 |
$Registre->ajouterEspace('Gestion', 'gestion');
|
7 |
$Registre->ajouterEspace('ZoneCalendrier', 'zone_calendrier');
|
7 |
$Registre->ajouterEspace('ZoneCalendrier', 'zone_calendrier');
|
8 |
$Registre->ajouterSquelette('zone_calendrier', 'calendrier_mini');
|
8 |
$Registre->ajouterSquelette('zone_calendrier', 'calendrier_mini');
|
9 |
}
|
9 |
}
|
10 |
|
10 |
|
11 |
public function executer()
|
11 |
public function executer()
|
12 |
{
|
12 |
{
|
13 |
$aso_gestion = array();
|
13 |
$aso_gestion = array();
|
Line 14... |
Line 14... |
14 |
$this->getRegistre()->setTitre('Gérer son temps');
|
14 |
$this->getRegistre()->setTitre('Gérer son temps');
|
15 |
|
15 |
|
16 |
//+-------------------------------------------------------------------------------------------------+
|
16 |
//+-------------------------------------------------------------------------------------------------+
|
17 |
// GESTION DES CALENDRIERS
|
17 |
// GESTION DES CALENDRIERS
|
18 |
//+-------------------------------------------------------------------------------------------------+
|
18 |
//+-------------------------------------------------------------------------------------------------+
|
19 |
// Initialisation des variables pour le calendrier
|
19 |
// Initialisation des variables pour le calendrier
|
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
|
126 |
//+-------------------------------------------------------------------------------------------------+
|
129 |
//+-------------------------------------------------------------------------------------------------+
|
127 |
// Récupération des projets sur lesquels l'utilisateur travaille
|
130 |
// Récupération des projets sur lesquels l'utilisateur travaille
|
128 |
$UtilsateurAProjet = new UtilisateurAProjet();
|
131 |
$UtilsateurAProjet = new UtilisateurAProjet();
|
129 |
$tab_uap = $UtilsateurAProjet->consulter(UtilisateurAProjet::GUAP_UTILISATEUR, $GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
|
132 |
$tab_uap = $UtilsateurAProjet->consulter(UtilisateurAProjet::GUAP_UTILISATEUR, $GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
|
130 |
// Si nous avons des données...
|
133 |
// Si nous avons des données...
|
131 |
$aso_gestion['bool_projets'] = false;
|
134 |
$aso_gestion['bool_projets'] = false;
|
132 |
if ($tab_uap && count($tab_uap) >= 1) {
|
135 |
if ($tab_uap && count($tab_uap) >= 1) {
|
133 |
$aso_gestion['bool_projets'] = true;
|
136 |
$aso_gestion['bool_projets'] = true;
|
134 |
$tab_projet_id = array();
|
137 |
$tab_projet_id = array();
|
135 |
foreach ($tab_uap as $uap) {
|
138 |
foreach ($tab_uap as $uap) {
|
136 |
$tab_projet_id[] = $uap->getIdProjet();
|
139 |
$tab_projet_id[] = $uap->getIdProjet();
|
Line 137... |
Line 140... |
137 |
}
|
140 |
}
|
138 |
|
141 |
|
139 |
// Récupération du temps de travail pour un utilisateur à une date donnée
|
142 |
// Récupération du temps de travail pour un utilisateur à une date donnée
|
140 |
$TravailProjet = new TravailProjet();
|
143 |
$TravailProjet = new TravailProjet();
|
141 |
$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
|
144 |
$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
|
Line 142... |
Line 145... |
142 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
|
145 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
|
143 |
$tab_tp = $TravailProjet->consulter($cmd, $param);
|
146 |
$tab_tp = $TravailProjet->consulter($cmd, $param);
|
144 |
|
147 |
|
145 |
// Récupération des infos sur les projets de l'utilisateur
|
148 |
// Récupération des infos sur les projets de l'utilisateur
|
146 |
$aso_gestion['totaux'] = $aso_tps_w_vide;
|
149 |
$aso_gestion['totaux'] = $aso_tps_w_vide;
|
147 |
$Projet = new Projet();
|
150 |
$Projet = new Projet();
|
148 |
$tab_p = $Projet->consulter(Projet::GP_ID_LIST, array(implode(',', $tab_projet_id)));
|
151 |
$tab_p = $Projet->consulter(Projet::GP_ID_LIST, array(implode(',', $tab_projet_id)));
|
149 |
foreach ($tab_p as $Projet) {
|
152 |
foreach ($tab_p as $Projet) {
|
150 |
|
153 |
|
151 |
// Récupération de la catégorie du projet
|
154 |
// Récupération de la catégorie du projet
|
152 |
$ProjetCategorie = new ProjetCategorie();
|
155 |
$ProjetCategorie = new ProjetCategorie();
|
153 |
$Categorie = current($ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $Projet->getCeCategorie()));
|
156 |
$Categorie = current($ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $Projet->getCeCategorie()));
|
154 |
|
157 |
|
155 |
// Nous vérifions le temps de travail pour ce projet pour la semaine courrante
|
158 |
// Nous vérifions le temps de travail pour ce projet pour la semaine courrante
|
156 |
$aso_tps_w = $aso_tps_w_vide;
|
159 |
$aso_tps_w = $aso_tps_w_vide;
|
Line 165... |
Line 168... |
165 |
$aso_gestion['categorie_totaux'][$Categorie->getLibelle()][$num] += $TP->getDuree();
|
168 |
$aso_gestion['categorie_totaux'][$Categorie->getLibelle()][$num] += $TP->getDuree();
|
166 |
$aso_gestion['totaux'][$num] += $TP->getDuree();
|
169 |
$aso_gestion['totaux'][$num] += $TP->getDuree();
|
167 |
}
|
170 |
}
|
168 |
}
|
171 |
}
|
169 |
}
|
172 |
}
|
170 |
|
173 |
|
171 |
// Stockage des infos nécessaire pour l'affichage
|
174 |
// Stockage des infos nécessaire pour l'affichage
|
172 |
$aso_gestion['preferences'][$Categorie->getLibelle()][] = array(
|
175 |
$aso_gestion['preferences'][$Categorie->getLibelle()][] = array(
|
173 |
'id' => $Projet->getIdProjet(),
|
176 |
'id' => $Projet->getIdProjet(),
|
174 |
'valeur' => $Projet->getIdProjet(),
|
177 |
'valeur' => $Projet->getIdProjet(),
|
175 |
'nom' => $Projet->getNom(),
|
178 |
'nom' => $Projet->getNom(),
|
176 |
'desc' => $Projet->getDescription(),
|
179 |
'desc' => $Projet->getDescription(),
|
177 |
'date' => $aso_tps_w);
|
180 |
'date' => $aso_tps_w);
|
178 |
|
181 |
|
179 |
|
182 |
|
180 |
}
|
183 |
}
|
181 |
}
|
184 |
}
|
182 |
// Trie par odre alphabétique des catégories...
|
185 |
// Trie par odre alphabétique des catégories...
|
183 |
ksort($aso_gestion['preferences']);
|
186 |
ksort($aso_gestion['preferences']);
|
184 |
|
187 |
|
185 |
//+-------------------------------------------------------------------------------------------------+
|
188 |
//+-------------------------------------------------------------------------------------------------+
|
186 |
// GESTION DES ABSENCES
|
189 |
// GESTION DES ABSENCES
|
187 |
//+-------------------------------------------------------------------------------------------------+
|
190 |
//+-------------------------------------------------------------------------------------------------+
|
188 |
// Récupération des motifs d'absence
|
191 |
// Récupération des motifs d'absence
|
189 |
$AbsenceMotif = new AbsenceMotif();
|
192 |
$AbsenceMotif = new AbsenceMotif();
|
190 |
$cmd = AbsenceMotif::GAM_TOUS;
|
193 |
$cmd = AbsenceMotif::GAM_TOUS;
|
191 |
$tab_am = $AbsenceMotif->consulter($cmd);
|
194 |
$tab_am = $AbsenceMotif->consulter($cmd);
|
Line 192... |
Line 195... |
192 |
|
195 |
|
193 |
// Récupération des absences pour un utilisateur à une date donnée
|
196 |
// Récupération des absences pour un utilisateur à une date donnée
|
194 |
$Absence = new Absence();
|
197 |
$Absence = new Absence();
|
195 |
$cmd = Absence::GA_ID_UTILISATEUR_DATE_DEB_FIN;
|
198 |
$cmd = Absence::GA_ID_UTILISATEUR_DATE_DEB_FIN;
|
196 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
|
199 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
|
197 |
$tab_a = $Absence->consulter($cmd, $param);
|
200 |
$tab_a = $Absence->consulter($cmd, $param);
|
Line 198... |
Line 201... |
198 |
// Si nous avons des absences...
|
201 |
// Si nous avons des absences...
|
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 |
}
|
217 |
}
|
220 |
}
|
218 |
}
|
221 |
}
|
219 |
}
|
222 |
}
|
220 |
|
223 |
|
Line 221... |
Line 224... |
221 |
// Création de l'url de réponse du formulaire
|
224 |
// Création de l'url de réponse du formulaire
|
222 |
$aso_gestion['url_gestion_valider'] = 'index.php?action='.GTT_ACTION_GESTION_VALIDER.$url_sc_param_date;
|
225 |
$aso_gestion['url_gestion_valider'] = 'index.php?action='.GTT_ACTION_GESTION_VALIDER.$url_sc_param_date;
|
223 |
|
226 |
|
224 |
//echo '<pre>ici '.print_r($aso_gestion['ab'], true).'la</pre>';
|
227 |
//echo '<pre>ici '.print_r($aso_gestion['ab'], true).'la</pre>';
|
Line 225... |
Line 228... |
225 |
$this->getRegistre()->ajouterDonnee('gestion', $aso_gestion);
|
228 |
$this->getRegistre()->ajouterDonnee('gestion', $aso_gestion);
|
226 |
$this->getRegistre()->ajouterDonnee('zone_calendrier', $aso_gestion);
|
229 |
$this->getRegistre()->ajouterDonnee('zone_calendrier', $aso_gestion);
|
Line 227... |
Line 230... |
227 |
}
|
230 |
}
|
Line 228... |
Line 231... |
228 |
|
231 |
|
229 |
public function verifierValider()
|
232 |
public function verifierValider()
|
230 |
{
|
233 |
{
|
231 |
|
234 |
|
Line 232... |
Line 235... |
232 |
}
|
235 |
}
|
233 |
|
236 |
|
234 |
public function executerValider()
|
237 |
public function executerValider()
|
235 |
{
|
238 |
{
|
236 |
// Création du Calendrier
|
239 |
// Création du Calendrier
|
237 |
$Calendrier = new Calendrier($_GET['jour'], null, $_GET['mois'], $_GET['annee']);
|
240 |
$Calendrier = new Calendrier($_GET['jour'], null, $_GET['mois'], $_GET['annee']);
|
238 |
|
241 |
|
239 |
// Récupération des info sur la semaine courrante
|
242 |
// Récupération des info sur la semaine courrante
|
240 |
$Week = new Calendar_Week($_GET['annee'], $_GET['mois'], $_GET['jour']);
|
243 |
$Week = new Calendar_Week($_GET['annee'], $_GET['mois'], $_GET['jour']);
|
241 |
$Week->build();
|
244 |
$Week->build();
|
242 |
$aso_jours = array();
|
245 |
$aso_jours = array();
|
243 |
$aso_semaine = array();
|
246 |
$aso_semaine = array();
|
244 |
$jours_w_semaine = array();
|
247 |
$jours_w_semaine = array();
|
245 |
foreach($Week->fetchAll() as $num => $j) {
|
248 |
foreach($Week->fetchAll() as $num => $j) {
|
246 |
$aso_semaine[$num]['mysql'] = $j->thisYear().'-'.sprintf("%02s", $j->thisMonth()).'-'.sprintf("%02s", $j->thisDay());
|
249 |
$aso_semaine[$num]['mysql'] = $j->thisYear().'-'.sprintf("%02s", $j->thisMonth()).'-'.sprintf("%02s", $j->thisDay());
|
247 |
$aso_jours[$aso_semaine[$num]['mysql']] = $num;
|
250 |
$aso_jours[$aso_semaine[$num]['mysql']] = $num;
|
248 |
|
251 |
|
249 |
// Initialisation de la variable pour la gestion des heures sup
|
252 |
// Initialisation de la variable pour la gestion des heures sup
|
250 |
$methode = 'getTdt'.$Calendrier->getNomJoursLong($num);
|
253 |
$methode = 'getTdt'.$Calendrier->getNomJoursLong($num);
|
Line 260... |
Line 263... |
260 |
$jours_w_semaine[$num]['tdt'] = 0;
|
263 |
$jours_w_semaine[$num]['tdt'] = 0;
|
261 |
}
|
264 |
}
|
262 |
}
|
265 |
}
|
Line 263... |
Line 266... |
263 |
|
266 |
|
264 |
// Récupération du temps de travail pour un utilisateur à une date donnée
|
267 |
// Récupération du temps de travail pour un utilisateur à une date donnée
|
265 |
$TravailProjet = new TravailProjet();
|
268 |
$TravailProjet = new TravailProjet();
|
266 |
$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
|
269 |
$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
|
267 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_semaine[1]['mysql'], $aso_semaine[7]['mysql']);
|
270 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_semaine[1]['mysql'], $aso_semaine[7]['mysql']);
|
Line 268... |
Line 271... |
268 |
$tab_tp = $TravailProjet->consulter($cmd, $param);
|
271 |
$tab_tp = $TravailProjet->consulter($cmd, $param);
|
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 315... |
Line 317... |
315 |
}
|
317 |
}
|
316 |
}
|
318 |
}
|
317 |
}
|
319 |
}
|
Line 318... |
Line 320... |
318 |
|
320 |
|
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;
|
- |
|
329 |
$hs_h_modif = 0;
|
- |
|
330 |
$abscences_a_supprimer = $tab_a;
|
327 |
$hs_h_modif = 0;
|
331 |
//echo '<pre>'.print_r($_POST['ab'], true).'</pre>';
|
328 |
if (isset($_POST['ab'])) {
|
332 |
if (isset($_POST['ab'])) {
|
329 |
//echo '<pre>'.print_r($_POST['ab'], true).'</pre>';
|
333 |
echo '<pre>'.print_r($_POST['ab'], true).'</pre>';
|
- |
|
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);
|
330 |
foreach($_POST['ab'] as $ab_id => $tab_num_j) {
|
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();
|
Line 333... |
Line -... |
333 |
$AbsenceMotif->consulter(AbsenceMotif::GAM_ID, $ab_id, true);
|
- |
|
334 |
|
340 |
$AbsenceMotif->consulter(AbsenceMotif::GAM_ID, $ab_id, true);
|
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) {
|
- |
|
353 |
if ($A->getIdDateAbsence() == $aso_semaine[$num_j]['mysql']) {
|
347 |
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
|
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'];
|
- |
|
425 |
if ($heure_sup_act > 0) {
|
- |
|
426 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
|
- |
|
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'];
|
- |
|
449 |
if ($heure_sup_act > 0) {
|
- |
|
450 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
|
- |
|
451 |
}
|
402 |
if ($heure_sup_act > 0) {
|
452 |
if ($heure_sup_act < 0) {
|
- |
|
453 |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_act);
|
- |
|
454 |
}
|
- |
|
455 |
} else {// Journée d'abscence
|
403 |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_act);
|
456 |
$Utilisateur->diminuerQuotaHeuresSup($j['act_a']);
|
404 |
}
|
- |
|
405 |
if ($heure_sup_act < 0) {
|
- |
|
406 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
|
- |
|
407 |
}
|
- |
|
408 |
} else {// Les heures sup ont déjà été comptabilisées
|
- |
|
409 |
if ($heure_sup_dif > 0) {
|
- |
|
410 |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_dif);
|
- |
|
411 |
}
|
- |
|
412 |
if ($heure_sup_dif < 0) {
|
- |
|
413 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_dif);
|
- |
|
414 |
}
|
457 |
}
|
415 |
}
|
458 |
}
|
416 |
}
|
459 |
}
|
417 |
}
|
460 |
}
|
Line 418... |
Line 461... |
418 |
$Utilisateur->modifier();
|
461 |
$Utilisateur->modifier();
|
419 |
|
462 |
|
420 |
// Mise à jour de la vue Identité pour les congés payés et RTT
|
463 |
// Mise à jour de la vue Identité pour les congés payés et RTT
|
421 |
$GttCtrlActionIdentification = new GttCtrlActionIdentification($this->getRegistre());
|
464 |
$GttCtrlActionIdentification = new GttCtrlActionIdentification($this->getRegistre());
|
Line 422... |
Line 465... |
422 |
$GttCtrlActionIdentification->setSuivant('__defaut__');
|
465 |
$GttCtrlActionIdentification->setSuivant('__defaut__');
|
423 |
$this->setSuivant($GttCtrlActionIdentification);
|
466 |
$this->setSuivant($GttCtrlActionIdentification);
|
424 |
|
467 |
|
425 |
// Action suivante
|
468 |
// Action suivante
|
426 |
$this->setSuivant('__defaut__');
|
469 |
$this->setSuivant('__defaut__');
|
427 |
}
|
470 |
}
|