You are here

function commerce_reports_geckoboard_sales_weekly 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_weekly()

Geckoboard hook: Weekly sales

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

File

modules/geckoboard/commerce_reports_geckoboard.module, line 88

Code

function commerce_reports_geckoboard_sales_weekly() {
  $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 week
  $weekstart = strtotime(date("o-\\WW"));
  $weekend = $weekstart + 604800;
  $query = clone $basequery;
  $query
    ->condition('o.created', $weekstart, '>=')
    ->condition('o.created', $weekend, '<');
  $result = $query
    ->execute()
    ->fetchField(1);
  $thisweek = (int) $result;

  // Last week
  $lastweekend = strtotime(date("o-\\WW"));
  $lastweekstart = $lastweekend - 604800;
  $query = clone $basequery;
  $query
    ->condition('o.created', $lastweekstart, '>=')
    ->condition('o.created', $lastweekend, '<');
  $result = $query
    ->execute()
    ->fetchField(1);
  $lastweek = (int) $result;
  $lastweek_text = t('@units last week', array(
    '@units' => $lastweek,
  ));
  return _commerce_reports_geckoboard_texthelper($thisweek, $lastweek_text);
}