You are here

function uc_coupon_purchase_assign_action in Ubercart Discount Coupons 7.3

Action callback to assign a coupon to a user.

File

uc_coupon_purchase/uc_coupon_purchase.rules.inc, line 243
Rules integration for uc_coupon_purchase

Code

function uc_coupon_purchase_assign_action($params) {
  $coupon = uc_coupon_load($params['cid']);
  if ($coupon->cid) {
    if (!empty($params['clone'])) {
      $coupon = uc_coupon_purchase_create($coupon, $params['quantity'], $params['account']->uid);
    }
    elseif (!db_query('SELECT cpuid FROM {uc_coupon_purchase_users} where uid = :uid AND cid = :cid', array(
      ':uid' => $params['account']->uid,
      ':cid' => $coupon->cid,
    ))
      ->fetchField(0)) {
      $record = array(
        'uid' => $params['account']->uid,
        'cid' => $coupon->cid,
      );
      drupal_write_record('uc_coupon_purchase_users', $record);
    }
    if (!empty($params['sole'])) {
      db_delete('uc_coupon_purchase_users')
        ->condition('cid', $coupon->cid)
        ->condition('uid', $params['account']->uid, '!=')
        ->execute();
    }
    if (!empty($params['restrict'])) {
      if (!empty($params['sole'])) {
        $coupon->data['users'] = array();
      }
      $coupon->data['users'][$params['account']->uid] = $params['account']->uid;
      uc_coupon_save($coupon);
    }
    return array(
      'coupon' => $coupon,
    );
  }
  else {
    return array(
      'coupon' => NULL,
    );
  }
}