You are here

function uc_discounts_update_6005 in Ubercart Discounts (Alternative) 7.2

Same name and namespace in other branches
  1. 6.2 uc_discounts/uc_discounts.install \uc_discounts_update_6005()

Issue #999778: Allow multiple products to be selected for discount qualification.

File

uc_discounts/uc_discounts.install, line 619
Install, update, and uninstall functions for uc_discounts module.

Code

function uc_discounts_update_6005() {
  $grouping_schema = array(
    'type' => 'int',
    'size' => 'tiny',
    'not null' => TRUE,
    'default' => 1,
    'description' => t('The grouping of this entry since required products be used in discount qualification or application.'),
  );
  $req_prod_type_schema = array(
    'type' => 'int',
    'size' => 'tiny',
    'not null' => TRUE,
    'default' => 0,
  );
  db_add_field('uc_discounts', 'required_product_type', $req_prod_type_schema);
  db_add_field('uc_discounts_products', 'grouping', $grouping_schema);
  db_add_index('uc_discounts_products', 'discount_id_grouping', array(
    'discount_id',
    'grouping',
  ));
  db_add_field('uc_discounts_terms', 'grouping', $grouping_schema);
  db_add_index('uc_discounts_terms', 'discount_id_grouping', array(
    'discount_id',
    'grouping',
  ));
  db_add_field('uc_discounts_skus', 'grouping', $grouping_schema);
  db_add_index('uc_discounts_skus', 'discount_id_grouping', array(
    'discount_id',
    'grouping',
  ));
  db_add_field('uc_discounts_classes', 'grouping', $grouping_schema);
  db_add_index('uc_discounts_classes', 'discount_id_grouping', array(
    'discount_id',
    'grouping',
  ));
  db_add_field('uc_discounts_authors', 'grouping', $grouping_schema);
  db_add_index('uc_discounts_authors', 'discount_id_grouping', array(
    'discount_id',
    'grouping',
  ));
  $result = db_query("SELECT discount_id, required_product FROM {uc_discounts} WHERE required_product != :required_product", array(
    ':required_product' => '',
  ));
  foreach ($result as $discount) {
    db_insert('uc_discounts_skus')
      ->fields(array(
      'discount_id' => $discount->discount_id,
      'sku' => $discount->required_product,
      'grouping' => UC_DISCOUNTS_GROUPING_QUALIFICATION,
    ))
      ->execute();
    db_update('uc_discounts')
      ->fields(array(
      'required_product_type' => UC_DISCOUNTS_FILTER_TYPE_SKUS,
    ))
      ->condition('discount_id', $discount->discount_id)
      ->execute();
  }
  db_drop_field('uc_discounts', 'required_product');
}