/**
* Retrieve an item from the database with additional datas
*
* @since version 0.83
*
* @param $ID integer ID of the item to get
* @param $withtypeandcategory boolean with type and category (true by default)
*
* @return true if succeed else false
**/
function getFromDBWithDatas($ID, $withtypeandcategory = true)
{
global $DB;
if ($this->getFromDB($ID)) {
$ticket = new Ticket();
$tth = new TicketTemplateHiddenField();
$this->hidden = $tth->getHiddenFields($ID, $withtypeandcategory);
// Force items_id if itemtype is defined
if (isset($this->hidden['itemtype']) && !isset($this->hidden['items_id'])) {
$this->hidden['items_id'] = $ticket->getSearchOptionIDByField('field', 'items_id', 'glpi_items_tickets');
}
// Always get all mandatory fields
$ttm = new TicketTemplateMandatoryField();
$this->mandatory = $ttm->getMandatoryFields($ID);
// Force items_id if itemtype is defined
if (isset($this->mandatory['itemtype']) && !isset($this->mandatory['items_id'])) {
$this->mandatory['items_id'] = $ticket->getSearchOptionIDByField('field', 'items_id', 'glpi_items_tickets');
}
$ttp = new TicketTemplatePredefinedField();
$this->predefined = $ttp->getPredefinedFields($ID, $withtypeandcategory);
// Compute due_date
if (isset($this->predefined['due_date'])) {
$this->predefined['due_date'] = Html::computeGenericDateTimeSearch($this->predefined['due_date'], false);
}
// Compute date
if (isset($this->predefined['date'])) {
$this->predefined['date'] = Html::computeGenericDateTimeSearch($this->predefined['date'], false);
}
return true;
}
return false;
}