You are not logged in.
Bonjour,
L’idée était d’avoir la possibilité :
-d’attribuer une date limite d’intervention pour certains tickets,
-de pouvoir modifier cette date à tous moment et
- de l’afficher également dans le corps des mails pour le suivi
Et ça y est .. Ça marche enfin ..
Comme j’ai eu pas mal de questions dernièrement de personnes intéressés par l’ajout d’une date Limite à leur tickets , j’en profite pour poster ici comment j’ai fait, j’espère que ça aidera certains
***
Pour commencer dans la base de données GLPI j’ai ajouté dans la table "glpi_tracking" un champ "Deadate" en suivant le modèle "date" et en mettant à valeur par défaut "0000-00-00 "au lieu de NULL
Pourquoi ? Tous simplement parsque je veux que si je ne met pas de date limite j’ai "0000-00-00" par défaut.
Ensuite dans « glpi\locales\fr_FR.php » j’ajoute ceci :
$lang["common"][49]="Date Limite";
Pour l’affichage dans la console principale dans "Assistance--> Helpdesk" d’un champ supplémentaire permettant d'ajouter une date limite
Dans glpi\inc\tracking.function.php dans la fonction addFormTracking je repère la partie du code qui est responsable de l’affichage de la date et comme je veux avoir en dessous de la date un autre champ « Date limite » j’ajoute le code sivant:(en bleu)
if (haveRight("update_ticket","1")){
echo "<tr class='tab_bg_2'><td align='center'>".$lang["common"][27].":</td>";
echo "<td align='center' class='tab_bg_2'>";
showCalendarForm("form_ticket","date",date("Y-m-d H:i"),0,1);
echo "</td>";echo "<td align='center'>".$lang["job"][44].":</td>";
echo "<td align='center'>";
$request_type=1;
if (isset($_POST["request_type"])) $request_type=$_POST["request_type"];
dropdownRequestType("request_type",$request_type);
echo "</td></tr>";
}
//ajout pour Date Limite dans la console glpi assistance--> Helpdeskif (haveRight("update_ticket","1")){
echo "<tr class='tab_bg_2'>";
echo "<td align='center'>";
echo $lang["common"][49].":</td>";
echo "<td align='center' colspan='3'>";
ShowCalendarForm("form_ticket","Deadate",date("00-00-00"),0,1);
echo "</td></tr>";
}
//fin ajout pour date limite
Dans le même fichier et la même fonction, afin d'obtenir un champ "Date Limite" mais cette fois dans la partie "Assistance-->suivi" de la console GLPI
j'ajoute le code suivant (en bleu)
// Deuxième colonne
echo "<td valign='top' width='33%'>";echo "<table border='0'>";
echo "<tr><td align='right'>";
echo $lang["job"][44].":</td><td>";
if ($canupdate)
dropdownRequestType("request_type",$job->fields["request_type"]);
else
echo getRequestTypeName($job->fields["request_type"]);
echo "</td></tr>";
//ajout pour date limite dans la console partie suivi des tickets
echo "<tr><td align='right'>";
echo $lang["common"][49].":</td><td>";
showCalendarForm("form_ticket","Deadate",convDateTime($job->fields["Deadate"]),0,1);
echo "</td></tr>";
// fin ajout pour date limite
Dans tracking.class.php dans la fonction "textDescription()" voici le code à ajouter:
if($format=="html"){
$filename = "E:/Program Files/OCS Inventory NG/xampp/htdocs/TEST/files/mail.tpl";
$handle = fopen ($filename, "r");
$message = fread ($handle, filesize ($filename));
fclose ($handle);$message = ereg_replace("##title##",$lang["mailing"][5],$message);
$author=$this->getAuthorName();
if (empty($author)) $author=$lang["mailing"][108];
$message = ereg_replace("##author##",$author,$message);$message = ereg_replace('##date##',convDateTime($this->fields["date"]),$message);
//ajout pour date limite
$message = ereg_replace('##Deadate##',convDateTime($this->fields["Deadate"]),$message);
//fin ajout pour date limite$message = ereg_replace('##request##',getRequestTypeName($this->fields["request_type"]),$message);
$message = ereg_replace('##equipment##',$name,$message);
$message = ereg_replace('##status##',getStatusName($this->fields["status"]),$message);
$assign=getAssignName($this->fields["assign"],USER_TYPE);
if($assign=="[Nobody]")
$assign=$lang["mailing"][105];
$message = ereg_replace('##assign##',$assign,$message);
$message = ereg_replace('##priority##',getPriorityName($this->fields["priority"]),$message);
if ($this->fields["device_type"]!=SOFTWARE_TYPE)
$message = ereg_replace('##contact##',$contact,$message);if ($this->fields["emailupdates"]=="yes"){
$message = ereg_replace('##emailupdate##',$lang["choice"][1],$message);
}else{
$message = ereg_replace('##emailuptade##',$lang["choice"][0],$message);
}if (isset($this->fields["category"])&&$this->fields["category"]){
$message = ereg_replace('##category##',getDropdownName("glpi_dropdown_tracking_category",$this->fields["category"]),$message);
}else{
$message = ereg_replace('##category##',$lang["mailing"][100],$message);
}$message = ereg_replace('##content##',nl2br($this->fields["contents"]),$message);
}
Et pour finir, comme j’utilise un template pour personnaliser mes mails dans glpi\files\mail.tpl je modifie le corps du mail pour que je puisse avoir la date limite de chaque intervention en ajoutant ceci
<div class="boxcontent">
<h1><u> Description du ticket </u> <br/></h1>
<p>
Date début : ##date##<br />
Date Limite : ##Deadate## <br/>
Auteur : ##author##<br/>
attribué : ##assign##<br />
Priorité : ##priority##<br />
Contact : ##contact## <br />
Suivi par email : ##emailupdate## <br />
Catégorie : ##category##<br />
Contenu :
<div id='contents'>##content##</div>
</p>
</div>
Voilàa me concernant ça marche nickel
Cordialement
Last edited by kitshoupi (2007-11-19 10:01:50)
Configuration: Windows server 2003, XAMPP 1.5.5, Glpi 0.68.3, OCS NG 1.0.1, MySql 5.0.27
Postes Clients:
Windows xp, IE 6, Agent ocs 4.0.3.2
Offline
Merci du retour pour ceux que ça peut intérésser.
La question qui me titille, c'est à que faites vous concrètement de cette information de date limite ?
S'agit-il juste d'une politique d'affichage ? etc...
En fait j'aurai tendance à relier cette fonctionnalité avec la gestion des SLA.
JMD / Jean-Mathieu Doléans - Glpi-project.org - Association Indepnet
Apportez votre pierre au projet GLPI : Soutenir
Offline
Salut,
Je suis désolé mais je ne sais pas ce que c’est la gestion des SLA !? (En même temps je suis un apprenti et un apprenti est la pour apprendre ^^)
Concernant l’utilisation de l’information de la date limite, c’est uniquement pour mieux organiser nos interventions
Mon responsable à remarquer que les techniciens n’ont pas forcement la même notion des priorités que lui ou que les utilisateurs ce qui est normal ! Donc pour mieux gérer nos planning une date imite pour les interventions aide beaucoup, si par exemple un utilisateur met dans son commentaire qui fait plus de 10lignes avant le « 24/12/2007 » le technicien pourrais zapper ce détail (c’est déjà arrivé ) donc l’affichage de la date limite dans la console et dans les tickets est plus sûr, disant que c’est plus parlant
Après je ne sais pas comment je pourrais exploiter cette information (je trouverai bien des idées)
Aplus
Configuration: Windows server 2003, XAMPP 1.5.5, Glpi 0.68.3, OCS NG 1.0.1, MySql 5.0.27
Postes Clients:
Windows xp, IE 6, Agent ocs 4.0.3.2
Offline
Le SLA (Service Level Agreement) est un contrat ou un accord entre un "client" (au sens large) et un service informatique.
Exemple : une imprimante qui tombe doit être réparée dans les 2 heures.
Etc...
Je vous invite à faire des recherches sur google avec des mots clés comme SLA et ITII , vous trouverez des explications plus complètes.
JMD / Jean-Mathieu Doléans - Glpi-project.org - Association Indepnet
Apportez votre pierre au projet GLPI : Soutenir
Offline
Merci, c'est exactement ce que je cherchais, je dois encore trouver comment l'ajouter dans la liste des suivis pour pouvoir faire un tri sur les dates limites et cela sera parfait.
Nous organisons également nos interventions sur base d'une date limite car nous n'avons pas (encore) de sla.
Merci pour l'information
W2K3
Xampp
OCS ver4100
GLPI 0.78.1
Offline
J'avais quelques problèmes au niveau des suivis, la date limite n'était pas affichée correctement et le résultat était des dates bizarre 1936 etc... j'ai donc du modifier le code de la manière suivante. Ceci est peut-être du a une configuration différente chez moi mais je ne suis peut-être pas le seul.
Je me suis permis de reprendre une partie du post de kitshoupi, il était déjà bien détaillé.
Dans glpi\inc\tracking.function.php dans la fonction addFormTracking
afin d'obtenir un champ "Date Limite" mais cette fois dans la partie "Assistance-->suivi" de la console GLPI on ajoute le code suivant (en bleu) mais j'ai supprimé la partie en rouge (le format de la date)
// Deuxième colonne
echo "<td valign='top' width='33%'>";echo "<table border='0'>";
echo "<tr><td align='right'>";
echo $lang["job"][44].":</td><td>";
if ($canupdate)
dropdownRequestType("request_type",$job->fields["request_type"]);
else
echo getRequestTypeName($job->fields["request_type"]);
echo "</td></tr>";
//ajout pour date limite dans la console partie suivi des tickets
echo "<tr><td align='right'>";
echo $lang["common"][49].":</td><td>";
showCalendarForm("form_ticket","Deadate",convDateTime($job->fields["Deadate"]),0,1);
echo "</td></tr>";
// fin ajout pour date limite
Idem dans le fichier tracking.class.php
//ajout pour date limite
$message = ereg_replace('##Deadate##',convDateTime($this->fields["Deadate"]),$message);
//fin ajout pour date limite
Voilà j'espère avoir apporté une toute petite pierre à l'édifice.
jf
Last edited by crazymr (2007-11-21 17:06:35)
W2K3
Xampp
OCS ver4100
GLPI 0.78.1
Offline
J'ai ajouté les lignes suivantes dans le fichier tracking.function.php pour avoir la date limite dans la liste des tickets (suivi) et pouvoir faire un tri sur cette date limite. Le code en bleu est ajouté.
J'ai d'abord ajouté une variable language pour le titre de la colonne "infos" et "date limite" dans le fichier fr_FR.php
$lang["common"][50]="Infos";
$lang["common"][49]="Date Limite";
puis j'ai modifié le fichier tracking.function.php pour ajouter les titres des colonnes
$items=array(
$lang["joblist"][0]=>"glpi_tracking.status",
$lang["common"][27]=>"glpi_tracking.date",
$lang["joblist"][2]=>"glpi_tracking.priority",
$lang["common"][37]=>"author.name",
$lang["joblist"][4]=>"assign.name",
$lang["common"][1]=>"glpi_tracking.device_type,glpi_tracking.computer",
$lang["common"][36]=>"glpi_dropdown_tracking_category.completename",
$lang["joblist"][6]=>"glpi_tracking.contents",
// section pour date limite
$lang["common"][50]=>"",
$lang["common"][49]=>"glpi_tracking.Deadate",
// fin section date limite
);
Enfin toujours dans le même fichier j'ai ajouté une dixième colonne (toujours en bleu)
// Nineth column
$nineth_column="";
// Job Controls
if ($_SESSION["glpiprofile"]["interface"]=="central"){
if (!haveRight("show_ticket","1")&&$job->fields["author"]!=$_SESSION["glpiID"]&&$job->fields["assign"]!=$_SESSION["glpiID"]&&(!haveRight("show_group_ticket",1)||!in_array($job->fields["FK_group"],$_SESSION["glpigroups"])))
$nineth_column.=" ";
else
$nineth_column.="<a href=\"".$cfg_glpi["root_doc"]."/front/tracking.form.php?ID=".$job->fields["ID"]."\"><strong>".$lang["joblist"][13]."</strong></a> (".$job->numberOfFollowups().")";
}
else
$nineth_column.="<a href=\"".$cfg_glpi["root_doc"]."/front/helpdesk.public.php?show=user&ID=".$job->fields["ID"]."\">".$lang["joblist"][13]."</a> (".$job->numberOfFollowups(haveRight("show_full_ticket","1")).")";echo displaySearchItem($output_type,$nineth_column,$item_num,$row_num,0,$align." width='40'");
// affichage dixieme colonne date limite dans assistance - suivi
// Tenth Column
$tenth_col=convDateTime($job->fields["Deadate"]);
echo displaySearchItem($output_type,$tenth_col,$item_num,$row_num,0,$align."width='100'");
// fin section affichage date limite dans assistance - suivi
Last edited by crazymr (2007-11-21 18:08:06)
W2K3
Xampp
OCS ver4100
GLPI 0.78.1
Offline
Salut,
Merci également pour ton retour , Je viens de le tester et ça marche
Cordialement
Configuration: Windows server 2003, XAMPP 1.5.5, Glpi 0.68.3, OCS NG 1.0.1, MySql 5.0.27
Postes Clients:
Windows xp, IE 6, Agent ocs 4.0.3.2
Offline
Quelqu'un pour le mettre dans le WIKI (si ce n'est deja fait) ..
FAudra que je test ça, je me permet donc de m'inscrire sur ce post ^^
• GLPI version 9.5.6
• FusionInventory 9.5+3.0
Offline
Cette modification fonctionne également sur la 0.70.1
W2K3
Xampp
OCS ver4100
GLPI 0.78.1
Offline
Bonjour,
Merci au contributeur pour son code ..., nous allons tester cela.
Est-il envisageable (envisagé) que cet ajout qui m'apparait indispensable pour la gestion d'une équipe soit intégré à une version pour éviter les bidouillages toujours périlleux (nécessiter de tester à chaque version) ?
Merci
Offline
Notre demande a été intégrée au projet de gestion des SLA dont le concept est proche-quoique plus complexe, si cela vous est utile, n'hésitez pas à vous signaler : http://glpi-project.org/forum/viewtopic.php?id=10057
Ayant eu l'adaptation à faire à la version 0.70.2 je vous livre ma synthèse en espérant que cela serve, et en remerciant les prédécesseurs qui m'ont permis de le faire.
PS : je n'ai pas eu besoin de faire de modifications dans tracking.class.php, est-ce indispensable ?
-----------
Modifications à GLPI 0.70.2 pour intégrer les dates d'échéances :
1 – dans la base de données, avec phpmyadmin, ajouter un champ en fin de la base glpi_tracking
appeler ce champ Deadate, de type date, avec comme valeur par défaut 0000-00-00
2 - dans glpi/locales/fr_FR.php rechercher le dernier $lang[« common »] ajouter :
$LANG["common"][64]="Info(s)";
$LANG["common"][65]="Date Echeance";
3 – dans glpi/inc/tracking.function.php
3.1 – pour avoir le titre affiché, dans la function commonTrackingListHeader ajouter :
// ajout date echeance
$LANG["common"][64]=>"",
$LANG["common"][65]=>"glpi_tracking.Deadate",
// fin ajout date echeance
après :
$LANG["common"][57]=>"glpi_tracking.name",
3.2 – pour avoir la date limite dans le suivi, dans la function showJobDetails avant la ligne : // Finish Line , ajouter les lignes suivantes :
// affichage dixieme colonne date echeance dans assistance - suivi
// Tenth Column
$tenth_col=convDateTime($job->fields["Deadate"]);
echo displaySearchItem($output_type,$tenth_col,$item_num,$row_num,0,$align."width='100'");
// fin section affichage date echeance dans assistance - suivi
3.3 – pour avoir la date dans le detail , ajouter les lignes suivantes dans la function addFormTracking avant la ligne : // Need comment right to add a followup with the realtime
if (haveRight("update_ticket","1")){
echo "<tr class='tab_bg_2'>";
echo "<td align='center'>";
echo $LANG["common"][65].":</td>";
echo "<td align='center' colspan='3'>";
showCalendarForm("form_ticket","Deadate",date("Y-m-d H:i"),0,1);
echo "</td></tr>";
}
3.4 – ajouter les lignes suivantes dans la function showJobDetails :
//ajout date echeance dans la console partie suivi des tickets
echo "<tr><td align='right'>";
echo $LANG["common"][65].":</td><td>";
showCalendarForm("form_ticket","Deadate",Date($job->fields["Deadate"]),0,1);
echo "</td></tr>";
// fin ajout date echeance
après le paragraphe :
echo $LANG["job"][44].":</td><td>";
if ($canupdate)
dropdownRequestType("request_type",$job->fields["request_type"]);
else echo getRequestTypeName($job->fields["request_type"]);
echo "</td></tr>";
Offline
yes, alors ca c'est top comme rajout.
ca va permettre de trier d'une autre maniere.
par contre j'ai pas de titre a ma 10eme colonne donc tri impossible et je vois pas ou ca ne va pas; le code est bon chez moi
VM Linux
GLPI 10.x
Offline
Bonjour,
Est ce que cela fonctionne encore pour les version 0.71?
J'ai quelque difficulté pour le mettre en place.
Offline