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 122... |
Line 122... |
122 |
}
|
122 |
}
|
Line 123... |
Line 123... |
123 |
|
123 |
|
124 |
//+-------------------------------------------------------------------------------------------------+
|
124 |
//+-------------------------------------------------------------------------------------------------+
|
125 |
// GESTION DES PROJETS
|
125 |
// GESTION DES PROJETS
|
126 |
//+-------------------------------------------------------------------------------------------------+
|
126 |
//+-------------------------------------------------------------------------------------------------+
|
127 |
// Récupération des projets sur lesquels l'utilisateur travaille
|
127 |
// Récupération des projets sur lesquels l'utilisateur travaille
|
128 |
$UtilsateurAProjet = new UtilisateurAProjet();
|
128 |
$UtilsateurAProjet = new UtilisateurAProjet();
|
129 |
$tab_uap = $UtilsateurAProjet->consulter(UtilisateurAProjet::GUAP_UTILISATEUR, $GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
|
129 |
$tab_uap = $UtilsateurAProjet->consulter(UtilisateurAProjet::GUAP_UTILISATEUR, $GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
|
130 |
// Si nous avons des données...
|
130 |
// Si nous avons des données...
|
131 |
$aso_gestion['bool_projets'] = false;
|
131 |
$aso_gestion['bool_projets'] = false;
|
132 |
if ($tab_uap && count($tab_uap) >= 1) {
|
132 |
if ($tab_uap && count($tab_uap) >= 1) {
|
133 |
$aso_gestion['bool_projets'] = true;
|
133 |
$aso_gestion['bool_projets'] = true;
|
134 |
$tab_projet_id = array();
|
134 |
$tab_projet_id = array();
|
135 |
foreach ($tab_uap as $uap) {
|
135 |
foreach ($tab_uap as $uap) {
|
136 |
$tab_projet_id[] = $uap->getIdProjet();
|
136 |
$tab_projet_id[] = $uap->getIdProjet();
|
Line 137... |
Line 137... |
137 |
}
|
137 |
}
|
138 |
|
138 |
|
139 |
// Récupération du temps de travail pour un utilisateur à une date donnée
|
139 |
// Récupération du temps de travail pour un utilisateur à une date donnée
|
140 |
$TravailProjet = new TravailProjet();
|
140 |
$TravailProjet = new TravailProjet();
|
141 |
$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
|
141 |
$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
|
Line 142... |
Line 142... |
142 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
|
142 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
|
143 |
$tab_tp = $TravailProjet->consulter($cmd, $param);
|
143 |
$tab_tp = $TravailProjet->consulter($cmd, $param);
|
144 |
|
144 |
|
145 |
// Récupération des infos sur les projets de l'utilisateur
|
145 |
// Récupération des infos sur les projets de l'utilisateur
|
146 |
$aso_gestion['totaux'] = $aso_tps_w_vide;
|
146 |
$aso_gestion['totaux'] = $aso_tps_w_vide;
|
147 |
$Projet = new Projet();
|
147 |
$Projet = new Projet();
|
148 |
$tab_p = $Projet->consulter(Projet::GP_ID_LIST, array(implode(',', $tab_projet_id)));
|
148 |
$tab_p = $Projet->consulter(Projet::GP_ID_LIST, array(implode(',', $tab_projet_id)));
|
149 |
foreach ($tab_p as $Projet) {
|
149 |
foreach ($tab_p as $Projet) {
|
150 |
|
150 |
|
151 |
// Récupération de la catégorie du projet
|
151 |
// Récupération de la catégorie du projet
|
152 |
$ProjetCategorie = new ProjetCategorie();
|
152 |
$ProjetCategorie = new ProjetCategorie();
|
153 |
$Categorie = current($ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $Projet->getCeCategorie()));
|
153 |
$Categorie = current($ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $Projet->getCeCategorie()));
|
154 |
|
154 |
|
155 |
// Nous vérifions le temps de travail pour ce projet pour la semaine courrante
|
155 |
// Nous vérifions le temps de travail pour ce projet pour la semaine courrante
|
156 |
$aso_tps_w = $aso_tps_w_vide;
|
156 |
$aso_tps_w = $aso_tps_w_vide;
|
Line 165... |
Line 165... |
165 |
$aso_gestion['categorie_totaux'][$Categorie->getLibelle()][$num] += $TP->getDuree();
|
165 |
$aso_gestion['categorie_totaux'][$Categorie->getLibelle()][$num] += $TP->getDuree();
|
166 |
$aso_gestion['totaux'][$num] += $TP->getDuree();
|
166 |
$aso_gestion['totaux'][$num] += $TP->getDuree();
|
167 |
}
|
167 |
}
|
168 |
}
|
168 |
}
|
169 |
}
|
169 |
}
|
170 |
|
170 |
|
171 |
// Stockage des infos nécessaire pour l'affichage
|
171 |
// Stockage des infos nécessaire pour l'affichage
|
172 |
$aso_gestion['preferences'][$Categorie->getLibelle()][] = array(
|
172 |
$aso_gestion['preferences'][$Categorie->getLibelle()][] = array(
|
173 |
'id' => $Projet->getIdProjet(),
|
173 |
'id' => $Projet->getIdProjet(),
|
174 |
'valeur' => $Projet->getIdProjet(),
|
174 |
'valeur' => $Projet->getIdProjet(),
|
175 |
'nom' => $Projet->getNom(),
|
175 |
'nom' => $Projet->getNom(),
|
176 |
'desc' => $Projet->getDescription(),
|
176 |
'desc' => $Projet->getDescription(),
|
177 |
'date' => $aso_tps_w);
|
177 |
'date' => $aso_tps_w);
|
178 |
|
178 |
|
179 |
|
179 |
|
180 |
}
|
180 |
}
|
181 |
}
|
181 |
}
|
182 |
// Trie par odre alphabétique des catégories...
|
182 |
// Trie par odre alphabétique des catégories...
|
- |
|
183 |
if (isset($aso_gestion['preferences']) && is_array($aso_gestion['preferences'])) {
|
183 |
ksort($aso_gestion['preferences']);
|
184 |
ksort($aso_gestion['preferences']);
|
- |
|
185 |
}
|
184 |
|
186 |
|
185 |
//+-------------------------------------------------------------------------------------------------+
|
187 |
//+-------------------------------------------------------------------------------------------------+
|
186 |
// GESTION DES ABSENCES
|
188 |
// GESTION DES ABSENCES
|
187 |
//+-------------------------------------------------------------------------------------------------+
|
189 |
//+-------------------------------------------------------------------------------------------------+
|
188 |
// Récupération des motifs d'absence
|
190 |
// Récupération des motifs d'absence
|
189 |
$AbsenceMotif = new AbsenceMotif();
|
191 |
$AbsenceMotif = new AbsenceMotif();
|
190 |
$cmd = AbsenceMotif::GAM_TOUS;
|
192 |
$cmd = AbsenceMotif::GAM_TOUS;
|
191 |
$tab_am = $AbsenceMotif->consulter($cmd);
|
193 |
$tab_am = $AbsenceMotif->consulter($cmd);
|
Line 192... |
Line 194... |
192 |
|
194 |
|
193 |
// Récupération des absences pour un utilisateur à une date donnée
|
195 |
// Récupération des absences pour un utilisateur à une date donnée
|
194 |
$Absence = new Absence();
|
196 |
$Absence = new Absence();
|
195 |
$cmd = Absence::GA_ID_UTILISATEUR_DATE_DEB_FIN;
|
197 |
$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']);
|
198 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_gestion['sj_1']['mysql'], $aso_gestion['sj_7']['mysql']);
|
197 |
$tab_a = $Absence->consulter($cmd, $param);
|
199 |
$tab_a = $Absence->consulter($cmd, $param);
|
Line 215... |
Line 217... |
215 |
}
|
217 |
}
|
216 |
}
|
218 |
}
|
217 |
}
|
219 |
}
|
218 |
}
|
220 |
}
|
219 |
}
|
221 |
}
|
220 |
|
222 |
|
221 |
// Création de l'url de réponse du formulaire
|
223 |
// 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;
|
224 |
$aso_gestion['url_gestion_valider'] = 'index.php?action='.GTT_ACTION_GESTION_VALIDER.$url_sc_param_date;
|
Line 223... |
Line 225... |
223 |
|
225 |
|
224 |
//echo '<pre>ici '.print_r($aso_gestion['ab'], true).'la</pre>';
|
226 |
//echo '<pre>ici '.print_r($aso_gestion['ab'], true).'la</pre>';
|
225 |
$this->getRegistre()->ajouterDonnee('gestion', $aso_gestion);
|
227 |
$this->getRegistre()->ajouterDonnee('gestion', $aso_gestion);
|
226 |
$this->getRegistre()->ajouterDonnee('zone_calendrier', $aso_gestion);
|
228 |
$this->getRegistre()->ajouterDonnee('zone_calendrier', $aso_gestion);
|
Line 227... |
Line 229... |
227 |
}
|
229 |
}
|
228 |
|
230 |
|
Line 229... |
Line 231... |
229 |
public function verifierValider()
|
231 |
public function verifierValider()
|
Line 230... |
Line 232... |
230 |
{
|
232 |
{
|
231 |
|
233 |
|
232 |
}
|
234 |
}
|
233 |
|
235 |
|
Line 234... |
Line 236... |
234 |
public function executerValider()
|
236 |
public function executerValider()
|
235 |
{
|
237 |
{
|
236 |
// Création du Calendrier
|
238 |
// Création du Calendrier
|
237 |
$Calendrier = new Calendrier($_GET['jour'], null, $_GET['mois'], $_GET['annee']);
|
239 |
$Calendrier = new Calendrier($_GET['jour'], null, $_GET['mois'], $_GET['annee']);
|
238 |
|
240 |
|
239 |
// Récupération des info sur la semaine courrante
|
241 |
// Récupération des info sur la semaine courrante
|
240 |
$Week = new Calendar_Week($_GET['annee'], $_GET['mois'], $_GET['jour']);
|
242 |
$Week = new Calendar_Week($_GET['annee'], $_GET['mois'], $_GET['jour']);
|
241 |
$Week->build();
|
243 |
$Week->build();
|
242 |
$aso_jours = array();
|
244 |
$aso_jours = array();
|
243 |
$aso_semaine = array();
|
245 |
$aso_semaine = array();
|
244 |
$jours_w_semaine = array();
|
246 |
$jours_w_semaine = array();
|
245 |
foreach($Week->fetchAll() as $num => $j) {
|
247 |
foreach($Week->fetchAll() as $num => $j) {
|
246 |
$aso_semaine[$num]['mysql'] = $j->thisYear().'-'.sprintf("%02s", $j->thisMonth()).'-'.sprintf("%02s", $j->thisDay());
|
248 |
$aso_semaine[$num]['mysql'] = $j->thisYear().'-'.sprintf("%02s", $j->thisMonth()).'-'.sprintf("%02s", $j->thisDay());
|
247 |
$aso_jours[$aso_semaine[$num]['mysql']] = $num;
|
249 |
$aso_jours[$aso_semaine[$num]['mysql']] = $num;
|
248 |
|
250 |
|
249 |
// Initialisation de la variable pour la gestion des heures sup
|
251 |
// Initialisation de la variable pour la gestion des heures sup
|
250 |
$methode = 'getTdt'.$Calendrier->getNomJoursLong($num);
|
252 |
$methode = 'getTdt'.$Calendrier->getNomJoursLong($num);
|
251 |
$jours_w_semaine[$num] = array( 'act' => 0,
|
253 |
$jours_w_semaine[$num] = array( 'act' => 0,
|
252 |
'pre' => 0,
|
254 |
'pre' => 0,
|
Line 260... |
Line 262... |
260 |
$jours_w_semaine[$num]['tdt'] = 0;
|
262 |
$jours_w_semaine[$num]['tdt'] = 0;
|
261 |
}
|
263 |
}
|
262 |
}
|
264 |
}
|
Line 263... |
Line 265... |
263 |
|
265 |
|
264 |
// Récupération du temps de travail pour un utilisateur à une date donnée
|
266 |
// Récupération du temps de travail pour un utilisateur à une date donnée
|
265 |
$TravailProjet = new TravailProjet();
|
267 |
$TravailProjet = new TravailProjet();
|
266 |
$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
|
268 |
$cmd = TravailProjet::GTP_ID_UTILISATEUR_DATE_DEB_FIN;
|
267 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_semaine[1]['mysql'], $aso_semaine[7]['mysql']);
|
269 |
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $aso_semaine[1]['mysql'], $aso_semaine[7]['mysql']);
|
Line 268... |
Line 270... |
268 |
$tab_tp = $TravailProjet->consulter($cmd, $param);
|
270 |
$tab_tp = $TravailProjet->consulter($cmd, $param);
|
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']);
|
Line 323... |
Line 325... |
323 |
$tab_a = $Absence->consulter($cmd, $param);
|
325 |
$tab_a = $Absence->consulter($cmd, $param);
|
Line 395... |
Line 397... |
395 |
foreach ($jours_w_semaine as $c => $j) {
|
397 |
foreach ($jours_w_semaine as $c => $j) {
|
396 |
// Modifications existantes pour le jour courant
|
398 |
// Modifications existantes pour le jour courant
|
397 |
if (($j['pre'] != 0 || $j['act'] != 0) || ($j['act_a'] != 0 || $j['pre_a'] != 0)) {
|
399 |
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'];
|
400 |
$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'];
|
401 |
$heure_sup_act = ($j['tdt'] - ($j['act_a'] + $j['act'])) + $j['act_a'];
|
400 |
$heure_sup_dif = $heure_sup_act - $heure_sup_pre ;
|
402 |
$heure_sup_dif = $heure_sup_act - $heure_sup_pre ;
|
401 |
if ($j['mod'] == false) {// Première fois que l'on modifie le jour
|
403 |
if ($j['mod'] == false) {// Première fois que l'on modifie le jour
|
402 |
if ($heure_sup_act > 0) {
|
404 |
if ($heure_sup_act > 0) {
|
403 |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_act);
|
405 |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_act);
|
404 |
}
|
406 |
}
|
405 |
if ($heure_sup_act < 0) {
|
407 |
if ($heure_sup_act < 0) {
|
406 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
|
408 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_act);
|
407 |
}
|
409 |
}
|
408 |
} else {// Les heures sup ont déjà été comptabilisées
|
410 |
} else {// Les heures sup ont déjà été comptabilisées
|
409 |
if ($heure_sup_dif > 0) {
|
411 |
if ($heure_sup_dif > 0) {
|
410 |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_dif);
|
412 |
$Utilisateur->diminuerQuotaHeuresSup($heure_sup_dif);
|
411 |
}
|
413 |
}
|
412 |
if ($heure_sup_dif < 0) {
|
414 |
if ($heure_sup_dif < 0) {
|
413 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_dif);
|
415 |
$Utilisateur->augmenterQuotaHeuresSup($heure_sup_dif);
|
414 |
}
|
416 |
}
|
415 |
}
|
417 |
}
|
416 |
}
|
418 |
}
|
417 |
}
|
419 |
}
|
418 |
$Utilisateur->modifier();
|
420 |
$Utilisateur->modifier();
|
Line 419... |
Line 421... |
419 |
|
421 |
|
420 |
// 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
|
421 |
$GttCtrlActionIdentification = new GttCtrlActionIdentification($this->getRegistre());
|
423 |
$GttCtrlActionIdentification = new GttCtrlActionIdentification($this->getRegistre());
|
422 |
$GttCtrlActionIdentification->setSuivant('__defaut__');
|
424 |
$GttCtrlActionIdentification->setSuivant('__defaut__');
|
Line 423... |
Line 425... |
423 |
$this->setSuivant($GttCtrlActionIdentification);
|
425 |
$this->setSuivant($GttCtrlActionIdentification);
|
424 |
|
426 |
|
425 |
// Action suivante
|
427 |
// Action suivante
|
426 |
$this->setSuivant('__defaut__');
|
428 |
$this->setSuivant('__defaut__');
|
427 |
}
|
429 |
}
|
428 |
}
|
430 |
}
|