static function pdfForAppliance(PluginPdfSimplePDF $pdf, PluginAppliancesAppliance $appli) { global $DB, $CFG_GLPI; $instID = $appli->fields['id']; if (!$appli->can($instID, "r")) { return false; } if (!plugin_appliances_haveRight("appliance", "r")) { return false; } $pdf->setColumnsSize(100); $pdf->displayTitle('<b>' . __('Associated items', 'behaviors') . '</b>'); $query = "SELECT DISTINCT `itemtype`\n FROM `glpi_plugin_appliances_appliances_items`\n WHERE `plugin_appliances_appliances_id` = '" . $instID . "'\n ORDER BY `itemtype`"; $result = $DB->query($query); $number = $DB->numrows($result); if (Session::isMultiEntitiesMode()) { $pdf->setColumnsSize(12, 27, 25, 18, 18); $pdf->displayTitle('<b><i>' . __('Type'), __('Name'), __('Entity'), __('Serial number'), __('Inventory number') . '</i></b>'); } else { $pdf->setColumnsSize(25, 31, 22, 22); $pdf->displayTitle('<b><i>' . __('Type'), __('Name'), __('Serial number'), __('Inventory number') . '</i></b>'); } if (!$number) { $pdf->displayLine(__('No item found')); } else { for ($i = 0; $i < $number; $i++) { $type = $DB->result($result, $i, "itemtype"); if (!($item = getItemForItemtype($type))) { continue; } if ($item->canView()) { $column = "name"; if ($type == 'Ticket') { $column = "id"; } if ($type == 'KnowbaseItem') { $column = "question"; } $query = "SELECT `" . $item->getTable() . "`.*,\n `glpi_plugin_appliances_appliances_items`.`id` AS IDD,\n `glpi_entities`.`id` AS entity\n FROM `glpi_plugin_appliances_appliances_items`, `" . $item->getTable() . "`\n LEFT JOIN `glpi_entities`\n ON (`glpi_entities`.`id` = `" . $item->getTable() . "`.`entities_id`)\n WHERE `" . $item->getTable() . "`.`id`\n = `glpi_plugin_appliances_appliances_items`.`items_id`\n AND `glpi_plugin_appliances_appliances_items`.`itemtype` = '" . $type . "'\n AND `glpi_plugin_appliances_appliances_items`.`plugin_appliances_appliances_id`\n = '" . $instID . "' " . getEntitiesRestrictRequest(" AND ", $item->getTable()); if ($item->maybeTemplate()) { $query .= " AND `" . $item->getTable() . "`.`is_template` = '0'"; } $query .= " ORDER BY `glpi_entities`.`completename`, `" . $item->getTable() . "`.{$column}"; if ($result_linked = $DB->query($query)) { if ($DB->numrows($result_linked)) { while ($data = $DB->fetch_assoc($result_linked)) { if (!$item->getFromDB($data["id"])) { continue; } if ($type == 'Ticket') { $data["name"] = sprintf(__('%1$s %2$s'), __('Ticket'), $data["id"]); } if ($type == 'KnowbaseItem') { $data["name"] = $data["question"]; } $name = $data["name"]; if ($_SESSION["glpiis_ids_visible"] || empty($data["name"])) { $name = sprintf(__('%1$s (%2$s)'), $name, $data["id"]); } if (Session::isMultiEntitiesMode()) { $pdf->setColumnsSize(12, 27, 25, 18, 18); $pdf->displayLine($item->getTypeName(), $name, Dropdown::getDropdownName("glpi_entities", $data['entities_id']), isset($data["serial"]) ? $data["serial"] : "-", isset($data["otherserial"]) ? $data["otherserial"] : "-"); } else { $pdf->setColumnsSize(25, 31, 22, 22); $pdf->displayTitle($item->getTypeName(), $name, isset($data["serial"]) ? $data["serial"] : "-", isset($data["otherserial"]) ? $data["otherserial"] : "-"); } PluginAppliancesRelation::showList_PDF($pdf, $appli->fields["relationtype"], $data["IDD"]); PluginAppliancesOptvalue_Item::showList_PDF($pdf, $data["id"], $instID); } // Each device } // numrows device } } // type right } // each type } // numrows type $pdf->displaySpace(); }