You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2025-03-12 16:00:38

jalil
Member
Registered: 2024-12-16
Posts: 10

Associer automatiquement le responsable d’un client comme observateur

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

#2 2025-03-17 12:47:41

jalil
Member
Registered: 2024-12-16
Posts: 10

Re: Associer automatiquement le responsable d’un client comme observateur

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

Board footer

Powered by FluxBB