Mail2Ticket : remplissage automatique de champs

Décrivez les améliorations que vous souhaiteriez pour les prochaines versions.
Répondre
Mechayem
Gsup LEVEL 0
Messages : 6
Enregistré le : jeu. 17 sept. 2020 10:25

Bonjour,

Je découvre et joue avec la solution depuis un moment en vue de la déployer en interne. Tout d'abord un grand bravo aux développeurs et à tous ceux qui sont actifs autour de ce projet. Je ne suis pas du tout spécialiste de ces produits et contrairement à d'autres produits, j'ai trouvé l'installation, l'administration et l'utilisation extrêmement facile !

J'ai réussi à utiliser le connecteur IMAP qui créé bien les tickets à partir de courriels envoyés.
Ma question est la suivante : peut-on à partir d'éléments du sujet par exemple remplir automatiquement un ou plusieurs champs du ticket ?

Dans notre cas, j'aimerai si la balise [xxx] est dans le sujet pouvoir affecter le ticket à la catégorie "xxx" (ce qui affectera automatiquement au groupe de techniciens correspondant, si le groupe est bien configuré).
Avatar du membre
Flox
Administrateur du site
Messages : 8973
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

cette fonctionnalité n'est pas disponible dans l'application je déplace votre demande dans la section update.

Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.58 | MariaDB: 11.3.2 | PHP: 8.3.4 | https://doc.gestsup.fr/
Mechayem
Gsup LEVEL 0
Messages : 6
Enregistré le : jeu. 17 sept. 2020 10:25

Merci de votre réponse rapide !
Mechayem
Gsup LEVEL 0
Messages : 6
Enregistré le : jeu. 17 sept. 2020 10:25

En fouillant un peu j'ai modifié le fichier Mail2Ticket.php pour permettre l'attribution d'une catégorie si celle-ci est entre crochets dans le sujet --> [xxx]

Voici le code ajouté dans la partie de création de ticket, après la ligne 366 :

Code : Tout sélectionner

//check if subject has a category between []
$sujetCategory = '';
$categoryId = 0; //default category
if(preg_match('/\[(.*?)\]/', $subject, $sujetCategory) == 1)  
{
	//get categorys 
	$qry=$db->prepare("SELECT `id`,`name` FROM `tcategory`");
	$qry->execute();
	$rows=$qry->fetchAll();

	//search if category of the subject is in the categorys
	foreach($rows as $row)
	{
		if($sujetCategory[1] == $row['name']) // if the first occurence found in the subject matches, get the category id
		{
			$categoryId = $row['id'];
			break;
		}
	}
}

$qry=$db->prepare("INSERT INTO `tincidents` (`user`,`technician`,`title`,`description`,`date_create`,`techread`,`state`,`criticality`,`disable`,`place`,`creator`,`category`) 
VALUES (:user,'0',:title,'',:date_create,'0',:state,'4','0','0',:creator,:category)");
$qry->execute(array('user' => $user_id,'title' => $subject,'date_create' => $datetime,'state' => $rparameters['ticket_default_state'],'creator' => $user_id, 'category' => $categoryId));
Si ça peut aider je laisse ce bout de code là :D
Répondre