Subversion Repositories Applications.gtt

Rev

Rev 192 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
10 jpm 1
<?php
11 jpm 2
class GttCtrlActionPreferences extends aControlleurAction {
10 jpm 3
 
11 jpm 4
    public function __construct(Registre $Registre)
10 jpm 5
    {
11 jpm 6
        $Registre->ajouterEspace('Preferences', 'preferences');
10 jpm 7
    }
46 jpm 8
 
11 jpm 9
    public function executer()
10 jpm 10
    {
189 mathias 11
                // Liste des projets
10 jpm 12
        $aso_preferences = array();
103 jpm 13
        $this->getRegistre()->setTitre('Modifier mes préférences');
10 jpm 14
        $Projet = new Projet();
15
        $tab_projets = $Projet->consulter(Projet::GP_TOUS);
46 jpm 16
 
189 mathias 17
                // Temps de travail perso sur chaque projet
18
                $aso_temps_perso = array();
19
                $TravailProjet = new TravailProjet();
20
                $utilisateurEnCours = $GLOBALS['_GTT_']['Utilisateur'];
21
                $tab_temps_perso = $TravailProjet->getTempsTravailUtilisateurParProjet($utilisateurEnCours->getIdUtilisateur());
22
        //echo '<pre>'.print_r($tab_temps_perso, true).'</pre>';
23
 
195 mathias 24
                if (false === $tab_temps_perso) {
189 mathias 25
                        $aso_preferences['messages'][] = "Impossible de lire le temps de travail personnel";
26
                } else {
27
                        // Parcours du tableau de temps de travail perso par projet
28
                foreach ($tab_temps_perso as $tp) {
29
                                $aso_temps_perso[$tp[1]] = array(
30
                                        'temps_heures' => $tp[2],
31
                                        'temps_jours' => floor(($tp[2] / 7))
32
                                );
33
                }
34
                }
35
                //echo '<pre>'.print_r($aso_temps_perso, true).'</pre>';
36
 
95 jpm 37
                if (false == $tab_projets) {
103 jpm 38
                        $aso_preferences['messages'][] = "Veuillez commencer par ajouter des catégories de projet et des projets !";
95 jpm 39
                        $aso_preferences['preferences'] = false;
40
                } else {
41
                $aso_preferences['nbre_projets'] = count($tab_projets);
189 mathias 42
                        // Parcours du tableau de projets
95 jpm 43
                foreach ($tab_projets as $Projet) {
103 jpm 44
                                // Vérification de la présence du projet dans les préférences de l'utilisateur
95 jpm 45
                                $UtilisateurAProjet = new UtilisateurAProjet();
46
                                $cmd = UtilisateurAProjet::GUAP_ID;
47
                                $param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $Projet->getIdProjet());
48
                                $coche = false;
189 mathias 49
                                $present = $UtilisateurAProjet->consulter($cmd, $param);
50
                                if ($present) {
95 jpm 51
                                        $coche = true;
52
                                }
53
 
103 jpm 54
                                // Récupération de la catégorie du projet
95 jpm 55
                                $ProjetCategorie = new ProjetCategorie();
56
                                $Categorie = current($ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $Projet->getCeCategorie()));
57
 
103 jpm 58
                                // Récupération de toutes les infos
95 jpm 59
                                $aso_preferences['preferences'][$Categorie->getLibelle()][] = array(
60
                                        'id' => $Projet->getIdProjet(),
61
                                        'valeur' => $Projet->getIdProjet(),
109 jpm 62
                                        'no' => $Projet->getNom(),
63
                                        'de' => $Projet->getDescription(),
64
                                        'dade' => $Projet->getDateDebut(),
65
                                        'dafi' => $Projet->getDateFin(),
66
                                        'dupr' => $Projet->getDureePrevue(),
67
                                        'dufi' => $Projet->getDureeFinance(),
189 mathias 68
                                        'tpp' => $aso_temps_perso[$Projet->getIdProjet()]['temps_jours'], // temps perso. passé
109 jpm 69
                                        'av' => $Projet->getAvancement(),
177 mathias 70
                                        'avc' => $Projet->getAvancementCalcule(), // trop de la boulette !
95 jpm 71
                                        'coche' => $coche);
72
                }
73
                ksort($aso_preferences['preferences']);
74
                }
189 mathias 75
 
10 jpm 76
        //echo '<pre>'.print_r($aso_preferences, true).'</pre>';
11 jpm 77
                $this->getRegistre()->ajouterDonnee('preferences', $aso_preferences);
10 jpm 78
    }
46 jpm 79
 
11 jpm 80
    public function executerValider()
10 jpm 81
    {
103 jpm 82
        // Mise à jour des Préférences
10 jpm 83
        $UtilisateurAProjet = new UtilisateurAProjet();
84
        $UtilisateurAProjet->setIdUtilisateur($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
85
        $UtilisateurAProjet->supprimer();
86
        //echo '<pre>'.print_r($_POST, true).'</pre>';
95 jpm 87
        if (isset($_POST['pr'])) {
88
                foreach ($_POST['pr'] as $pr_id) {
89
                        $UtilisateurAProjet = new UtilisateurAProjet();
90
                                $UtilisateurAProjet->setIdUtilisateur($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
91
                                $UtilisateurAProjet->setIdProjet($pr_id);
92
                                $UtilisateurAProjet->ajouter();
93
                }
10 jpm 94
        }
95 jpm 95
 
10 jpm 96
        // Action suivante
97
        $this->setSuivant('__defaut__');
98
    }
99
}
195 mathias 100
?>