You are here

function commerce_reports_geckoboard_sales_yearly in Commerce Reporting 7.3

Same name and namespace in other branches
  1. 7.4 modules/geckoboard/commerce_reports_geckoboard.module \commerce_reports_geckoboard_sales_yearly()

Geckoboard hook: Yearly sales

1 string reference to 'commerce_reports_geckoboard_sales_yearly'
commerce_reports_geckoboard_geckoboardapi in modules/geckoboard/commerce_reports_geckoboard.module
Implements hook_geckoboard().

File

modules/geckoboard/commerce_reports_geckoboard.module, line 158

Code

function commerce_reports_geckoboard_sales_yearly() {
  $basequery = db_select('commerce_line_item', 'li')
    ->fields('li', array(
    'line_item_id',
  ))
    ->condition('li.type', 'product')
    ->condition('o.status', array(
    'pending',
    'processing',
    'completed',
  ));
  $basequery
    ->addExpression('SUM(quantity)', 'quantity');
  $basequery
    ->join('commerce_order', 'o', 'o.order_id = li.order_id');

  // This year
  $thisyear = mktime(0, 0, 0, 1, 1, date('Y'));
  $thisyearend = mktime(0, 0, 0, 1, 1, date('Y') + 1);
  $query = clone $basequery;
  $query
    ->condition('o.created', $thisyear, '>=')
    ->condition('o.created', $thisyearend, '<');
  $result = $query
    ->execute()
    ->fetchField(1);
  $thisyear = (int) $result;

  // Last year
  $lastyear = mktime(0, 0, 0, 1, 1, date('Y') - 1);
  $lastyearend = mktime(0, 0, 0, 1, 1, date('Y'));
  $query = clone $basequery;
  $query
    ->condition('o.created', $lastyear, '>=')
    ->condition('o.created', $lastyearend, '<');
  $result = $query
    ->execute()
    ->fetchField(1);
  $lastyear = (int) $result;
  $lastyear_text = t('@units last year', array(
    '@units' => $lastyear,
  ));
  return _commerce_reports_geckoboard_texthelper($thisyear, $lastyear_text);
}