/trunk/presentation/preferences.tpl.html |
---|
12,11 → 12,12 |
<tr> |
<th> </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'] : ' ' ;?></td> |
<td class="pr_dafi"><?=($projet['dafi'] != '0000-00-00') ? $projet['dafi'] : ' ' ;?></td> |
<td class="pr_dupr"><?=(!empty($projet['dupr'])) ? $projet['dupr'] : ' ' ;?></td> |
<td class="pr_dufi"><?=(!empty($projet['dufi'])) ? $projet['dufi'] : ' ' ;?></td> |
<!--<td class="pr_dufi"><?=(!empty($projet['dufi'])) ? $projet['dufi'] : ' ' ;?></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); |
} |