static function upgrade($version) { $db = Database::instance(); if ($version == 1) { // fix for allowing decimel place in money $db->query("ALTER TABLE {products} CHANGE COLUMN `cost` `cost` DECIMAL(10,2) default 0;"); $db->query("ALTER TABLE {item_products} CHANGE COLUMN `cost` `cost` DECIMAL(10,2) default -1;"); // postage bands $db->query("ALTER TABLE {products} ADD COLUMN `postage_band_id` int(9) default 1"); $db->query("CREATE TABLE IF NOT EXISTS {postage_bands} (\n `id` int(9) NOT NULL auto_increment,\n `name` TEXT NOT NULL,\n `flat_rate` DECIMAL(10,2) default 0,\n `per_item` DECIMAL(10,2) default 0,\n PRIMARY KEY (`id`))\n ENGINE=InnoDB DEFAULT CHARSET=utf8;"); postage_band::create("No Postage", 0, 0); module::set_version("basket", $version = 2); } if ($version == 2) { $db->query("CREATE TABLE IF NOT EXISTS {orders} (\n `id` int(9) NOT NULL auto_increment,\n `text` TEXT NOT NULL,\n PRIMARY KEY (`id`))\n ENGINE=InnoDB DEFAULT CHARSET=utf8;"); basket::setPaymentDetails("<p>Use the following options to pay for this order.</p>\n<p>Send a chequre to..</p>\n<p>Visit the shop..</p>\n<p>By using internet banking..</p>"); basket::setOrderPrefix("ORDER"); basket::setOrderCompletePage("<p>Your order number is %order_number. To pay for this order please either:</p>\n<p> - Send a cheque for %total_cost to with reference %order_number..</p>\n<p> - Visit the shop and quote the order %order_number..</p>\n<p> - Transfer %total_cost using internet banking with reference %order_number..</p>\n<p>Order will be processed as soon as payment is received. You should receive an e-mail with your order details shortly.</p>"); basket::setOrderCompleteEmail("Hi %name,\n\nThank you for your order the order details are below. To pay for this order please either:\n\n- Send a cheque for %total_cost to with reference %order_number..\n- Visit the shop and quote the order %order_number..\n- Transfer %total_cost using internet banking with reference %order_number..\n\nOrder will be processed as soon as payment is received. For order pick-ups please visit..\n\nOrder Details\n-------------\n%order_details\n\nThanks"); basket::setOrderCompleteEmailSubject("Photography Order %order_number"); module::set_version("basket", $version = 3); } if ($version == 3) { $db->query("ALTER TABLE {orders} ADD COLUMN `status` int(9) DEFAULT 0;"); $db->query("CREATE TABLE IF NOT EXISTS {ipn_messages} (\n `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,\n `date` int(11) NOT NULL,\n `key` varchar(20) NOT NULL,\n `txn_id` varchar(20) NOT NULL,\n `status` varchar(20) NOT NULL,\n `success` bool default false,\n `text` text,\n PRIMARY KEY (`id`)\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); module::set_version("basket", $version = 4); } if ($version == 4) { $db->query("ALTER TABLE {orders} ADD COLUMN `name` varchar(1024);"); $db->query("ALTER TABLE {orders} ADD COLUMN `email` varchar(1024);"); $db->query("ALTER TABLE {orders} ADD COLUMN `method` int(9) DEFAULT 0;"); $db->query("ALTER TABLE {orders} ADD COLUMN `cost` DECIMAL(10,2) default 0"); module::set_version("basket", $version = 5); } }
static function upgrade($version) { $db = Database::instance(); if ($version == 1) { // fix for allowing decimel place in money $db->query("ALTER TABLE {products} CHANGE COLUMN `cost` `cost` DECIMAL(10,2) default 0;"); $db->query("ALTER TABLE {item_products} CHANGE COLUMN `cost` `cost` DECIMAL(10,2) default -1;"); // postage bands $db->query("ALTER TABLE {products} ADD COLUMN `postage_band_id` int(9) default 1"); $db->query("CREATE TABLE IF NOT EXISTS {postage_bands} (\n `id` int(9) NOT NULL auto_increment,\n `name` TEXT NOT NULL,\n `flat_rate` DECIMAL(10,2) default 0,\n `per_item` DECIMAL(10,2) default 0,\n PRIMARY KEY (`id`))\n ENGINE=InnoDB DEFAULT CHARSET=utf8;"); postage_band::create("No Postage", 0, 0); module::set_version("basket", $version = 2); } }
public function add_postage_band() { access::verify_csrf(); $form = postage_band::get_add_form_admin(); $valid = $form->validate(); $name = $form->add_postage->inputs["name"]->value; $postage = ORM::factory("postage_band")->where("name", "=", $name)->find(); if ($postage->loaded()) { $form->add_postage->inputs["name"]->add_error("in_use", 1); $valid = false; } if ($valid) { $postage = postage_band::create($name, $form->add_postage->flat_rate->value, $form->add_postage->per_item->value); $postage->save(); message::success(t("Created postage band %postage_name", array("postage_name" => html::clean($postage->name)))); print json::reply(array("result" => "success")); } else { print $form; } }