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
[email protected]
https://mail.gna.org/listinfo/glpi-dev