Bonjour,
Besoin :
Je recherche la fonction permettant d'appliquer/récupérer les actions
effectuées par une règle métier en fonction de certains critères
Explication :
Actuellement je suis sur une version 0.84.5 de GLPI sans possibilité de migrer
sur une nouvelle version.
J'ai la problématique suivante, lors du cycle de vie des tickets support,
régulièrement, ceux-ci sont recatégorisés par les techniciens, mais sur la
0.84.5, le SLA et la due date associée à la catégorie n'est pas recalculé lors
de cette action.
Actuellement je développe un script permettant de détecter cette modification
et ainsi repositionner le SLA et recalculer la due date.
1. Je détecte la modification de catégorie en parcourant les logs à la
recherche de l'event associé
2. Je réapplique le SLA en appliquant la règle métier
3. Je recalcule la due date en fonction du nouveau SLA positionner
Pour les points 1 et 3 j'ai trouvé les méthodes et fonctions nécessaires dans
les classes GLPI, mais pour le point 2, j'ai recherché de long en large dans
les class et form GLPI sans trouver de réelle piste.
Si quelqu'un sait quelle fonction ou connais une méthode pour réappliquer
uniquement la règle relative au SLA a un ticket, je suis preneur :)
Par avance merci :)
Ci-dessous le code que j'utilise pour le recalcul de la due date si cela peut
aider quelqu'un :
Le script doit se trouver dans un dossier placé dans le répertoire GLPI sinon
cela ne fonctionne pas (personnellement un dossier nommé « recalsla » mit dans
le dossier « inc »).
La fonction RecalDueDate est un dérivé de la fonction original de glpi
getDatasToAddSLA
<?php
define('GLPI_ROOT', 'C:\WebServer\htdocs\glpi');
include (GLPI_ROOT . "/inc/includes.php");
// variable à récupérer dans la base via sql en temps normal
$sla = 8 ;
$entities = 1 ;
$datedeb = '2015-07-02 11:43:00' ;
$waitingTime = 0 ;
function RecalDueDate($slas_id, $entities_id, $date,$waitingTime)
{
$calendars_id = Entity::getUsedConfig('calendars_id', $entities_id);
$data = array();
$sla = new SLA();
if ($sla->getFromDB($slas_id))
{
$sla->setTicketCalendar($calendars_id);
$data["slalevels_id"] =
SlaLevel::getFirstSlaLevel($slas_id);
$data['due_date'] =
$sla->computeDueDate($date,$waitingTime);
}
else
{
return False ;
}
return $data;
}
// affichage de la due date
print_r(RecalDueDate($sla, $entities, $datedeb,$waitingTime)) ;
?>
Cordialement,
[http://consort-group.com/e-signature/images/logoCNT2.gif][http://consort-group.com/e-signature/images/AnimationCNT2.gif]
Arnaud ROUDEAU
[email protected]<mailto:[email protected]>
CONSORT FRANCE
34 rue Jean-Jaurès
92800 PUTEAUX CEDEX
www.consortnt.fr<http://www.consortnt.fr/>
Retrouvez Consort NT sur les réseaux sociaux :
[http://consort-group.com/e-signature/images/viadeo_logo.png] Viadeo :
http://www.viadeo.com/groups/consortnt
[http://consort-group.com/e-signature/images/logo-facebook-16.png] Facebook :
http://www.facebook.com/ConsortNT
[http://consort-group.com/e-signature/images/greenit.png]
Afin de contribuer au respect de l'environnement, n'imprimer ce courriel qu'en
cas de nécessité.
_______________________________________________
Glpi-dev mailing list
[email protected]
https://mail.gna.org/listinfo/glpi-dev