You are not logged in.
Bonjour à tous,
J’ai mis en place un système de gestion de tickets avec GLPI pour mon entreprise. Nous créons des tickets en interne lorsque nos clients nous contactent pour un dépannage.
J’ai ajouté tous nos clients en tant qu’utilisateurs dans GLPI et j’ai créé un champ personnalisé "Client" (avec le plugin Fields) dans les tickets, permettant de sélectionner l’utilisateur concerné par le ticket. Chaque client est associé à un responsable (commercial) via le champ "Responsable" dans sa fiche utilisateur.
Je cherche un moyen pour que, lorsque je sélectionne un client dans un ticket, le responsable de ce client soit automatiquement ajouté en tant qu’observateur du ticket.
Avez-vous une idée de la meilleure approche pour faire cela ?
Merci d’avance pour votre aide !
Offline
J'ai pu le faire avec ce scipt qui s'execute toutes les minutes
<?php
// Inclure la configuration de GLPI pour accéder à la base de données
require('/var/www/glpi/inc/includes.php');
global $DB;
// Modifier la requête SQL pour prendre en compte le champ `users_id_supervisor`
$query = "SELECT t.id AS ticket_id, u.users_id_supervisor AS user_id
FROM glpi_tickets t
JOIN glpi_plugin_fields_ticketas pf ON pf.items_id = t.id
JOIN glpi_users u ON pf.users_id_clientfield = u.id
WHERE u.users_id_supervisor IS NOT NULL";
$result = $DB->query($query);
// Boucle correcte pour récupérer les résultats avec MySQLi
while ($data = $DB->fetch_assoc($result)) {
// Vérifier si le Responsable est déjà Observateur
$checkQuery = "SELECT id FROM glpi_tickets_users
WHERE tickets_id = ".$data['ticket_id']."
AND users_id = ".$data['user_id']."
AND type = 2"; // 2 = Observateur
$checkResult = $DB->query($checkQuery);
if ($DB->numrows($checkResult) == 0) {
// Ajouter le Responsable en Observateur du ticket
$insertQuery = "INSERT INTO glpi_tickets_users (tickets_id, users_id, type)
VALUES (".$data['ticket_id'].", ".$data['user_id'].", 2)";
$DB->query($insertQuery);
}
}
// Afficher un message de confirmation
echo "Mise à jour des observateurs terminée.\n";
?>
Offline