Rev 177 | Rev 196 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | 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__');
}
}
?>