From 9f817b6a30aa094135d13834ef67af369a416248 Mon Sep 17 00:00:00 2001 From: Michael Nielson Date: Sat, 14 Jul 2012 22:49:41 -0700 Subject: [PATCH] Added remaining uses views handler. --- commerce_coupon.info | 1 + includes/views/commerce_coupon.views.inc | 7 +++++ ..._coupon_handler_field_coupon_remaining_uses.inc | 30 ++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 includes/views/handlers/commerce_coupon_handler_field_coupon_remaining_uses.inc diff --git a/commerce_coupon.info b/commerce_coupon.info index 2e34755..9c022a6 100644 --- a/commerce_coupon.info +++ b/commerce_coupon.info @@ -15,4 +15,5 @@ files[] = classes/commerce_coupon_type.inc ; Views Handler files[] = includes/views/handlers/commerce_coupon_handler_field_coupon_granted_amount.inc +files[] = includes/views/handlers/commerce_coupon_handler_field_coupon_remaining_uses.inc files[] = includes/views/handlers/commerce_coupon_handler_field_coupon_operations.inc diff --git a/includes/views/commerce_coupon.views.inc b/includes/views/commerce_coupon.views.inc index 3e509b1..f083666 100644 --- a/includes/views/commerce_coupon.views.inc +++ b/includes/views/commerce_coupon.views.inc @@ -25,5 +25,12 @@ function commerce_coupon_views_data_alter(&$data) { 'handler' => 'commerce_coupon_handler_field_coupon_granted_amount', ), ); + $data['commerce_coupon']['remaining_uses'] = array( + 'field' => array( + 'title' => t('Remaining uses'), + 'help' => t('Number of remaining times the coupon can be used.'), + 'handler' => 'commerce_coupon_handler_field_coupon_remaining_uses', + ), + ); } } diff --git a/includes/views/handlers/commerce_coupon_handler_field_coupon_remaining_uses.inc b/includes/views/handlers/commerce_coupon_handler_field_coupon_remaining_uses.inc new file mode 100644 index 0000000..7c82b5b --- /dev/null +++ b/includes/views/handlers/commerce_coupon_handler_field_coupon_remaining_uses.inc @@ -0,0 +1,30 @@ +additional_fields['coupon_id'] = 'coupon_id'; + + } + + function query() { + $this->ensure_my_table(); + $this->add_additional_fields(); + } + + function render($values) { + // Get the coupon id. + $coupon_id = $this->get_value($values, 'coupon_id'); + $times_used = commerce_coupon_get_number_of_uses($coupon_id); + $total = $values->field_commerce_coupon_number_of_uses[0]['raw']['value']; + // TODO - make sure times_used is never greater than total. + return $total-$times_used; + } + +} -- 1.7.9.5