Progression de la migration vers Ubuntu 12.04 (Precise)

"; $computer = new Computer(); $itemtype = 'Computer'; $table_item = getTableForItemType($itemtype); $svg_colors = Array('red'=>'#ffa0a0', 'green'=>'#a0ffa0', 'yellow'=>'#ffdd80', 'blue'=>'#a0a0ff'); function svg_circle($color, $size=4) { global $svg_colors; if (array_key_exists($color, $svg_colors)) { $color = $svg_colors[$color]; } $r = (int)$size; $cx = $r+1; $cy = $r+1; $svg = ''; $svg .= ""; $svg .= ''; return $svg; } function svg_pie_chart($values, $size=16) { global $svg_colors; $color_names = Array('blue', 'red', 'green', 'yellow'); $color_idx = 0; $total = 0.0; foreach ($values as $v) { $total += $v; } $r = (int)$size; $cx = $r+1; $cy = $r+1; $rad = 2*pi()/$total; $old_a = 0; $svg = ''; foreach ($values as $a) { $color = $svg_colors[$color_names[$color_idx++]]; if ($a == $total) { $svg .= ""; } elseif ($a > 0) { $x1 = $cx + $r * cos(-$old_a * $rad); $y1 = $cy + $r * sin(-$old_a * $rad); $x2 = $cx + $r * cos(-($old_a + $a) * $rad); $y2 = $cy + $r * sin(-($old_a + $a) * $rad); $big = ($a > ($total/2)) ? '1' : '0'; $svg .= ""; } $old_a += $a; } $svg .= ''; return $svg; } function svg_bar($values, $width=100, $height=5) { global $svg_colors; $color_names = Array('blue', 'red', 'green', 'yellow'); $color_idx = 0; $total = 0.0; foreach ($values as $v) { $total += $v; } $svg = ""; $x = 0; foreach ($values as $v) { $color = $svg_colors[$color_names[$color_idx++]]; $w = round(($width*$v)/$total); if ($w > 0) { $svg .= ""; $x += $w; } } $svg .= ''; return $svg; } // echo "\nATTENTION : ce rapport est en cours de refonte, merci de ne pas tenir compte des données affichées ci-dessous.

"; //echo "\nOrdinateurs par implantation

"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "\n"; $grand_internes_1204 = 0; $grand_internes_1004 = 0; $grand_internes_autres = 0; $grand_publics_1204 = 0; $grand_publics_1004 = 0; $grand_publics_autres = 0; // récupération de la liste des régions $query = "SELECT id FROM glpi_entities WHERE (id=0 OR entities_id=0)"; $query .= " ".getEntitiesRestrictRequest("AND", "glpi_entities")." ORDER BY name"; $region_result = $DB->query($query); // parcours des régions while ($region_data = $DB->fetch_assoc($region_result)) { $region_id = $region_data['id']; if ($region_id != 0) { $region_name = getTreeLeafValueName("glpi_entities", $region_id); } else { $region_name = "AUF"; } $table_lines = Array(); $region_internes_1204 = 0; $region_internes_1004 = 0; $region_internes_autres = 0; $region_publics_1204 = 0; $region_publics_1004 = 0; $region_publics_autres = 0; // récupération de la liste des implantations $query = "SELECT id,level FROM glpi_entities WHERE "; if ($region_id != 0) { $query .= getRealQueryForTreeItem("glpi_entities", $region_id, "id"); } else { $query .= "id=0"; } $query .= " ".getEntitiesRestrictRequest("AND", "glpi_entities")." ORDER BY name"; $implant_result = $DB->query($query); // parcours des implantations while ($implant_data = $DB->fetch_assoc($implant_result)) { $implant_id = $implant_data['id']; if ($implant_id != 0) { $implant_name = getTreeLeafValueName("glpi_entities", $implant_id); } else { $implant_name = "(non classé)"; } // récupération de la liste des systèmes de l'implantation $nb_internes_1204 = 0; $nb_internes_1004 = 0; $nb_internes_autres = 0; $nb_publics_1204 = 0; $nb_publics_1004 = 0; $nb_publics_autres = 0; $query = "SELECT s.completename AS sname, o.name AS oname, acc.name AS categorie, acu.name AS utilisation FROM `$table_item` c LEFT JOIN glpi_states s ON (c.states_id = s.id) LEFT JOIN glpi_plugin_auf_computers ac ON (c.id = ac.id) LEFT JOIN glpi_plugin_auf_categories acc ON (ac.auf_categories_id = acc.id) LEFT JOIN glpi_plugin_auf_utilisations acu ON (ac.auf_utilisations_id = acu.id) LEFT JOIN glpi_operatingsystems o ON (c.operatingsystems_id = o.id) WHERE c.is_deleted = '0' AND c.is_template = '0' AND ac.est_virtuel IS FALSE AND o.name LIKE 'Ubuntu %' AND c.entities_id = '".$implant_id."'"; $result = $DB->query($query); while ($data=$DB->fetch_assoc($result)) { // on ne compte pas les sorties d'inventaire if (preg_match("/^sortie/i", $data['sname'])) { continue; } // postes internes if (preg_match("/^poste.*interne/i", $data['categorie'])) { if (preg_match("/^production/i", $data['utilisation']) && !preg_match("/panne/i", $data['sname']) ) { if (preg_match("/^Ubuntu 12\.04/", $data['oname'])) { $nb_internes_1204++; } elseif (preg_match("/^Ubuntu 10\.04/", $data['oname'])) { $nb_internes_1004++; } else { $nb_internes_autres++; } } } // postes publics elseif (preg_match("/^poste.*public/i", $data['categorie'])) { if (preg_match("/^production/i", $data['utilisation']) && !preg_match("/panne/i", $data['sname']) ) { if (preg_match("/^Ubuntu 12\.04/", $data['oname'])) { $nb_publics_1204++; } elseif (preg_match("/^Ubuntu 10\.04/", $data['oname'])) { $nb_publics_1004++; } else { $nb_publics_autres++; } } } // autres else { // on ne compte que les postes clients, pas les serveurs } } // systèmes dans l'implantation $total_internes = $nb_internes_1204 + $nb_internes_1004 + $nb_internes_autres; $total_publics = $nb_publics_1204 + $nb_publics_1004 + $nb_publics_autres; if (($total_internes + $total_publics) > 0) { $spaces = ""; for ($i=1;$i<$implant_data['level'];$i++) { $spaces .= " "; } $line = ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= "\n"; $table_lines[] = $line; } // total régional $region_internes_autres += $nb_internes_autres; $region_internes_1004 += $nb_internes_1004; $region_internes_1204 += $nb_internes_1204; $region_publics_autres += $nb_publics_autres; $region_publics_1004 += $nb_publics_1004; $region_publics_1204 += $nb_publics_1204; #$table_lines[] = ""; } // fin des implantations de la région $total_internes = $region_internes_1204 + $region_internes_1004 + $region_internes_autres; $total_publics += $region_publics_1204 + $region_publics_1004 + $region_publics_autres; if (($total_internes + $total_publics) > 0) { $line = ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= "\n"; $table_lines[] = $line; } # TODO: revoir ce pie-chart $region_name = svg_pie_chart(Array( $region_internes_autres + $region_publics_autres, $region_internes_1004 + $region_publics_1004, $region_internes_1204 + $region_publics_1204, ), 16) . $region_name; $table_lines[0] = str_replace("", "", $table_lines[0]); if ($region_id != 0) { echo "\n"; } echo implode("\n", $table_lines); // total général $grand_internes_autres += $region_internes_autres; $grand_internes_1004 += $region_internes_1004; $grand_internes_1204 += $region_internes_1204; $grand_publics_autres += $region_publics_autres; $grand_publics_1004 += $region_publics_1004; $grand_publics_1204 += $region_publics_1204; } // fin des régions #echo ""; $total_internes = $grand_internes_1204 + $grand_internes_1004 + $grand_internes_autres; $total_publics += $grand_publics_1204 + $grand_publics_1004 + $grand_publics_autres; $line = ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; $line .= ""; echo "\n"; echo $line; echo "
ImplantationParc interneParc public
Autres ".svg_circle('blue', 3)."Ubuntu
10.04 ".svg_circle('red', 3)."
Ubuntu
12.04 ".svg_circle('green', 3)."
ProgressionAutres ".svg_circle('blue', 3)."Ubuntu
10.04 ".svg_circle('red', 3)."
Ubuntu
12.04 ".svg_circle('green', 3)."
Progression
$spaces$implant_name$nb_internes_autres$nb_internes_1004$nb_internes_1204"; $line .= svg_bar(Array($nb_internes_autres, $nb_internes_1004, $nb_internes_1204), $svg_bar_width, $svg_bar_height); $line .= round((100*$nb_internes_1204)/$total_internes)."%$nb_publics_autres$nb_publics_1004$nb_publics_1204"; $line .= svg_bar(Array($nb_publics_autres, $nb_publics_1004, $nb_publics_1204), $svg_bar_width, $svg_bar_height); $line .= round((100*$nb_publics_1204)/$total_publics)."%
".$implant_name."
Sous-total$region_internes_autres$region_internes_1004$region_internes_1204"; $line .= svg_bar(Array($region_internes_autres, $region_internes_1004, $region_internes_1204), $svg_bar_width, $svg_bar_height); $line .= round((100*$region_internes_1204)/$total_internes)."%$region_publics_autres$region_publics_1004$region_publics_1204"; $line .= svg_bar(Array($region_publics_autres, $region_publics_1004, $region_publics_1204), $svg_bar_width, $svg_bar_height); $line .= round((100*$region_publics_1204)/$total_publics)."%
$region_name
 
"; $line .= svg_pie_chart(Array( $grand_internes_autres + $grand_publics_autres, $grand_internes_1004 + $grand_publics_1004, $grand_internes_1204 + $grand_publics_1204, ), 16); $line .= "TOTAL GÉNÉRAL$grand_internes_autres$grand_internes_1004$grand_internes_1204"; $line .= svg_bar(Array($grand_internes_autres, $grand_internes_1004, $grand_internes_1204), $svg_bar_width, $svg_bar_height); $line .= round((100*$grand_internes_1204)/$total_internes)."%$grand_publics_autres$grand_publics_1004$grand_publics_1204"; $line .= svg_bar(Array($grand_publics_autres, $grand_publics_1004, $grand_publics_1204), $svg_bar_width, $svg_bar_height); $line .= round((100*$grand_publics_1204)/$total_publics)."%
"; echo "

Remarques :

"; Html::footer(); ?>