You are here

uc_payment.install in Ubercart 5

File

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

function uc_payment_install() {
  $t = get_t();
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      db_query("CREATE TABLE {uc_payment_receipts} (\n        receipt_id mediumint(9) NOT NULL,\n        order_id mediumint(9) NOT NULL,\n        method varchar(32) NOT NULL,\n        amount decimal(10,2) NOT NULL,\n        uid mediumint(9) NOT NULL,\n        data text NOT NULL,\n        comment tinytext NOT NULL,\n        received int(11) NOT NULL,\n        PRIMARY KEY (receipt_id),\n        KEY order_id (order_id)\n      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
      db_query("INSERT INTO {uc_order_statuses} (order_status_id, title, state, weight, locked) VALUES ('payment_received', '" . $t('Payment received') . "', 'payment_received', 10, 1);");
      break;
    case 'pgsql':
      db_query("CREATE TABLE {uc_payment_receipts} (\n        receipt_id serial NOT NULL,\n        order_id integer NOT NULL,\n        method varchar(32) NOT NULL,\n        amount decimal(10,2) NOT NULL,\n        uid integer NOT NULL,\n        data text NOT NULL,\n        comment text NOT NULL,\n        received integer NOT NULL,\n        PRIMARY KEY (receipt_id)\n      );");
      db_query("CREATE INDEX {uc_payment_receipts}_order_id ON {uc_payment_receipts} (order_id)");
      db_query("INSERT INTO {uc_order_statuses} (order_status_id, title, state, weight, locked) VALUES ('payment_received', '" . $t('Payment received') . "', 'payment_received', 10, 1);");
      break;
  }
}
function uc_payment_uninstall() {
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      db_query("DROP TABLE IF EXISTS {uc_payment_receipts}");
      db_query("DELETE FROM {sequences} WHERE name LIKE '{uc_payment_receipts}_receipt_id'");
      break;
    case 'pgsql':
      db_query("DROP TABLE {uc_payment_receipts}");
      break;
  }
  db_query("DELETE FROM {variable} WHERE name LIKE 'uc_pg_%%'");
  db_query("DELETE FROM {variable} WHERE name LIKE 'uc_payment_method_%%'");
  variable_del('uc_payment_tracking');
  variable_del('uc_payment_deleting');
  variable_del('uc_payment_logging');
  variable_del('uc_default_payment_msg');
}
function uc_payment_update_1() {
  $ret = array();
  switch ($GLOBALS['db_type']) {
    case 'mysql':
    case 'mysqli':
      $ret[] = update_sql("CREATE TABLE {uc_payment_cod} (\n        order_id mediumint(9) NOT NULL,\n        delivery_month smallint(6) NOT NULL,\n        delivery_day smallint(6) NOT NULL,\n        delivery_year smallint(6) NOT NULL,\n        PRIMARY KEY  (order_id)\n      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
      break;
    case 'pgsql':
      $ret[] = update_sql("CREATE TABLE {uc_payment_cod} (\n        order_id mediumint(9) NOT NULL,\n        delivery_month smallint(6) NOT NULL,\n        delivery_day smallint(6) NOT NULL,\n        delivery_year smallint(6) NOT NULL,\n        PRIMARY KEY  (order_id)\n      ) ");
      break;
  }
  $max_id = db_result(db_query("SELECT MAX(receipt_id) FROM {uc_payment_receipts}"));
  if (!empty($max_id)) {
    $ret[] = update_sql("INSERT INTO {sequences} VALUES ('{uc_payment_receipts}_receipt_id', {$max_id})");
  }
  $ret[] = update_sql("ALTER TABLE {uc_payment_receipts} CHANGE receipt_id receipt_id MEDIUMINT(9) NOT NULL");
  $max_id = db_result(db_query("SELECT MAX(check_id) FROM {uc_payment_check}"));
  if (!empty($max_id)) {
    $ret[] = update_sql("INSERT INTO {sequences} VALUES ('{uc_payment_check}_check_id', {$max_id})");
  }
  $ret[] = update_sql("ALTER TABLE {uc_payment_check} CHANGE check_id check_id MEDIUMINT(9) NOT NULL");
  return $ret;
}
function uc_payment_update_2() {
  $t = get_t();

  // Clean out the old order status table and redefine its structure.
  if ($_SESSION['statuses'] !== TRUE) {
    $ret[] = update_sql("ALTER TABLE {uc_order_statuses} CHANGE order_status_id order_status_id VARCHAR(32) CHARACTER SET utf8 NOT NULL default ''");
    $ret[] = update_sql("ALTER TABLE {uc_order_statuses} CHANGE title title VARCHAR(48) CHARACTER SET utf8 NOT NULL default ''");
    $ret[] = update_sql("ALTER TABLE {uc_order_statuses} CHANGE notify state VARCHAR(32) CHARACTER SET utf8 NOT NULL default ''");
    $ret[] = update_sql("ALTER TABLE {uc_order_statuses} ADD weight MEDIUMINT(9) NOT NULL");
    $ret[] = update_sql("ALTER TABLE {uc_order_statuses} ADD locked TINYINT NOT NULL DEFAULT '0'");
    $ret[] = update_sql("DELETE FROM {uc_order_statuses} WHERE order_status_id LIKE '_'");
    $_SESSION['statuses'] = TRUE;
  }
  $ret[] = update_sql("INSERT INTO {uc_order_statuses} (order_status_id, title, state, weight, locked) VALUES ('payment_received', '" . $t('Payment received') . "', 'payment_received', 10, 1);");
  return $ret;
}