1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | <?php include_once ("../lib/common.inc.php"); // Width and height of the graph $width = 800; $height = 300; $query = "select procurementMethod, SUM(value) as value, MONTH(contractStart) as month, YEAR(contractStart) as year from `contractnotice` where $agencyQ $supplierQ $standardQ group by procurementMethod,year,month order by procurementMethod,year,month"; $result = mysql_query($query); $methods = Array("Direct","Open","Select"); $dates = Array(); $methodValuesP = Array(); $methodValues = Array(); $maxValue = 0; while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { setlocale(LC_MONETARY, 'en_US'); if ($row['value'] > $maxValue) $maxValue = $row['value']; $date = date( 'F ', mktime(0, 0, 0, $row["month"]) ). $row["year"]; if (array_search($date,$dates) === false ) { $dates[$row["year"]*100 + $row["month"]] = $date; ksort($dates); } $methodValuesP[$row["procurementMethod"]][$date] = $row["value"]; } foreach ($methods as $method) { foreach($dates as $date) { if ($methodValuesP[$method][$date] > 0) $methodValues[$method][] = $methodValuesP[$method][$date]; else $methodValues[$method][] = 0; } } $dates = array_values($dates); $totalRecords = array_sum_all($methodValues); mysql_free_result($result); // Create a graph instance $graph = new Graph($width, $height); $graph->SetScale('datint'); $graph->SetMargin(95, 145, 45, 100); // Setup a title for the graph $graph->title->Set($agencyQ.$supplierQ); $graph->SetUserFont("liberation/LiberationSans-Regular.ttf"); $graph->title->SetFont(FF_USERFONT, FS_NORMAL, 12); // Setup font for axis $graph->xaxis->SetFont(FF_USERFONT, FS_NORMAL, 10); $graph->xaxis->SetTickLabels($dates); $graph->xaxis->SetLabelAngle(50); $colors = Array ("orange","red","blue"); for ($i = 0; $i <= 2;$i++) { $lplot[$i] = new LinePlot($methodValues[$methods[$i]]); $lplot[$i]->SetLegend($methods[$i]); $lplot[$i]->SetFillColor($colors[$i]); } // Create the grouped bar plot $alplot = new AccLinePlot($lplot); // ...and add it to the graPH $graph->Add($alplot); $graph->Stroke(); ?> |