Bonjour,

Dans le cadre de notre activité, il nous arrive fréquemment de nous
déplacer entre les différentes entités et nous voulons garder la trace
de ces déplacements.
Malheureusement GLPI ne prévoit de champs pour stocker cette information.
Donc j'ai fait la modif en la calquant sur la gestion du temps.

Peut-être que cela vous intéressera.

JC Passard

diff -Naur ../glpi/inc/tracking.class.php ./inc/tracking.class.php
--- ../glpi/inc/tracking.class.php      2008-07-11 21:12:47.000000000 +0200
+++ ./inc/tracking.class.php    2008-08-16 18:13:11.000000000 +0200
@@ -613,6 +613,12 @@
                        $input["status"] = "assign";
                }
 
+//// START PROVECTIO
+               if(isset($input["deplacements"])) {
+                       $input["_deplacements"] = $input["deplacements"];
+               }
+//// END PROVECTIO
+
                if (isset($input["hour"])&&isset($input["minute"])){
                        $input["realtime"]=$input["hour"]+$input["minute"]/60;
                        $input["_hour"]=$input["hour"];
@@ -682,6 +688,16 @@
                        $already_mail=true;
                }
 
+//// START PROVECTIO
+               if ( isset($input["_deplacements"]) ) {
+                       $fup=new Followup();
+                        $type="new";
+                       $toadd=array("type"=>$type,"tracking"=>$newID);
+                       $toadd["deplacements"] = $input["_deplacements"];
+                       $fup->add($toadd);
+                        $already_mail=true;
+               }
+//// END PROVECTIO
                // Processing Email
                if ($CFG_GLPI["mailing"]&&!$already_mail)
                {
@@ -737,6 +753,29 @@
                }
        }
 
+//// START PROVECTIO
+       /**
+         * Update deplacements of the ticket based on deplacements of the 
followups
+         *
+         [EMAIL PROTECTED] $ID ID of the ticket
+         [EMAIL PROTECTED] boolean : success
+        **/
+        function updateDeplacements($ID) {
+                // update Status of Job
+
+                global $DB;
+                $query = "SELECT SUM(deplacements) FROM glpi_followups WHERE 
tracking = '$ID'";
+                if ($result = $DB->query($query)) {
+                        $sum=$DB->result($result,0,0);
+                        if (is_null($sum)) $sum=0;
+                        $query2="UPDATE glpi_tracking SET 
deplacements='".$sum."' WHERE ID='$ID'";
+                        $DB->query($query2);
+                        return true;
+                } else {
+                        return false;
+                }
+        }
+//// END PROVECTIO
        /**
         * Update date mod of the ticket
         *
@@ -1078,6 +1117,11 @@
                        if (in_array("realtime",$updates)) {
                                $job->updateRealTime($input["tracking"]);
                        }
+//// START PROVECTIO           
+                       if (in_array("deplacements",$updates)) {
+                                $job->updateDeplacements($input["tracking"]);
+                        }
+//// END PROVECTIO
                }
                
                if (isset($input["_plan"])){
diff -Naur ../glpi/inc/tracking.function.php ./inc/tracking.function.php
--- ../glpi/inc/tracking.function.php   2008-07-11 21:12:47.000000000 +0200
+++ ./inc/tracking.function.php 2008-08-16 18:13:11.000000000 +0200
@@ -584,6 +584,10 @@
                // Eigth column
 
                $eigth_column="<strong>".$data["name"]."</strong>&nbsp;";
+//// START PROVECTIO
+               $info = getRealtime($data['realtime'], 1) . '</strong> / ';
+                $info .= '<strong>' .str_replace(' ', '&nbsp;', 
str_pad($data["deplacements"],  3, ' ', STR_PAD_LEFT)) . '<strong><br>';
+//// END PROVECTIO
 
                if ($output_type==HTML_OUTPUT){
                        $eigth_column.= "<img alt='' 
src='".$CFG_GLPI["root_doc"]."/pics/aide.png' 
onmouseout=\"cleanhide('comments_tracking".$data["ID"]."')\" 
onmouseover=\"cleandisplay('comments_tracking".$data["ID"]."')\" >";
@@ -594,18 +598,20 @@
                        $eigth_column.=showFollowupsShort($data["ID"]);
                }
 
-               // Add link
+               // Add link   PROVECTIO : Ajout de $info dans eigth_column
                if ($_SESSION["glpiactiveprofile"]["interface"]=="central"){
                        if ($job->canShowTicket()) {
-                               $eigth_column="<a 
href=\"".$CFG_GLPI["root_doc"]."/front/tracking.form.php?ID=".$data["ID"]."\">$eigth_column</a>&nbsp;(".$job->numberOfFollowups().")";
+                               $eigth_column="$info<a 
href=\"".$CFG_GLPI["root_doc"]."/front/tracking.form.php?ID=".$data["ID"]."\">$eigth_column</a>&nbsp;(".$job->numberOfFollowups().")";
                        }
                }
                else {
-                       $eigth_column="<a 
href=\"".$CFG_GLPI["root_doc"]."/front/helpdesk.public.php?show=user&amp;ID=".$data["ID"]."\">$eigth_column</a>&nbsp;(".$job->numberOfFollowups(haveRight("show_full_ticket","1")).")";
+                       $eigth_column="$info<a 
href=\"".$CFG_GLPI["root_doc"]."/front/helpdesk.public.php?show=user&amp;ID=".$data["ID"]."\">$eigth_column</a>&nbsp;(".$job->numberOfFollowups(haveRight("show_full_ticket","1")).")";
                }
 
-
-               echo 
displaySearchItem($output_type,$eigth_column,$item_num,$row_num,$align_desc."width='300'");
+//// START PROVECTIO
+/* cosmetique : alignement en haut de cette colonne */
+               echo 
displaySearchItem($output_type,$eigth_column,$item_num,$row_num,$align_desc."valign='top'
 width='300'");
+//// END PROVECTIO
 
                // Finish Line
                echo displaySearchEndLine($output_type);
@@ -694,7 +700,10 @@
        }
 }
 
-function addFormTracking ($device_type=0,$ID=0, $target, $author, $group=0, 
$assign=0, $assign_group=0, $name='',$contents='',$category=0, 
$priority=3,$request_type=1,$hour=0,$minute=0) {
+//// STAR PROVECTIO
+/* ajout du champ $deplacements */
+function addFormTracking ($device_type=0,$ID=0, $target, $author, $group=0, 
$assign=0, $assign_group=0, $name='',$contents='',$category=0, 
$priority=3,$request_type=1,$hour=0,$minute=0, $deplacements=0) {
+//// END PROVECTIO
        // Prints a nice form to add jobs
 
        global $CFG_GLPI, $LANG,$CFG_GLPI,$REFERER,$DB;
@@ -775,9 +784,16 @@
        // Need comment right to add a followup with the realtime
        if (haveRight("comment_all_ticket","1")){
                echo "<tr  class='tab_bg_2'>";
+//// START PROVECTIO
+               echo "<td class='center'>";
+               echo $LANG["job"][46].":</td>";
+               echo "</td><td class='center'>";
+               dropdownInteger('deplacements',$deplacements,0,10);
+               echo "</td>";
+//// END PROVECTIO
                echo "<td class='center'>";
                echo $LANG["job"][20].":</td>";
-               echo "<td align='center' colspan='3'>";
+               echo "<td align='center'>";
                dropdownInteger('hour',$hour,0,100);
 
                echo $LANG["job"][21]."&nbsp;&nbsp;";
@@ -902,15 +918,17 @@
        echo "</div></form>";
 
 }
-
-function getRealtime($realtime){
+//// START PROVECTIO
+/* ajout du champ $t : si 0 alors $output= "h heures m minutes" sinon $output 
= "h:m" */
+function getRealtime($realtime, $t=0){
        global $LANG;   
-       $output="";
        $hour=floor($realtime);
-       if ($hour>0) $output.=$hour." ".$LANG["job"][21]." ";
-       $output.=round((($realtime-floor($realtime))*60))." ".$LANG["job"][22];
-       return $output;
+       $minutes = round((($realtime-floor($realtime))*60));
+       $hours = ($t) ? str_pad($hours, 2, '0', STR_PAD_LEFT) . ':' : ($hours > 
0) ? $hours . " " . $LANG["job"][21] . " " : '';
+       $minutes = ($t) ? str_pad($minutes, 2, '0', STR_PAD_LEFT) : $minutes . 
" " . $LANG["job"][22];
+       return $hours . $minutes;
 }
+//// END PROVECTIO
 
 function 
searchSimpleFormTracking($extended=0,$target,$status="all",$tosearch='',$search='',$group=-1,$showfollowups=0,$category=0){
 
@@ -1928,6 +1946,13 @@
                // Troisieme Colonne
                echo "<td class='top' width='20%'>";
                echo "<table border='0'>";
+               
+//// START PROVECTIO
+               echo "<tr><td class='left'>";
+                echo $LANG["job"][46].":</td><td>";
+                echo "<strong>".$job->fields["deplacements"]."</strong>";
+                echo "</td></tr>";
+//// END PROVECTIO
 
                echo "<tr><td class='left'>";
                echo $LANG["job"][20].":</td><td>";
@@ -2195,7 +2220,11 @@
        }
        else {  
                echo "<table class='tab_cadrehov'>";
-               echo 
"<tr><th>&nbsp;</th><th>".$LANG["common"][27]."</th><th>".$LANG["joblist"][6]."</th><th>".$LANG["job"][31]."</th><th>".$LANG["job"][35]."</th><th>".$LANG["common"][37]."</th>";
+
+//// START PROVECTIO
+/* ajout de la colonne $LANG["job"][46] */
+               echo 
"<tr><th>&nbsp;</th><th>".$LANG["common"][27]."</th><th>".$LANG["joblist"][6]."</th><th>".$LANG["job"][31]."</th><th>"
 . $LANG["job"][46] . "</th><th>" 
.$LANG["job"][35]."</th><th>".$LANG["common"][37]."</th>";
+//// END PROVECTIO
                if ($showprivate)
                        echo "<th>".$LANG["common"][77]."</th>";
                echo "</tr>";
@@ -2231,6 +2260,9 @@
                        if ($minute||!$hour)
                                echo "$minute ".$LANG["job"][22]."</td>";
 
+//// START PROVECTIO
+                       echo "<td class='left'>". $data["deplacements"] 
."</td>";
+//// END PROVECTIO
                        echo "<td>";
                        $query2="SELECT * from glpi_tracking_planning WHERE 
id_followup='".$data['ID']."'";
                        $result2=$DB->query($query2);
@@ -2347,12 +2379,17 @@
                echo "</tr>";
 
                if ($tID>0){
+//// START PROVECTIO
+                       echo "<tr><td>".$LANG["job"][46].":</td><td>";
+                       dropdownInteger('deplacements',0,0,10);
+                       echo "</td></tr>";
+//// END PROVECTIO
                        echo "<tr><td>".$LANG["job"][31].":</td><td>";
                        dropdownInteger('hour',0,0,100);
                        echo $LANG["job"][21]."&nbsp;&nbsp;";
                        dropdownInteger('minute',0,0,59);
                        echo $LANG["job"][22];
-                       echo "</tr>";
+                       echo "</td></tr>";
                }
 
                if (haveRight("show_planning","1")&&!$massiveaction){
@@ -2460,8 +2497,11 @@
                        echo "</tr>";
                } 
 
-
-
+//// START PROVECTIO
+               echo "<tr><td>".$LANG["job"][46].":</td><td>";
+               
dropdownInteger('deplacements',$fup->fields["deplacements"],0,10);
+               echo "</td></tr>";
+//// END PROVECTIO
                echo "<tr><td>".$LANG["job"][31].":</td><td>";
                $hour=floor($fup->fields["realtime"]);
                $minute=round(($fup->fields["realtime"]-$hour)*60,0);
diff -Naur ../glpi/locales/fr_FR.php ./locales/fr_FR.php
--- ../glpi/locales/fr_FR.php   2008-07-11 21:12:47.000000000 +0200
+++ ./locales/fr_FR.php 2008-08-16 16:25:59.000000000 +0200
@@ -648,6 +648,9 @@
 $LANG["job"][43]="Coût total"; 
 $LANG["job"][44]="Source de la demande"; 
 $LANG["job"][45]="Ajouter un suivi"; 
+//// START PROVECTIO
+$LANG["job"][46]="Déplacements";
+//// END PROVECTIO
 
 $LANG["joblist"][0]="Statut"; 
 $LANG["joblist"][1]="Seulement les miens"; 

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

Reply via email to