Voila un petit patch par rapport à l'usage des durées dans le plugin
projet :

la durée inscrite dans le champs durée effective dans une tache est
considérée comme une estimation de la durée de la tache ( je n'ai pas
changé le terme dans l'interface)
La durée estimée du projet est la somme des durée estimées des taches
La durée effective est la somme des durées effectives des tickets liés
au projet

J'ai rajoutés des deux champs dans le formulaire du projet

A voir

JCharles


--- ../../../orig/plugins/projet/trunk/inc/plugin_projet.projet.classes.php     
2008-08-30 14:16:07.000000000 +0200
+++ inc/plugin_projet.projet.classes.php        2008-08-30 16:37:24.000000000 
+0200
@@ -481,6 +481,11 @@
                        
showDateFormItem("end_date",$this->fields["end_date"],true,true);
                        echo "</td>";
                        echo "</tr>";
+//// START PROVECTIO
+                        echo "<tr><td>" . $LANGPROJET["projet"][75] . 
':</td><td>' . $this->getProjectForecast($ID) . '</td></tr>';
+                        echo "<tr><td>" . $LANGPROJET["projet"][72] . 
':</td><td>' . $this->getProjectDuration($ID) . '</td></tr>';
+//// END PROVECTIO
+
                        echo "</table>";
                        //end first row
                        
@@ -613,6 +618,54 @@
        return true;
                
        }
+
+       //// START PROVECTIO
+        /**
+         * Compute project real duration
+         *
+         [EMAIL PROTECTED] $ID ID of the project
+         [EMAIL PROTECTED] text duration of project
+        **/
+        function getProjectDuration($ID) {
+
+                global $DB;
+                $query = "select sum(realtime) from glpi_tracking where ID in 
(SELECT FK_device FROM glpi_plugin_projet_items where FK_projet = $ID);";
+                if ($result = $DB->query($query)) {
+                        $sum=$DB->result($result,0,0);
+                        if (is_null($sum)) return '00:00';
+                        return $this->getRealtime($sum);
+                } else {
+                        return '00:00';
+                }
+        }
+
+        /**
+         * Compute forecast duration
+         *
+         [EMAIL PROTECTED] $ID ID of the project
+         [EMAIL PROTECTED] text duration of project
+        **/
+        function getProjectForecast ($ID) {
+
+                global $DB;
+                $query = "SELECT SUM(realtime) FROM glpi_plugin_projet_tasks 
WHERE FK_projet=$ID";
+                if ($result = $DB->query($query)) {
+                        $sum=$DB->result($result,0,0);
+                        if (is_null($sum)) return '00:00';
+                        return $this->getRealtime($sum);
+                } else {
+                        return '00:00';
+                }
+        }
+
+        function getRealtime($realtime){
+                $hours=floor($realtime);
+                $minutes = round((($realtime-floor($realtime))*60));
+                $hours = str_pad($hours, 2, '0', STR_PAD_LEFT) . ':';
+                $minutes = str_pad($minutes, 2, '0', STR_PAD_LEFT);
+                return $hours . $minutes;
+        }
+//// END PROVECTIO
 }
 
-?>
\ Pas de fin de ligne à la fin du fichier.
+?>

_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev

Reply via email to