/**
  * Print preview for Ticket template
  *
  * @param $tt TicketTemplate object
  *
  * @return Nothing (call to classes members)
  **/
 static function showHelpdeskPreview(TicketTemplate $tt)
 {
     if (!$tt->getID()) {
         return false;
     }
     if ($tt->getFromDBWithDatas($tt->getID())) {
         $ticket = new Ticket();
         $ticket->showFormHelpdesk(Session::getLoginUserID(), $tt->getID());
     }
 }
Example #2
0
 /**
  * Get ticket template to use
  * Use force_template first, then try on template define for type and category
  * then use default template of active profile of connected user and then use default entity one
  *
  * @param $force_template      integer tickettemplate_id to used (case of preview for example)
  *                             (default 0)
  * @param $type                integer type of the ticket (default 0)
  * @param $itilcategories_id   integer ticket category (default 0)
  * @param $entities_id         integer (default -1)
  *
  * @since version 0.84
  *
  * @return ticket template object
  **/
 function getTicketTemplateToUse($force_template = 0, $type = 0, $itilcategories_id = 0, $entities_id = -1)
 {
     // Load ticket template if available :
     $tt = new TicketTemplate();
     $template_loaded = false;
     if ($force_template) {
         // with type and categ
         if ($tt->getFromDBWithDatas($force_template, true)) {
             $template_loaded = true;
         }
     }
     if (!$template_loaded && $type && $itilcategories_id) {
         $categ = new ITILCategory();
         if ($categ->getFromDB($itilcategories_id)) {
             $field = '';
             switch ($type) {
                 case self::INCIDENT_TYPE:
                     $field = 'tickettemplates_id_incident';
                     break;
                 case self::DEMAND_TYPE:
                     $field = 'tickettemplates_id_demand';
                     break;
             }
             if (!empty($field) && $categ->fields[$field]) {
                 // without type and categ
                 if ($tt->getFromDBWithDatas($categ->fields[$field], false)) {
                     $template_loaded = true;
                 }
             }
         }
     }
     // If template loaded from type and category do not check after
     if ($template_loaded) {
         return $tt;
     }
     if (!$template_loaded) {
         // load default profile one if not already loaded
         if (isset($_SESSION['glpiactiveprofile']['tickettemplates_id']) && $_SESSION['glpiactiveprofile']['tickettemplates_id']) {
             // with type and categ
             if ($tt->getFromDBWithDatas($_SESSION['glpiactiveprofile']['tickettemplates_id'], true)) {
                 $template_loaded = true;
             }
         }
     }
     if (!$template_loaded && $entities_id >= 0) {
         // load default entity one if not already loaded
         if ($template_id = Entity::getUsedConfig('tickettemplates_id', $entities_id)) {
             // with type and categ
             if ($tt->getFromDBWithDatas($template_id, true)) {
                 $template_loaded = true;
             }
         }
     }
     // Check if profile / entity set type and category and try to load template for these values
     if ($template_loaded) {
         // template loaded for profile or entity
         $newtype = $type;
         $newitilcategories_id = $itilcategories_id;
         // Get predefined values for ticket template
         if (isset($tt->predefined['itilcategories_id']) && $tt->predefined['itilcategories_id']) {
             $newitilcategories_id = $tt->predefined['itilcategories_id'];
         }
         if (isset($tt->predefined['type']) && $tt->predefined['type']) {
             $newtype = $tt->predefined['type'];
         }
         if ($newtype && $newitilcategories_id) {
             $categ = new ITILCategory();
             if ($categ->getFromDB($newitilcategories_id)) {
                 $field = '';
                 switch ($newtype) {
                     case self::INCIDENT_TYPE:
                         $field = 'tickettemplates_id_incident';
                         break;
                     case self::DEMAND_TYPE:
                         $field = 'tickettemplates_id_demand';
                         break;
                 }
                 if (!empty($field) && $categ->fields[$field]) {
                     // without type and categ
                     if ($tt->getFromDBWithDatas($categ->fields[$field], false)) {
                         $template_loaded = true;
                     }
                 }
             }
         }
     }
     return $tt;
 }
Example #3
0
     case "1":
         // formulaire par defaut pour les incidents de la catégorie;
         $template_id = $tickettemplates_id_incident;
         break;
     case "2":
         // formulaire par defaut pour les demandes de la catégorie;
         $template_id = $tickettemplates_id_demand;
         break;
     default:
         // sans précision le formulaire est indiqué par défaut;
         $template_id = "1";
         //formulaire par defaut;
         break;
 }
 $tt = new TicketTemplate();
 $tt->getFromDBWithDatas($template_id, true);
 $ttp = new TicketTemplatePredefinedField();
 $predefined = $ttp->getPredefinedFields($template_id, true);
 if (isset($predefined['itemtype'])) {
     $ticket['itemtype'] = $predefined['itemtype'];
 }
 if (isset($predefined['items_id'])) {
     $ticket['items_id'] = $predefined['items_id'];
 }
 if (isset($predefined['_users_id_observer'])) {
     $ticket['_users_id_observer'] = $predefined['_users_id_observer'];
 }
 if (isset($predefined['_users_id_assign'])) {
     $ticket['_users_id_assign'] = $predefined['_users_id_assign'];
 }
 if (isset($predefined['_users_id_requester'])) {