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;
}
}