Subversion Repositories Applications.gtt

Compare Revisions

Ignore whitespace Rev 188 → Rev 189

/trunk/presentation/preferences.tpl.html
12,11 → 12,12
<tr>
<th>&nbsp;</th>
<th>Nom</th>
<th>Description</th>
<!--<th>Description</th>-->
<th>Date début</th>
<th>Date fin</th>
<th>Durée prévue (j)</th>
<th>Durée financée (j)</th>
<!--<th>Durée financée (j)</th>-->
<th>Temps perso. passé (j)</th>
<th>Avancement (j)</th>
<th>Avancement (%)</th>
</tr>
29,12 → 30,22
<tr class="<?=$ligne ; $ligne = ($ligne == "impair") ? "pair" : "impair" ;?>">
<td class="check"><input id="pr:<?=$projet['id'];?>" name="pr:<?=$projet['id'];?>" value="<?=$projet['valeur'];?>" type="checkbox" <?=$projet['coche']?'checked="checked"':'';?>/></td>
<td class="pr_no"><?=$projet['no'];?></td>
<td class="pr_de"><?=$projet['de'];?></td>
<!--<td class="pr_de"><?=$projet['de'];?></td>-->
<td class="pr_dade"><?=($projet['dade'] != '0000-00-00') ? $projet['dade'] : '&nbsp;' ;?></td>
<td class="pr_dafi"><?=($projet['dafi'] != '0000-00-00') ? $projet['dafi'] : '&nbsp;' ;?></td>
<td class="pr_dupr"><?=(!empty($projet['dupr'])) ? $projet['dupr'] : '&nbsp;' ;?></td>
<td class="pr_dufi"><?=(!empty($projet['dufi'])) ? $projet['dufi'] : '&nbsp;' ;?></td>
<!--<td class="pr_dufi"><?=(!empty($projet['dufi'])) ? $projet['dufi'] : '&nbsp;' ;?></td>-->
 
<!-- colonne "avancement personnel en jours" -->
<td>
<?= ($projet['tpp'] === null ? '0' : ($projet['tpp'] == 0 ? 'moins de 1j' : $projet['tpp'])) ?>
<?php
// pourcentage de temps sur ce projet p/r au temps total passé par l'équipe
$ptp = floor((empty($projet['tpp']) ? 0 : (($projet['tpp'] * 100) / $projet['avc'])));
?>
(<?= $ptp ?> %)
</td>
 
<!-- colonne "avancement en jours" -->
<?php
// calculs utiles pour la suite
/trunk/bibliotheque/metier/TravailProjet.class.php
53,6 → 53,7
const GTP_ID_MAX_DATE_TRAVAIL = 'TRAVAILPROJET_ID_MAX_DATE_TRAVAIL';
const GTP_PROJET = 'TRAVAILPROJET_ID_PROJET';
const GTP_UTILISATEUR = 'TRAVAILPROJET_ID_UTILISATEUR';
const GTP_UTILISATEUR_SOMME_TEMPS_PAR_PROJET = 'TRAVAILPROJET_ID_UTILISATEUR_SOMME_TEMPS_PAR_PROJET';
/*** Attributs : */
private $id_utilisateur;
171,6 → 172,28
}
return parent::consulter($requete, $parametres, $instancier);
}
 
/**
* Retourne la somme des heures travaillées pour chaque projet, pour un
* utilisateur donné
*
* @WARNING Fonction plus pratique que d'utiliser le DAO (mais c'est MAL !)
*
* @param int $idUtilisateur l'identifiant de l'utilisateur
*/
public function getTempsTravailUtilisateurParProjet($idUtilisateur) {
 
$requete = 'SELECT gtp_id_utilisateur '.
', gtp_id_projet '.
', sum(gtp_duree) AS temps_total_heures '.
'FROM ' . GTT_BDD_PREFIXE . 'gestion_travail_projet '.
'WHERE gtp_id_utilisateur = ' . $idUtilisateur . ' '.
'GROUP BY gtp_id_projet ';
 
$resultat = $GLOBALS['db']->getAll($requete);
 
return $resultat;
}
}
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
/trunk/actions/GttCtrlActionPreferences.class.php
8,17 → 8,38
 
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);
// Parcourt du tableau de 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();
25,7 → 46,8
$cmd = UtilisateurAProjet::GUAP_ID;
$param = array($GLOBALS['_GTT_']['Utilisateur']->getIdUtilisateur(), $Projet->getIdProjet());
$coche = false;
if ($present = $UtilisateurAProjet->consulter($cmd, $param)) {
$present = $UtilisateurAProjet->consulter($cmd, $param);
if ($present) {
$coche = true;
}
43,6 → 65,7
'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);
49,7 → 72,7
}
ksort($aso_preferences['preferences']);
}
 
//echo '<pre>'.print_r($aso_preferences, true).'</pre>';
$this->getRegistre()->ajouterDonnee('preferences', $aso_preferences);
}