| 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 |
}
|