You are here

function uc_coupon_purchase_view in Ubercart Discount Coupons 7.2

Same name and namespace in other branches
  1. 6 uc_coupon_purchase/uc_coupon_purchase.pages.inc \uc_coupon_purchase_view()
  2. 7.3 uc_coupon_purchase/uc_coupon_purchase.pages.inc \uc_coupon_purchase_view()

Display a list of purchased coupons.

1 string reference to 'uc_coupon_purchase_view'
uc_coupon_purchase_menu in uc_coupon_purchase/uc_coupon_purchase.module
Implements hook_menu().

File

uc_coupon_purchase/uc_coupon_purchase.pages.inc, line 10
Page callbacks for uc_coupon.

Code

function uc_coupon_purchase_view($account) {
  drupal_set_title(t('My coupons'));
  $result = db_query('SELECT c.* FROM {uc_coupon_purchase_users} u INNER JOIN {uc_coupons} c ON u.cid = c.cid WHERE u.uid = :uid ORDER BY valid_until ASC, code ASC', array(
    ':uid' => $account->uid,
  ));
  $header = array(
    t('Code'),
    t('Value'),
    t('Validity'),
    t('Max uses'),
    t('Used'),
  );
  $rows = array();
  foreach ($result as $coupon) {
    if ($coupon->bulk) {
      $coupon->data = unserialize($coupon->data);
      $codes = array();
      for ($id = 0; $id < $coupon->data['bulk_number']; $id++) {
        $codes[] = uc_coupon_get_bulk_code($coupon, $id);
      }
    }
    else {
      $codes = array(
        $coupon->code,
      );
    }
    $value = $coupon->type == 'percentage' ? $coupon->value . '%' : uc_currency_format($coupon->value);
    if (!$coupon->status) {
      $valid = t('Inactive');
    }
    elseif (!$coupon->valid_until) {
      $valid = t('Unlimited');
    }
    else {
      $valid_from = format_date($coupon->valid_from, 'custom', variable_get('date_format_uc_store', 'm/d/Y'));
      $valid_until = format_date($coupon->valid_until, 'custom', variable_get('date_format_uc_store', 'm/d/Y'));
      $valid = $valid_from . ' - ' . $valid_until;
    }
    $uses = $coupon->max_uses > 0 ? $coupon->max_uses : t('Unlimited');
    $usage = uc_coupon_count_usage($coupon->cid);
    $icon = theme('image', array(
      'path' => drupal_get_path('module', 'uc_store') . '/images/print.gif',
      'width' => t('Print'),
    ));
    foreach ($codes as $code) {
      if (substr($code, -1) == '*') {
        $link = l($code, 'user/' . $account->uid . '/coupons/' . $coupon->cid);
        $link .= ' ' . l($icon, 'user/' . $account->uid . '/coupons/' . $coupon->cid . '/print', array(
          'html' => TRUE,
        ));
        $used = '';
      }
      else {
        $link = l($code, 'user/' . $account->uid . '/coupons/' . $coupon->cid . '/view/' . $code);
        $link .= ' ' . l($icon, 'user/' . $account->uid . '/coupons/' . $coupon->cid . '/print/' . $code, array(
          'html' => TRUE,
        ));
        $used = empty($usage['codes'][$code]) ? '' : $usage['codes'][$code];
      }
      $rows[] = array(
        $link,
        $value,
        $valid,
        $uses,
        $used,
      );
    }
  }
  if (count($rows)) {
    $output = "<p>" . t("The table below lists the coupons you have purchased.  Please take care that you do not provide any one code to more customers than are allowed in the 'max uses' column") . "</p>";
    $output .= theme('table', array(
      'header' => $header,
      'rows' => $rows,
    ));
  }
  else {
    $output = "<p>" . t('You currently have no coupons available.') . "</p>";
  }
  return $output;
}