You are here

uc_recurring.install in Ubercart 5

File

payment/uc_recurring/uc_recurring.install
View source
<?php

function uc_recurring_install() {
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      db_query("CREATE TABLE {uc_recurring_products} (\n        pfid mediumint(9) NOT NULL,\n        model varchar(255) NOT NULL,\n        fee_amount decimal(10,2) NOT NULL,\n        initial_charge varchar(255) NOT NULL,\n        regular_interval varchar(255) NOT NULL,\n        number_intervals smallint(4) NOT NULL,\n        PRIMARY KEY pfid (pfid)\n      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
      db_query("CREATE TABLE {uc_recurring_users} (\n        rfid mediumint(9) NOT NULL,\n        uid mediumint(9) NOT NULL,\n        fee_handler varchar(255) NOT NULL,\n        next_charge int(11) NOT NULL,\n        fee_amount decimal(10,2) NOT NULL,\n        regular_interval varchar(255) NOT NULL,\n        remaining_intervals smallint(4) NOT NULL,\n        charged_intervals smallint(4) NOT NULL,\n        order_id mediumint(9) NOT NULL,\n        data text NOT NULL,\n        created int(11) NOT NULL,\n        PRIMARY KEY rfid (rfid)\n      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
      break;
    case 'pgsql':
      db_query("CREATE TABLE {uc_recurring_products} (\n        pfid integer NOT NULL default 0,\n        model varchar(255) NOT NULL default '',\n        fee_amount decimal(10,2) NOT NULL default 0.0,\n        initial_charge varchar(255) NOT NULL default '',\n        regular_interval varchar(255) NOT NULL default '',\n        number_intervals integer NOT NULL default 0,\n        PRIMARY KEY (pfid)\n      )");
      db_query("CREATE TABLE {uc_recurring_users} (\n        rfid integer NOT NULL default 0,\n        uid integer NOT NULL default 0,\n        next_charge integer NOT NULL default 0,\n        fee_amount decimal(10,2) NOT NULL default 0.0,\n        regular_interval varchar(255) NOT NULL default '',\n        remaining_intervals integer NOT NULL default 0,\n        charged_intervals integer NOT NULL default 0,\n        order_id integer NOT NULL default 0,\n        data text NOT NULL,\n        created integer NOT NULL,\n        PRIMARY KEY (rfid)\n      )");
      break;
  }
}
function uc_recurring_uninstall() {
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      db_query("DROP TABLE IF EXISTS {uc_recurring_products}");
      db_query("DROP TABLE IF EXISTS {uc_recurring_users}");
      break;
    case 'pgsql':
      db_query("DROP TABLE {uc_recurring_products}");
      db_query("DROP TABLE {uc_recurring_users}");
      break;
  }
  db_query("DELETE FROM {variable} WHERE name LIKE 'uc_recurring_%%'");
  cache_clear_all('variables', 'cache');
}
function uc_recurring_update_1() {
  $ret = array();

  // Add a column to store the recurring fee handler with the user subscription.
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      $ret[] = update_sql("ALTER TABLE {uc_recurring_users} ADD fee_handler VARCHAR(255) NOT NULL AFTER uid");
      break;
    case 'pgsql':
      db_add_column($ret, 'uc_recurring_users', 'fee_handler', 'varchar(255)', array(
        'not null' => TRUE,
        'default' => "''",
      ));
      break;
  }

  // Update existing rows if uc_recurring is the current handler.
  if (variable_get('uc_recurring_handler', 'uc_recurring') == 'uc_recurring') {
    $ret[] = update_sql("UPDATE {uc_recurring_users} SET fee_handler = 'uc_recurring'");
  }
  return $ret;
}