Subversion Repositories Applications.gtt

Rev

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

<?php
class GttCtrlActionPreferences extends aControlleurAction {

    public function __construct(Registre $Registre)
    {
        $Registre->ajouterEspace('Preferences', 'preferences');
    }

    public function executer()
    {
                // Liste des projets
        $aso_preferences = array();
        $this->getRegistre()->setTitre('Modifier mes préférences');
        $Projet = new Projet();
        $tab_projets = $Projet->consulter(Projet::GP_TOUS);

                // Temps de travail perso sur chaque projet
                $aso_temps_perso = array();
                $TravailProjet = new TravailProjet();
                $utilisateurEnCours = $GLOBALS['_GTT_']['Utilisateur'];
                $tab_temps_perso = $TravailProjet->getTempsTravailUtilisateurParProjet($utilisateurEnCours->getIdUtilisateur());
        //echo '<pre>'.print_r($tab_temps_perso, true).'</pre>';

                if (false === $tab_temps_perso) {
                        $aso_preferences['messages'][] = "Impossible de lire le temps de travail personnel";
                } else {
                        // Parcours du tableau de temps de travail perso par projet
                foreach ($tab_temps_perso as $tp) {
                                $aso_temps_perso[$tp[1]] = array(
                                        'temps_heures' => $tp[2],
                                        'temps_jours' => floor(($tp[2] / 7))
                                );
                }
                }
                //echo '<pre>'.print_r($aso_temps_perso, true).'</pre>';

                if (false == $tab_projets) {
                        $aso_preferences['messages'][] = "Veuillez commencer par ajouter des catégories de projet et des projets !";
                        $aso_preferences['preferences'] = false;
                } else {
                $aso_preferences['nbre_projets'] = count($tab_projets);
                        // Parcours du tableau de projets
                foreach ($tab_projets as $Projet) {
                                // Vérification de la présence du projet dans les préférences de l'utilisateur
                                $UtilisateurAProjet = new UtilisateurAProjet();
                                $cmd = UtilisateurAProjet::GUAP_ID;
                                $param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $Projet->getIdProjet());
                                $coche = false;
                                $present = $UtilisateurAProjet->consulter($cmd, $param);
                                if ($present) {
                                        $coche = true;
                                }
       
                                // Récupération de la catégorie du projet
                                $ProjetCategorie = new ProjetCategorie();
                                $Categorie = current($ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $Projet->getCeCategorie()));
       
                                // Récupération de toutes les infos
                                $aso_preferences['preferences'][$Categorie->getLibelle()][] = array(
                                        'id' => $Projet->getIdProjet(),
                                        'valeur' => $Projet->getIdProjet(),
                                        'no' => $Projet->getNom(),
                                        'de' => $Projet->getDescription(),
                                        'dade' => $Projet->getDateDebut(),
                                        'dafi' => $Projet->getDateFin(),
                                        'dupr' => $Projet->getDureePrevue(),
                                        'dufi' => $Projet->getDureeFinance(),
                                        'tpp' => $aso_temps_perso[$Projet->getIdProjet()]['temps_jours'], // temps perso. passé
                                        'av' => $Projet->getAvancement(),
                                        'avc' => $Projet->getAvancementCalcule(), // trop de la boulette !
                                        'coche' => $coche);
                }
                ksort($aso_preferences['preferences']);
                }

        //echo '<pre>'.print_r($aso_preferences, true).'</pre>';
                $this->getRegistre()->ajouterDonnee('preferences', $aso_preferences);
    }

    public function executerValider()
    {
        // Mise à jour des Préférences
        $UtilisateurAProjet = new UtilisateurAProjet();
        $UtilisateurAProjet->setIdUtilisateur($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
        $UtilisateurAProjet->supprimer();
        //echo '<pre>'.print_r($_POST, true).'</pre>';
        if (isset($_POST['pr'])) {
                foreach ($_POST['pr'] as $pr_id) {
                        $UtilisateurAProjet = new UtilisateurAProjet();
                                $UtilisateurAProjet->setIdUtilisateur($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur());
                                $UtilisateurAProjet->setIdProjet($pr_id);
                                $UtilisateurAProjet->ajouter();
                }
        }
       
        // Action suivante
        $this->setSuivant('__defaut__');
    }
}
?>