You are here

function uc_coupon_handler_field_all_orders_count::query in Ubercart Discount Coupons 7.2

Same name and namespace in other branches
  1. 7.3 views/uc_coupon_handler_field_all_orders_count.inc \uc_coupon_handler_field_all_orders_count::query()

Here we create the aggregate field that will count the orders.

Overrides views_handler_field::query

File

views/uc_coupon_handler_field_all_orders_count.inc, line 54
Coupon order total field handler

Class

uc_coupon_handler_field_all_orders_count
@file Coupon order total field handler

Code

function query() {
  $this
    ->ensure_my_table();
  $uco = $this->query
    ->ensure_table('uc_coupons_orders');
  $uo = $this->query
    ->ensure_table('uc_orders');
  $this
    ->add_additional_fields();
  if (empty($this->options['statuses'])) {

    // If no status specified, then we show all.
    $in_status = "1";
  }
  else {

    // An array of statuses was specified.
    $in_status = "{$uo}.order_status IN('" . implode("', '", $this->options['statuses']) . "')";
  }
  $this->field_alias = $this->query
    ->add_field(NULL, "CASE WHEN {$in_status} THEN 1 ELSE 0 END", $this->table_alias . '_' . $this->field . '_' . implode('_', $this->options['statuses']), array(
    'function' => 'sum',
  ));
}