You are here

function uc_coupon_handler_field_all_orders_gross::query in Ubercart Discount Coupons 7.3

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

Add the aggregate field that will sum total+value

Overrides uc_coupon_handler_field_all_orders_total::query

File

views/uc_coupon_handler_field_all_orders_gross.inc, line 13
Coupon order total field handler

Class

uc_coupon_handler_field_all_orders_gross
@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 ({$uo}.order_total+{$uco}.value) ELSE 0 END", $this->table_alias . '_' . $this->field . '_' . implode('_', $this->options['statuses']), array(
    'function' => 'sum',
  ));
}