grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026.
--------------------------------------------------------------------------
*/
/** @file
* @brief
*/
include ("../inc/includes.php");
Session::checkRight("reports", READ);
Html::header(Report::getTypeName(Session::getPluralNumber()), $_SERVER['PHP_SELF'], "tools", "report");
Report::title();
$items = $CFG_GLPI["contract_types"];
# Titre
echo "
".__('Device list')."
";
# Request All
if ((isset($_POST["item_type"][0]) && ($_POST["item_type"][0] == '0'))
|| !isset($_POST["item_type"])) {
$_POST["item_type"] = $items;
}
if (isset($_POST["item_type"]) && is_array($_POST["item_type"])) {
$query = array();
foreach ($_POST["item_type"] as $key => $val) {
if (in_array($val,$items)) {
$itemtable = getTableForItemType($val);
$deleted_field = "`$itemtable`.`is_deleted`";
$location_field = "''";
$add_leftjoin = "";
$template_condition = '1';
if ($val != 'Project') {
$location_field = "`glpi_locations`.`completename`";
$template_condition = "`$itemtable`.`is_template` = '0'";
$add_leftjoin = "LEFT JOIN `glpi_locations`
ON (`$itemtable`.`locations_id` = `glpi_locations`.`id`)";
}
if ($val == 'SoftwareLicense') {
$deleted_field = "`glpi_softwares`.`is_deleted`";
$location_field = "''";
$add_leftjoin = "LEFT JOIN `glpi_softwares`
ON (`glpi_softwares`.`id`
= `glpi_softwarelicenses`.`softwares_id`)";
$template_condition = "`glpi_softwares`.`is_template` = '0'";
}
$query[$val] = "SELECT `$itemtable`.`name` AS itemname,
$deleted_field AS itemdeleted,
$location_field AS location,
`glpi_contracttypes`.`name` AS type, `glpi_infocoms`.`buy_date`,
`glpi_infocoms`.`warranty_duration`, `glpi_contracts`.`begin_date`,
`glpi_contracts`.`duration`,
`glpi_entities`.`completename` AS entname,
`glpi_entities`.`id` AS entID
FROM `$itemtable` $add_leftjoin
LEFT JOIN `glpi_contracts_items`
ON (`glpi_contracts_items`.`itemtype` = '$val'
AND `$itemtable`.`id` = `glpi_contracts_items`.`items_id`)
LEFT JOIN `glpi_contracts`
ON (`glpi_contracts_items`.`contracts_id` = `glpi_contracts`.`id`
AND `glpi_contracts_items`.`contracts_id` IS NOT NULL)
LEFT JOIN `glpi_infocoms`
ON (`glpi_infocoms`.`itemtype` = '$val'
AND `$itemtable`.`id` = `glpi_infocoms`.`items_id`)
LEFT JOIN `glpi_contracttypes`
ON (`glpi_contracts`.`contracttypes_id` = `glpi_contracttypes`.`id`)
LEFT JOIN `glpi_entities`
ON (`$itemtable`.`entities_id` = `glpi_entities`.`id`)
WHERE $template_condition ".
getEntitiesRestrictRequest("AND",$itemtable);
if (isset($_POST["year"][0]) && ($_POST["year"][0] != 0)) {
$query[$val] .= " AND ( ";
$first = true;
foreach ($_POST["year"] as $key2 => $val2) {
if (!$first) {
$query[$val] .= " OR ";
} else {
$first = false;
}
$query[$val] .= " YEAR(`glpi_infocoms`.`buy_date`) = '$val2'
OR YEAR(`glpi_contracts`.`begin_date`) = '$val2'";
}
$query[$val] .= ")";
}
$query[$val] .= " ORDER BY entname ASC, itemdeleted DESC, itemname ASC";
}
}
}
$display_entity = Session::isMultiEntitiesMode();
if (isset($query) && count($query)) {
foreach ($query as $key => $val) {
$result = $DB->query($val);
if ($result && $DB->numrows($result)) {
$item = new $key();
echo "".$item->getTypeName(1)."
";
echo "";
echo "| ".__('Name')." | ";
echo "".__('Deleted')." | ";
if ($display_entity) {
echo "".__('Entity')." | ";
}
echo "".__('Location')." | ";
echo "".__('Date of purchase')." | ";
echo "".__('Warranty expiration date')." | ";
echo "".__('Contract type')." | ";
echo "".__('Start date')." | ";
echo "".__('End date')." |
";
while ($data = $DB->fetch_assoc($result)) {
echo "";
if ($data['itemname']) {
echo "| ".$data['itemname']." | ";
} else {
echo "".NOT_AVAILABLE." | ";
}
echo "".Dropdown::getYesNo($data['itemdeleted'])." | ";
if ($display_entity) {
echo "".$data['entname']." | ";
}
if ($data['location']) {
echo "".$data['location']." | ";
} else {
echo "".NOT_AVAILABLE." | ";
}
if ($data['buy_date']) {
echo "".Html::convDate($data['buy_date'])." | ";
if ($data["warranty_duration"]) {
echo "".Infocom::getWarrantyExpir($data["buy_date"],
$data["warranty_duration"]).
" | ";
} else {
echo "".NOT_AVAILABLE." | ";
}
} else {
echo "".NOT_AVAILABLE." | ";
echo "".NOT_AVAILABLE." | ";
}
if ($data['type']) {
echo "".$data['type']." | ";
} else {
echo "".NOT_AVAILABLE." | ";
}
if ($data['begin_date']) {
echo "".Html::convDate($data['begin_date'])." | ";
if ($data["duration"]) {
echo "".Infocom::getWarrantyExpir($data["begin_date"],
$data["duration"])." | ";
} else {
echo "".NOT_AVAILABLE." | ";
}
} else {
echo "".NOT_AVAILABLE." | ";
echo "".NOT_AVAILABLE." | ";
}
echo "
\n";
}
echo "
";
}
}
}
Html::footer();
?>