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> "; +//// START PROVECTIO + $info = getRealtime($data['realtime'], 1) . '</strong> / '; + $info .= '<strong>' .str_replace(' ', ' ', 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> (".$job->numberOfFollowups().")"; + $eigth_column="$info<a href=\"".$CFG_GLPI["root_doc"]."/front/tracking.form.php?ID=".$data["ID"]."\">$eigth_column</a> (".$job->numberOfFollowups().")"; } } else { - $eigth_column="<a href=\"".$CFG_GLPI["root_doc"]."/front/helpdesk.public.php?show=user&ID=".$data["ID"]."\">$eigth_column</a> (".$job->numberOfFollowups(haveRight("show_full_ticket","1")).")"; + $eigth_column="$info<a href=\"".$CFG_GLPI["root_doc"]."/front/helpdesk.public.php?show=user&ID=".$data["ID"]."\">$eigth_column</a> (".$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]." "; @@ -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> </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> </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]." "; 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