public function sales_per_category() { $colors = array(); $colors[] = '#a3e1d4'; $colors[] = '#dedede'; $colors[] = '#b5b8cf'; $data = array(); foreach (InvoiceItem::total()->byKind()->get() as $item) { $data[$item->kind ? $item->kind : self::LABEL_OTHERS] = array('amount' => $item->total, 'color' => array_shift($colors)); } $total = 0; foreach ($data as $k => $v) { $total += $data[$k]['amount']; } foreach ($data as $k => $v) { $data[$k]['ratio'] = $total ? sprintf('%0.2f', 100 * $data[$k]['amount'] / $total) : 0; } return View::make('stats.pie', array('data' => $data, 'total' => $total)); }