Line 10... |
Line 10... |
10 |
}
|
10 |
}
|
Line 11... |
Line 11... |
11 |
|
11 |
|
12 |
public function executer()
|
12 |
public function executer()
|
13 |
{
|
13 |
{
|
14 |
$aso_gestion = array();
|
14 |
$aso_gestion = array();
|
Line 15... |
Line 15... |
15 |
$this->getRegistre()->setTitre('Gérer son temps');
|
15 |
$this->getRegistre()->setTitre('Gérer son temps');
|
16 |
|
16 |
|
17 |
//+-------------------------------------------------------------------------------------------------+
|
17 |
//+-------------------------------------------------------------------------------------------------+
|
18 |
// GESTION DES CALENDRIERS
|
18 |
// GESTION DES CALENDRIERS
|
Line 88... |
Line 88... |
88 |
}
|
88 |
}
|
89 |
$aso_gestion['elements'][$Week->thisWeek('n_in_year')][$num] = $element;
|
89 |
$aso_gestion['elements'][$Week->thisWeek('n_in_year')][$num] = $element;
|
90 |
}
|
90 |
}
|
91 |
}
|
91 |
}
|
Line 92... |
Line 92... |
92 |
|
92 |
|
93 |
// Construction de l'url pour les mois précédent/suivant
|
93 |
// Construction de l'url pour les mois précédent/suivant
|
94 |
$PMonth = $Month->prevMonth('object');
|
94 |
$PMonth = $Month->prevMonth('object');
|
95 |
$aso_gestion['url_mois_precedent'] = 'index.php?action='.GTT_ACTION_GESTION.'&annee='.$PMonth->thisYear().'&mois='.$PMonth->thisMonth().'&jour='.$PMonth->thisDay();
|
95 |
$aso_gestion['url_mois_precedent'] = 'index.php?action='.GTT_ACTION_GESTION.'&annee='.$PMonth->thisYear().'&mois='.$PMonth->thisMonth().'&jour='.$PMonth->thisDay();
|
96 |
$NMonth = $Month->nextMonth('object');
|
96 |
$NMonth = $Month->nextMonth('object');
|
97 |
$aso_gestion['url_mois_suivant'] = 'index.php?action='.GTT_ACTION_GESTION.'&annee='.$NMonth->thisYear().'&mois='.$NMonth->thisMonth().'&jour='.$NMonth->thisDay();
|
97 |
$aso_gestion['url_mois_suivant'] = 'index.php?action='.GTT_ACTION_GESTION.'&annee='.$NMonth->thisYear().'&mois='.$NMonth->thisMonth().'&jour='.$NMonth->thisDay();
|
98 |
$aso_gestion['mois']['mois'] = $Calendrier->getNomMois($Month->thisMonth());
|
98 |
$aso_gestion['mois']['mois'] = $Calendrier->getNomMois($Month->thisMonth());
|
Line 99... |
Line 99... |
99 |
$aso_gestion['mois']['annee'] = $Month->thisYear();
|
99 |
$aso_gestion['mois']['annee'] = $Month->thisYear();
|
100 |
|
100 |
|
101 |
// Construction de l'url pour les semaines précédente/suivante
|
101 |
// Construction de l'url pour les semaines précédente/suivante
|
Line 102... |
Line 102... |
102 |
$Week = new Calendar_Week($_GET['annee'], $_GET['mois'], $_GET['jour']);
|
102 |
$Week = new Calendar_Week($_GET['annee'], $_GET['mois'], $_GET['jour']);
|
103 |
$aso_gestion['s'] = $Week->thisWeek('n_in_year');
|
103 |
$aso_gestion['s'] = $Week->thisWeek('n_in_year');
|
Line 123... |
Line 123... |
123 |
}
|
123 |
}
|
Line 124... |
Line 124... |
124 |
|
124 |
|
125 |
//+-------------------------------------------------------------------------------------------------+
|
125 |
//+-------------------------------------------------------------------------------------------------+
|
126 |
// GESTION DES PROJETS
|
126 |
// GESTION DES PROJETS
|
127 |
//+-------------------------------------------------------------------------------------------------+
|
127 |
//+-------------------------------------------------------------------------------------------------+
|
128 |
// Récupération des projets sur lesquels l'utilisateur travaille
|
128 |
// Récupération des projets sur lesquels l'utilisateur travaille
|
129 |
$UtilsateurAProjet = new UtilisateurAProjet();
|
129 |
$UtilsateurAProjet = new UtilisateurAProjet();
|
130 |
$tab_uap = $UtilsateurAProjet->consulter(UtilisateurAProjet::GUAP_UTILISATEUR, $GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
|
130 |
$tab_uap = $UtilsateurAProjet->consulter(UtilisateurAProjet::GUAP_UTILISATEUR, $GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
|
131 |
// Si nous avons des données...
|
131 |
// Si nous avons des données...
|
132 |
$aso_gestion['bool_projets'] = false;
|
132 |
$aso_gestion['bool_projets'] = false;
|
133 |
if ($tab_uap && count($tab_uap) >= 1) {
|
133 |
if ($tab_uap && count($tab_uap) >= 1) {
|
134 |
$aso_gestion['bool_projets'] = true;
|
134 |
$aso_gestion['bool_projets'] = true;
|
135 |
$tab_projet_id = array();
|
135 |
$tab_projet_id = array();
|
136 |
foreach ($tab_uap as $uap) {
|
136 |
foreach ($tab_uap as $uap) {
|
137 |
$tab_projet_id[] = $uap->getIdProjet();
|
137 |
$tab_projet_id[] = $uap->getIdProjet();
|
Line 138... |
Line 138... |
138 |
}
|
138 |
}
|
139 |
|
139 |
|
140 |
// Récupération du temps de travail pour un utilisateur à une date donnée
|
140 |
// Récupération du temps de travail pour un utilisateur à une date donnée
|
141 |
$TravailProjet = new TravailProjet();
|
141 |
$TravailProjet = new TravailProjet();
|
142 |
$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
|
142 |
$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
|
Line 143... |
Line 143... |
143 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
|
143 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
|
144 |
$tab_tp = $TravailProjet->consulter($cmd, $param);
|
144 |
$tab_tp = $TravailProjet->consulter($cmd, $param);
|
145 |
|
145 |
|
146 |
// Récupération des infos sur les projets de l'utilisateur
|
146 |
// Récupération des infos sur les projets de l'utilisateur
|
147 |
$aso_gestion['totaux'] = $aso_tps_w_vide;
|
147 |
$aso_gestion['totaux'] = $aso_tps_w_vide;
|
Line 148... |
Line 148... |
148 |
$Projet = new Projet();
|
148 |
$Projet = new Projet();
|
149 |
$tab_p = $Projet->consulter(Projet::GP_ID_LIST, array(implode(',', $tab_projet_id)));
|
149 |
$tab_p = $Projet->consulter(Projet::GP_ID_LIST, array(implode(',', $tab_projet_id)));
|
150 |
foreach ($tab_p as $Projet) {
|
150 |
foreach ($tab_p as $Projet) {
|
Line 151... |
Line 151... |
151 |
|
151 |
|
152 |
// Récupération de la catégorie du projet
|
152 |
// Récupération de la catégorie du projet
|
153 |
$ProjetCategorie = new ProjetCategorie();
|
153 |
$ProjetCategorie = new ProjetCategorie();
|
154 |
$Categorie = current($ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $Projet->getCeCategorie()));
|
154 |
$Categorie = current($ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $Projet->getCeCategorie()));
|
155 |
|
155 |
|
156 |
// Nous vérifions le temps de travail pour ce projet pour la semaine courrante
|
156 |
// Nous vérifions le temps de travail pour ce projet pour la semaine courrante
|
Line 167... |
Line 167... |
167 |
$aso_gestion['totaux'][$num] += $TP->getDuree();
|
167 |
$aso_gestion['totaux'][$num] += $TP->getDuree();
|
168 |
}
|
168 |
}
|
169 |
}
|
169 |
}
|
170 |
}
|
170 |
}
|
Line 171... |
Line 171... |
171 |
|
171 |
|
172 |
// Stockage des infos nécessaire pour l'affichage
|
172 |
// Stockage des infos nécessaire pour l'affichage
|
173 |
$aso_gestion['preferences'][$Categorie->getLibelle()][] = array(
|
173 |
$aso_gestion['preferences'][$Categorie->getLibelle()][] = array(
|
174 |
'id' => $Projet->getIdProjet(),
|
174 |
'id' => $Projet->getIdProjet(),
|
175 |
'valeur' => $Projet->getIdProjet(),
|
175 |
'valeur' => $Projet->getIdProjet(),
|
176 |
'nom' => $Projet->getNom(),
|
176 |
'nom' => $Projet->getNom(),
|
Line 180... |
Line 180... |
180 |
}
|
180 |
}
|
181 |
}
|
181 |
}
|
182 |
//+-------------------------------------------------------------------------------------------------+
|
182 |
//+-------------------------------------------------------------------------------------------------+
|
183 |
// GESTION DES ABSENCES
|
183 |
// GESTION DES ABSENCES
|
184 |
//+-------------------------------------------------------------------------------------------------+
|
184 |
//+-------------------------------------------------------------------------------------------------+
|
185 |
// Récupération des motifs d'absence
|
185 |
// Récupération des motifs d'absence
|
186 |
$AbsenceMotif = new AbsenceMotif();
|
186 |
$AbsenceMotif = new AbsenceMotif();
|
187 |
$cmd = AbsenceMotif::GAM_TOUS;
|
187 |
$cmd = AbsenceMotif::GAM_TOUS;
|
188 |
$tab_am = $AbsenceMotif->consulter($cmd);
|
188 |
$tab_am = $AbsenceMotif->consulter($cmd);
|
Line 189... |
Line 189... |
189 |
|
189 |
|
190 |
// Récupération des absences pour un utilisateur à une date donnée
|
190 |
// Récupération des absences pour un utilisateur à une date donnée
|
191 |
$Absence = new Absence();
|
191 |
$Absence = new Absence();
|
192 |
$cmd = Absence::GA_ID_UTILISATEUR_DATE_DEB_FIN;
|
192 |
$cmd = Absence::GA_ID_UTILISATEUR_DATE_DEB_FIN;
|
193 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
|
193 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
|
194 |
$tab_a = $Absence->consulter($cmd, $param);
|
194 |
$tab_a = $Absence->consulter($cmd, $param);
|
Line 210... |
Line 210... |
210 |
}
|
210 |
}
|
211 |
}
|
211 |
}
|
212 |
}
|
212 |
}
|
213 |
}
|
213 |
}
|
Line 214... |
Line 214... |
214 |
|
214 |
|
215 |
// Création de l'url de réponse du formulaire
|
215 |
// Création de l'url de réponse du formulaire
|
Line 216... |
Line 216... |
216 |
$aso_gestion['url_gestion_valider'] = 'index.php?action='.GTT_ACTION_GESTION_VALIDER.$url_sc_param_date;
|
216 |
$aso_gestion['url_gestion_valider'] = 'index.php?action='.GTT_ACTION_GESTION_VALIDER.$url_sc_param_date;
|
217 |
|
217 |
|
218 |
//echo '<pre>ici '.print_r($aso_gestion['ab'], true).'la</pre>';
|
218 |
//echo '<pre>ici '.print_r($aso_gestion['ab'], true).'la</pre>';
|
Line 227... |
Line 227... |
227 |
|
227 |
|
228 |
public function executerValider()
|
228 |
public function executerValider()
|
229 |
{
|
229 |
{
|
Line 230... |
Line 230... |
230 |
//echo '<pre>'.print_r($_POST, true).'</pre>';
|
230 |
//echo '<pre>'.print_r($_POST, true).'</pre>';
|
231 |
|
231 |
|
232 |
// Récupération des info sur la semaine courrante
|
232 |
// Récupération des info sur la semaine courrante
|
233 |
$Week = new Calendar_Week($_GET['annee'], $_GET['mois'], $_GET['jour']);
|
233 |
$Week = new Calendar_Week($_GET['annee'], $_GET['mois'], $_GET['jour']);
|
234 |
$Week->build();
|
234 |
$Week->build();
|
235 |
$aso_jours = array();
|
235 |
$aso_jours = array();
|
236 |
$aso_semaine = array();
|
236 |
$aso_semaine = array();
|
237 |
foreach($Week->fetchAll() as $num => $j) {
|
237 |
foreach($Week->fetchAll() as $num => $j) {
|
238 |
$aso_semaine[$num]['mysql'] = $j->thisYear().'-'.sprintf("%02s", $j->thisMonth()).'-'.sprintf("%02s", $j->thisDay());
|
238 |
$aso_semaine[$num]['mysql'] = $j->thisYear().'-'.sprintf("%02s", $j->thisMonth()).'-'.sprintf("%02s", $j->thisDay());
|
Line 239... |
Line 239... |
239 |
$aso_jours[$aso_semaine[$num]['mysql']] = $num;
|
239 |
$aso_jours[$aso_semaine[$num]['mysql']] = $num;
|
240 |
}
|
240 |
}
|
241 |
|
241 |
|
242 |
// Récupération du temps de travail pour un utilisateur à une date donnée
|
242 |
// Récupération du temps de travail pour un utilisateur à une date donnée
|
243 |
$TravailProjet = new TravailProjet();
|
243 |
$TravailProjet = new TravailProjet();
|
Line 244... |
Line 244... |
244 |
$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
|
244 |
$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
|
245 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_semaine[1]['mysql'], $aso_semaine[7]['mysql']);
|
245 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_semaine[1]['mysql'], $aso_semaine[7]['mysql']);
|
246 |
$tab_tp = $TravailProjet->consulter($cmd, $param);
|
246 |
$tab_tp = $TravailProjet->consulter($cmd, $param);
|
247 |
|
247 |
|
248 |
// Récupération des infos sur l'utilisateur courrant
|
248 |
// Récupération des infos sur l'utilisateur courrant
|
249 |
$tps_w_jour = $GLOBALS['_GTT_']['Utilisateur']->getTempsDeTravailJour();
|
249 |
$tps_w_jour = $GLOBALS['_GTT_']['Utilisateur']->getTempsDeTravailJour();
|
250 |
// Création d'un utilisateur pour les mises à jour des CP et RTT
|
250 |
// Création d'un utilisateur pour les mises à jour des CP et RTT
|
251 |
$Utilisateur = new Utilisateur();
|
251 |
$Utilisateur = new Utilisateur();
|
Line 261... |
Line 261... |
261 |
$jours_w_semaine = array_flip(explode(',', GTT_SEMAINE_JOUR_W_NBRE));
|
261 |
$jours_w_semaine = array_flip(explode(',', GTT_SEMAINE_JOUR_W_NBRE));
|
262 |
foreach ($jours_w_semaine as $c => $v) {
|
262 |
foreach ($jours_w_semaine as $c => $v) {
|
263 |
$jours_w_semaine[$c] = array('act' => 0, 'pre' => 0);
|
263 |
$jours_w_semaine[$c] = array('act' => 0, 'pre' => 0);
|
264 |
}
|
264 |
}
|
Line 265... |
Line 265... |
265 |
|
265 |
|
266 |
// Ajout ou Mise à jour des durées de travail
|
266 |
// Ajout ou Mise à jour des durées de travail
|
267 |
if (isset($_POST['pr'])) {
|
267 |
if (isset($_POST['pr'])) {
|
268 |
foreach($_POST['pr'] as $projet_id => $jours) {
|
268 |
foreach($_POST['pr'] as $projet_id => $jours) {
|
269 |
//echo '<pre>'.print_r($jours, true).'</pre>';
|
269 |
//echo '<pre>'.print_r($jours, true).'</pre>';
|
270 |
foreach($jours as $jour_num => $nbr_heure) {
|
270 |
foreach($jours as $jour_num => $nbr_heure) {
|
Line 302... |
Line 302... |
302 |
}
|
302 |
}
|
303 |
}
|
303 |
}
|
304 |
}
|
304 |
}
|
305 |
}
|
305 |
}
|
Line 306... |
Line 306... |
306 |
|
306 |
|
307 |
// Récupération des absences pour un utilisateur à une date donnée
|
307 |
// Récupération des absences pour un utilisateur à une date donnée
|
308 |
$Absence = new Absence();
|
308 |
$Absence = new Absence();
|
309 |
$cmd = Absence::GA_ID_UTILISATEUR_DATE_DEB_FIN;
|
309 |
$cmd = Absence::GA_ID_UTILISATEUR_DATE_DEB_FIN;
|
310 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_semaine[1]['mysql'], $aso_semaine[7]['mysql']);
|
310 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_semaine[1]['mysql'], $aso_semaine[7]['mysql']);
|
Line 311... |
Line 311... |
311 |
$tab_a = $Absence->consulter($cmd, $param);
|
311 |
$tab_a = $Absence->consulter($cmd, $param);
|
312 |
|
312 |
|
313 |
// Ajout ou Mise à jour des durées d'absences pour congés payés
|
313 |
// Ajout ou Mise à jour des durées d'absences pour congés payés
|
314 |
$cp_h_modif = 0;
|
314 |
$cp_h_modif = 0;
|
315 |
$hs_h_modif = 0;
|
315 |
$hs_h_modif = 0;
|
316 |
if (isset($_POST['ab'])) {
|
316 |
if (isset($_POST['ab'])) {
|
317 |
//echo '<pre>'.print_r($_POST['ab'], true).'</pre>';
|
317 |
//echo '<pre>'.print_r($_POST['ab'], true).'</pre>';
|
318 |
foreach($_POST['ab'] as $ab_id => $tab_num_j) {
|
318 |
foreach($_POST['ab'] as $ab_id => $tab_num_j) {
|
319 |
// Création du motif d'absence pour voir si on doit diminuer les congés payés
|
319 |
// Création du motif d'absence pour voir si on doit diminuer les congés payés
|
Line 320... |
Line 320... |
320 |
$AbsenceMotif = new AbsenceMotif();
|
320 |
$AbsenceMotif = new AbsenceMotif();
|
321 |
$AbsenceMotif->consulter(AbsenceMotif::GAM_ID, $ab_id, true);
|
321 |
$AbsenceMotif->consulter(AbsenceMotif::GAM_ID, $ab_id, true);
|
Line 374... |
Line 374... |
374 |
}
|
374 |
}
|
375 |
}
|
375 |
}
|
376 |
}
|
376 |
}
|
377 |
}
|
377 |
}
|
Line 378... |
Line 378... |
378 |
|
378 |
|
379 |
// Gestion de la mise à jour des congés payés
|
379 |
// Gestion de la mise à jour des congés payés
|
380 |
if ($cp_h_modif > 0) {
|
380 |
if ($cp_h_modif > 0) {
|
381 |
$Utilisateur->diminuerCongesPayes($cp_h_modif);
|
381 |
$Utilisateur->diminuerCongesPayes($cp_h_modif);
|
382 |
}
|
382 |
}
|
383 |
if ($cp_h_modif < 0) {
|
383 |
if ($cp_h_modif < 0) {
|
Line 390... |
Line 390... |
390 |
$Utilisateur->augmenterQuotaHeuresSup(abs($hs_h_modif));
|
390 |
$Utilisateur->augmenterQuotaHeuresSup(abs($hs_h_modif));
|
391 |
}
|
391 |
}
|
392 |
$Utilisateur->modifier();
|
392 |
$Utilisateur->modifier();
|
393 |
}
|
393 |
}
|
Line 394... |
Line 394... |
394 |
|
394 |
|
395 |
// Gestion de la mise à jour des heures sup
|
395 |
// Gestion de la mise à jour des heures sup
|
396 |
foreach ($jours_w_semaine as $c => $j) {
|
396 |
foreach ($jours_w_semaine as $c => $j) {
|
397 |
if (($j['pre'] - $j['act']) != 0) {// Modification sur le temps travaillé pour le jour courant
|
397 |
if (($j['pre'] - $j['act']) != 0) {// Modification sur le temps travaillé pour le jour courant
|
398 |
$heure_sup_pre = $j['pre'] - $tps_w_jour;// -7 = 0 - 7
|
398 |
$heure_sup_pre = $j['pre'] - $tps_w_jour;// -7 = 0 - 7
|
399 |
$heure_sup_act = $j['act'] - $tps_w_jour;// -5 = 2 - 7
|
399 |
$heure_sup_act = $j['act'] - $tps_w_jour;// -5 = 2 - 7
|
400 |
$heure_sup_dif = $heure_sup_act - $heure_sup_pre;// 2 = -5 - -7
|
400 |
$heure_sup_dif = $heure_sup_act - $heure_sup_pre;// 2 = -5 - -7
|
401 |
if (abs($heure_sup_pre) == $tps_w_jour) {// Premiere modifier du temps travaillé pour le jour courrant
|
401 |
if (abs($heure_sup_pre) == $tps_w_jour) {// Premiere modifier du temps travaillé pour le jour courrant
|
402 |
if ($heure_sup_act < 0) {
|
402 |
if ($heure_sup_act < 0) {
|
403 |
$Utilisateur->diminuerQuotaHeuresSup(abs($heure_sup_act));
|
403 |
$Utilisateur->diminuerQuotaHeuresSup(abs($heure_sup_act));
|
404 |
}
|
404 |
}
|
405 |
if ($heure_sup_act > 0) {
|
405 |
if ($heure_sup_act > 0) {
|
Line 417... |
Line 417... |
417 |
}
|
417 |
}
|
Line 418... |
Line 418... |
418 |
|
418 |
|
419 |
trigger_error(print_r($jours_w_semaine, true), E_USER_NOTICE);//$heure_sup_pre.'/'.$heure_sup_act.'-'.$total_jours
|
419 |
trigger_error(print_r($jours_w_semaine, true), E_USER_NOTICE);//$heure_sup_pre.'/'.$heure_sup_act.'-'.$total_jours
|
Line 420... |
Line 420... |
420 |
$Utilisateur->modifier();
|
420 |
$Utilisateur->modifier();
|
421 |
|
421 |
|
422 |
// Mise à jour de la vue Identité pour les congés payés et RTT
|
422 |
// Mise à jour de la vue Identité pour les congés payés et RTT
|
423 |
$GttCtrlActionIdentification = new GttCtrlActionIdentification($this->getRegistre());
|
423 |
$GttCtrlActionIdentification = new GttCtrlActionIdentification($this->getRegistre());
|
Line 424... |
Line 424... |
424 |
$GttCtrlActionIdentification->setSuivant('__defaut__');
|
424 |
$GttCtrlActionIdentification->setSuivant('__defaut__');
|