Reflexions sur la gestion des demandes :

GLPI gère nativement des tickets qui étaient considérés comme des tickets d'incidents.

Il est possible de rendre plus générique cette gestion est donc de pouvoir traiter indifférement les tickets (en entrée) de demande ou d'incident.

Tickets -> Incidents ou demande

La différence se situe sur le type de tickets :* Nouveau dropdown "Type de ticket" * (Incident, demande)

Nelly : pas de typage hiérarchique, l'affinage se fait par la catégorie (vu dimanche matin).

Utilisation du workflow d'approbation : GestionApprobationDeDemande

Mise en oeuvre

  • Ajout du dropdown type de ticket :
    • dropdown fixe : Incident / Demande
      • Choix de la valeur par défaut en fonction de la configuration : Générale + hierarchique sur entités
  • Ajout du champ dans glpi_tickets
  • Ajout du champ dans les stats / moteur de recherche

Réflexions annexes

  • Tsmr : champ supplémentaire sur les catégories afin de filtrer les catégories en fonction du type de demande ? et si non renseigné, toujours afficher la catégorie.

But : profiter du nouveau champ Type de ticket pour un ciblage de la catégorie plus étoffé. En effet le rédacteur choisi un type de ticket et la liste des catégories de ticket n'affichera que les catégories ayant le même type de ticket défini dans leur configuration

Patch fourni.
De base : le type de ticket est initialisé à 0 dans la configuration des entités. Ainsi pour chaque nouveau ticket, la liste complète des catégories apparait. Si le rédacteur ou si la configuration de l'entité place le type de ticket sur Demande (ou Incident) la liste des catégories est filtré.
J'ai fait aussi en sorte que les catégories mères ne puissent pas être affectées à une type de ticket (pour conserver l'arborescence).

Il n'y a normalement aucun impact sur la gestion car cela n'est que du filtrage d'afichage.
Au niveau du moteur de règle métier pour les tickets, on peut encore spécifier une catégorie en fonction d'un type de ticket.

MoYo : et dans l'autre sens ? je choisit une catégorie spécifique à un type il se passe quoi ?

Tsmr : Rien de prévu dans le patch (et pas règle existante). Mais il est vrai que l'on pourrait imaginer de renseigner le type de ticket correspondant à l'update de la catégorie.
exemple :

ticket.class.php - function pre_updateInDB()

//Change type by update category
      if ((in_array("ticketcategories_id",$this->updates))) {
         $cat = new TicketCategory();
         $cat->getFromDB($this->input['ticketcategories_id']);
         if ($cat->fields["type"] > 0) {
            $this->updates[] = 'type';
            $this->fields['type'] = $cat->fields["type"];
         }
      }