You are here

function commerce_coupon_usage_update_7002 in Commerce Coupon 7.2

Add usage records for legacy orders with coupons.

File

modules/usage/commerce_coupon_usage.install, line 92
Installation procedure for Commerce Coupon Usage.

Code

function commerce_coupon_usage_update_7002(&$sandbox) {
  $statuses = array_merge(commerce_order_statuses(array(
    'state' => 'completed',
  )), commerce_order_statuses(array(
    'state' => 'pending',
  )));
  $query = new EntityFieldQuery();
  $query
    ->entityCondition('entity_type', 'commerce_order')
    ->fieldCondition('commerce_coupons', 'target_id', 'NULL', '!=')
    ->propertyCondition('status', array_keys($statuses));
  if (!isset($sandbox['progress'])) {
    $count_query = clone $query;
    $sandbox['progress'] = 0;
    $sandbox['current_id'] = 0;
    $sandbox['max'] = $count_query
      ->count()
      ->execute();
  }
  $result = $query
    ->propertyCondition('order_id', $sandbox['current_id'], '>')
    ->range(0, 4)
    ->propertyOrderBy('order_id', 'ASC')
    ->execute();
  if (!empty($result['commerce_order'])) {

    // Include the module file so that methods are available during update.
    module_load_include('module', 'commerce_coupon_usage', 'commerce_coupon_usage');
    $order_ids = array_keys($result['commerce_order']);
    $orders = commerce_order_load_multiple($order_ids);
    foreach ($orders as $order) {
      commerce_coupon_usage_record_usage($order);
    }
    $sandbox['progress']++;
    $sandbox['current_id'] = $order->order_id;
    if (function_exists('drush_print')) {
      drush_print(t('Processed @n orders', array(
        '@n' => count($order_ids),
      )));
    }
    $sandbox['#finished'] = $sandbox['progress'] / $sandbox['max'];
  }
  else {
    $sandbox['#finished'] = 1;
  }
}