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"); if (empty($_POST["date1"]) && empty($_POST["date2"])) { $year = date("Y")-1; $_POST["date1"] = date("Y-m-d",mktime(1,0,0,date("m"),date("d"),$year)); $_POST["date2"] = date("Y-m-d"); } if (!empty($_POST["date1"]) && !empty($_POST["date2"]) && (strcmp($_POST["date2"],$_POST["date1"]) < 0)) { $tmp = $_POST["date1"]; $_POST["date1"] = $_POST["date2"]; $_POST["date2"] = $tmp; } Report::title(); echo "
"; echo ""; echo "". ""; echo ""; echo "
".__('Start date').""; Html::showDateField("date1", array('value' => $_POST["date1"])); echo ""; echo "
".__('End date').""; Html::showDateField("date2", array('value' => $_POST["date2"])); echo "
"; Html::closeForm(); echo "
"; $valeurtot = 0; $valeurnettetot = 0; $valeurnettegraphtot = array(); $valeurgraphtot = array(); /** Display an infocom report * * @param $itemtype item type * @param $begin begin date * @param $end end date **/ function display_infocoms_report($itemtype, $begin, $end) { global $DB, $valeurtot, $valeurnettetot, $valeurnettegraphtot, $valeurgraphtot, $CFG_GLPI; $itemtable = getTableForItemType($itemtype); $query = "SELECT `glpi_infocoms`.*, `$itemtable`.`name` AS name, `$itemtable`.`ticket_tco`, `glpi_entities`.`completename` AS entname, `glpi_entities`.`id` AS entID FROM `glpi_infocoms` INNER JOIN `$itemtable` ON (`$itemtable`.`id` = `glpi_infocoms`.`items_id` AND `glpi_infocoms`.`itemtype` = '$itemtype') LEFT JOIN `glpi_entities` ON (`$itemtable`.`entities_id` = `glpi_entities`.`id`) WHERE `$itemtable`.`is_template` = '0' ". getEntitiesRestrictRequest("AND", $itemtable); if (!empty($begin)) { $query .= " AND (`glpi_infocoms`.`buy_date` >= '$begin' OR `glpi_infocoms`.`use_date` >= '$begin') "; } if (!empty($end)) { $query .= " AND (`glpi_infocoms`.`buy_date` <= '$end' OR `glpi_infocoms`.`use_date` <= '$end') "; } $query .= " ORDER BY entname ASC, `buy_date`, `use_date`"; $display_entity = Session::isMultiEntitiesMode(); $result = $DB->query($query); if (($DB->numrows($result) > 0) && ($item = getItemForItemtype($itemtype))) { echo "

".$item->getTypeName(1)."

"; echo ""; if ($display_entity) { echo ""; } echo ""; echo ""; echo ""; $valeursoustot = 0; $valeurnettesoustot = 0; $valeurnettegraph = array(); $valeurgraph = array(); while ($line=$DB->fetch_assoc($result)) { if (isset($line["is_global"]) && $line["is_global"] && $item->getFromDB($line["items_id"])) { $line["value"] *= Computer_Item::countForItem($item); } if ($line["value"]>0) { $valeursoustot += $line["value"]; } $valeurnette = Infocom::Amort($line["sink_type"], $line["value"], $line["sink_time"], $line["sink_coeff"], $line["buy_date"], $line["use_date"], $CFG_GLPI["date_tax"], "n"); $tmp = Infocom::Amort($line["sink_type"], $line["value"], $line["sink_time"], $line["sink_coeff"], $line["buy_date"], $line["use_date"], $CFG_GLPI["date_tax"], "all"); if (is_array($tmp) && (count($tmp) > 0)) { foreach ($tmp["annee"] as $key => $val) { if ($tmp["vcnetfin"][$key] > 0) { if (!isset($valeurnettegraph[$val])) { $valeurnettegraph[$val] = 0; } $valeurnettegraph[$val] += $tmp["vcnetdeb"][$key]; } } } if (!empty($line["buy_date"])) { $year = substr($line["buy_date"],0,4); if ($line["value"] > 0) { if (!isset($valeurgraph[$year])) { $valeurgraph[$year] = 0; } $valeurgraph[$year] += $line["value"]; } } $valeurnettesoustot += str_replace(" ","",$valeurnette); echo ""; if ($display_entity) { echo ""; } echo "". "". "". "". "". ""; } $valeurtot += $valeursoustot; $valeurnettetot += $valeurnettesoustot; $tmpmsg = sprintf(__('Total: Value=%1$s - Account net value=%2$s'), Html::formatNumber($valeursoustot), Html::formatNumber($valeurnettesoustot)); echo ""; if (count($valeurnettegraph) > 0) { echo ""; } if (count($valeurgraph) > 0) { echo ""; } echo "
".__('Name')."".__('Entity').""._x('price', 'Value')."".__('ANV')."".__('TCO')."".__('Date of purchase')."".__('Startup date')."".__('Warranty expiration date')."
".$line["name"]."".$line['entname']."".Html::formatNumber($line["value"])."".Html::formatNumber($valeurnette)."".Infocom::showTco($line["ticket_tco"], $line["value"])."".Html::convDate($line["buy_date"])."".Html::convDate($line["use_date"])."".Infocom::getWarrantyExpir($line["buy_date"], $line["warranty_duration"]). "

$tmpmsg

"; ksort($valeurnettegraph); $valeurnettegraphdisplay = array_map('round', $valeurnettegraph); foreach ($valeurnettegraph as $key => $val) { if (!isset($valeurnettegraphtot[$key])) { $valeurnettegraphtot[$key] = 0; } $valeurnettegraphtot[$key] += $valeurnettegraph[$key]; } Stat::showGraph(array(__('Account net value') => $valeurnettegraphdisplay), array('title' => __('Account net value'), 'width' => 400)); echo "
"; ksort($valeurgraph); $valeurgraphdisplay = array_map('round',$valeurgraph); foreach ($valeurgraph as $key => $val) { if (!isset($valeurgraphtot[$key])) { $valeurgraphtot[$key] = 0; } $valeurgraphtot[$key] += $valeurgraph[$key]; } Stat::showGraph(array(_x('price', 'Value') => $valeurgraphdisplay), array('title' => _x('price', 'Value'), 'width' => 400)); echo "
"; return true; } return false; } $types = array('Computer', 'Monitor', 'NetworkEquipment', 'Peripheral', 'Phone', 'Printer'); $i = 0; echo ""; $i++; if (($i%2) == 0) { echo ""; } echo "
"; while (count($types) > 0) { $type = array_shift($types); if (display_infocoms_report($type, $_POST["date1"], $_POST["date2"])) { echo "
"; } } if (($i%2) == 0) { echo "  "; } echo "
"; $tmpmsg = sprintf(__('Total: Value=%1$s - Account net value=%2$s'), Html::formatNumber($valeurtot), Html::formatNumber($valeurnettetot)); echo "

$tmpmsg

"; if (count($valeurnettegraphtot) > 0) { $valeurnettegraphtotdisplay = array_map('round', $valeurnettegraphtot); Stat::showGraph(array(__('Account net value') => $valeurnettegraphtotdisplay), array('title' => __('Account net value'))); } if (count($valeurgraphtot) > 0) { $valeurgraphtotdisplay = array_map('round', $valeurgraphtot); Stat::showGraph(array(_x('price', 'Value') => $valeurgraphtotdisplay), array('title' => _x('price', 'Value'))); } Html::footer(); ?>