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 "
"; echo "".__('List of the hardware under contract')."

"; echo "
"; # 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); $order = "itemdeleted DESC,"; if (($val == 'Project') || ($val == 'SoftwareLicense')) { $select = $join = ''; if ($val == 'SoftwareLicense') { $select = "`glpi_infocoms`.`buy_date`, `glpi_infocoms`.`warranty_duration`,"; $join = " LEFT JOIN `glpi_infocoms` ON (`glpi_infocoms`.`itemtype` = '$val' AND `$itemtable`.`id` = `glpi_infocoms`.`items_id`)"; $order = ''; } if ($val == 'Project') { $select = "`$itemtable`.`is_deleted` AS itemdeleted,"; } $query[$val] = "SELECT `$itemtable`.`name` AS itemname, `glpi_contracttypes`.`name` AS type, $select `glpi_contracts`.`begin_date`, `glpi_contracts`.`duration`, `glpi_entities`.`completename` AS entname, `glpi_entities`.`id` AS entID FROM `glpi_contracts_items` INNER JOIN `glpi_contracts` ON (`glpi_contracts_items`.`contracts_id` = `glpi_contracts`.`id`) INNER JOIN `$itemtable` ON (`glpi_contracts_items`.`itemtype` = '$val' AND `$itemtable`.`id` = `glpi_contracts_items`.`items_id`) $join LEFT JOIN `glpi_contracttypes` ON (`glpi_contracts`.`contracttypes_id` = `glpi_contracttypes`.`id`) LEFT JOIN `glpi_entities` ON (`$itemtable`.`entities_id` = `glpi_entities`.`id`) ". getEntitiesRestrictRequest("WHERE",$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; } if ($val == 'Project') { $query[$val] .= " YEAR(`glpi_contracts`.`begin_date`) = '$val2'"; } if ($val == 'SoftwareLicense') { $query[$val] .= " YEAR(`glpi_infocoms`.`buy_date`) = '$val2' OR YEAR(`glpi_contracts`.`begin_date`) = '$val2'"; } } $query[$val] .= ")"; } } else { $query[$val] = "SELECT `$itemtable`.`name` AS itemname, `$itemtable`.`is_deleted` AS itemdeleted, `glpi_locations`.`completename` 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 `glpi_contracts_items` INNER JOIN `glpi_contracts` ON (`glpi_contracts_items`.`contracts_id` = `glpi_contracts`.`id`) INNER JOIN `$itemtable` ON (`glpi_contracts_items`.`itemtype` = '$val' AND `$itemtable`.`id` = `glpi_contracts_items`.`items_id`) 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_locations` ON (`$itemtable`.`locations_id` = `glpi_locations`.`id`) LEFT JOIN `glpi_entities` ON (`$itemtable`.`entities_id` = `glpi_entities`.`id`) WHERE `$itemtable`.`is_template` ='0' ". 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, $order 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 ""; echo ""; if ($display_entity) { echo ""; } echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; while ( $data = $DB->fetch_assoc($result)) { echo ""; if ($data['itemname']) { echo ""; } else { echo ""; } if (!isset($data['itemdeleted'])) { $data['itemdeleted'] = 0; } if (!isset($data['buy_date']) ){ $data['buy_date'] = ''; } if (!isset($data['warranty_duration'])) { $data['warranty_duration'] = 0; } echo ""; if ($display_entity) { echo ""; } if ($data['location']) { echo ""; } else { echo ""; } if ($data['buy_date']) { echo ""; if ($data["warranty_duration"]) { echo ""; } else { echo ""; } } else { echo ""; } if ($data['type']) { echo ""; } else { echo ""; } if ($data['begin_date']) { echo ""; if ($data["duration"]) { echo ""; } else { echo ""; } } else { echo ""; } echo "\n"; } echo "
".__('Name')."".__('Deleted')."".__('Entity')."".__('Location')."".__('Date of purchase')."".__('Warranty expiration date')."".__('Contract type')."".__('Start date')."".__('End date')."
".$data['itemname']." ".NOT_AVAILABLE." ".Dropdown::getYesNo($data['itemdeleted'])." ".$data['entname']." ".$data['location']." ".NOT_AVAILABLE." ".Html::convDate($data['buy_date'])." ".Infocom::getWarrantyExpir($data["buy_date"], $data["warranty_duration"])." ".NOT_AVAILABLE." ".NOT_AVAILABLE." ".NOT_AVAILABLE." ".$data['type']." ".NOT_AVAILABLE." ".Html::convDate($data['begin_date'])." ".Infocom::getWarrantyExpir($data["begin_date"], $data["duration"])." ".NOT_AVAILABLE." ".NOT_AVAILABLE." ".NOT_AVAILABLE."



"; } } } Html::footer(); ?>