added invoiceing
This commit is contained in:
parent
89b5344e79
commit
0e91ec4b9a
21 changed files with 1892 additions and 322 deletions
|
|
@ -24,87 +24,97 @@
|
|||
|
||||
// Module general information
|
||||
$module_title = "billing";
|
||||
$module_version = "2.0";
|
||||
$db_version = 5;
|
||||
$module_version = "3.0";
|
||||
$db_version = 1;
|
||||
$module_required = FALSE;
|
||||
// Navigation disabled - this is now a purely external module
|
||||
$module_menus = array();
|
||||
|
||||
$install_queries = array();
|
||||
|
||||
// Version 1: Current schema - clean install with all tables and required columns
|
||||
$install_queries[0] = array(
|
||||
"DROP TABLE IF EXISTS `".OGP_DB_PREFIX."billing_services`;",
|
||||
// Billing Services - Available game server packages
|
||||
"CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."billing_services` (
|
||||
`service_id` int(11) NOT NULL auto_increment,
|
||||
`home_cfg_id` int(11) NOT NULL,
|
||||
`mod_cfg_id` int(11) NOT NULL,
|
||||
`service_name` varchar(255) NOT NULL,
|
||||
`remote_server_id` varchar(255) NOT NULL,
|
||||
`out_of_stock` varchar(255) NOT NULL,
|
||||
`slot_max_qty` int(11) NOT NULL,
|
||||
`slot_min_qty` int(11) NOT NULL,
|
||||
`price_daily` float(15,4) NOT NULL,
|
||||
`price_monthly` float(15,4) NOT NULL,
|
||||
`price_year` float(15,4) NOT NULL,
|
||||
`description` varchar(1000) NOT NULL,
|
||||
`img_url` varchar(255) NOT NULL,
|
||||
`ftp` varchar(255) NOT NULL,
|
||||
`install_method` varchar(255) NOT NULL,
|
||||
`manual_url` varchar(255) NOT NULL,
|
||||
`access_rights` varchar(255) NOT NULL,
|
||||
`enabled` int(11) NOT NULL,
|
||||
PRIMARY KEY (`service_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=UTF8;",
|
||||
|
||||
"DROP TABLE IF EXISTS `".OGP_DB_PREFIX."billing_orders`;",
|
||||
`service_id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`home_cfg_id` INT(11) NOT NULL,
|
||||
`mod_cfg_id` INT(11) NOT NULL,
|
||||
`service_name` VARCHAR(255) NOT NULL,
|
||||
`remote_server_id` VARCHAR(255) NOT NULL,
|
||||
`out_of_stock` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`slot_max_qty` INT(11) NOT NULL,
|
||||
`slot_min_qty` INT(11) NOT NULL,
|
||||
`price_daily` FLOAT(15,4) NOT NULL DEFAULT 0,
|
||||
`price_monthly` FLOAT(15,4) NOT NULL DEFAULT 0,
|
||||
`price_year` FLOAT(15,4) NOT NULL DEFAULT 0,
|
||||
`description` VARCHAR(1000) NOT NULL DEFAULT '',
|
||||
`img_url` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`ftp` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`install_method` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`manual_url` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`access_rights` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`enabled` INT(11) NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`service_id`),
|
||||
KEY `enabled` (`enabled`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;",
|
||||
|
||||
// Billing Orders - Actual game server instances (ongoing services)
|
||||
"CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."billing_orders` (
|
||||
`order_id` int(11) NOT NULL auto_increment,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`service_id` int(11) NOT NULL,
|
||||
`home_name` varchar(255) NOT NULL,
|
||||
`ip` varchar(255) NOT NULL,
|
||||
`qty` int(11) NOT NULL,
|
||||
`invoice_duration` varchar(16) NOT NULL,
|
||||
`max_players` int(11) NOT NULL,
|
||||
`price` float(15,2) NOT NULL,
|
||||
`remote_control_password` varchar(10) NULL,
|
||||
`ftp_password` varchar(10) NULL,
|
||||
`cart_id` int(11) NOT NULL,
|
||||
`home_id` varchar(255) NOT NULL DEFAULT '0',
|
||||
`status` varchar(16) NOT NULL DEFAULT '0',
|
||||
`finish_date` varchar(16) NOT NULL DEFAULT '0',
|
||||
`extended` tinyint(1) NOT NULL,
|
||||
`coupon_id` int(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`order_id`)
|
||||
) ENGINE=MyISAM;"
|
||||
`order_id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` INT(11) NOT NULL,
|
||||
`service_id` INT(11) NOT NULL,
|
||||
`home_name` VARCHAR(255) NOT NULL,
|
||||
`ip` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`qty` INT(11) NOT NULL DEFAULT 1,
|
||||
`invoice_duration` VARCHAR(16) NOT NULL DEFAULT 'month',
|
||||
`max_players` INT(11) NOT NULL DEFAULT 0,
|
||||
`price` FLOAT(15,2) NOT NULL DEFAULT 0,
|
||||
`remote_control_password` VARCHAR(255) NULL,
|
||||
`ftp_password` VARCHAR(255) NULL,
|
||||
`home_id` VARCHAR(255) NOT NULL DEFAULT '0',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'in-cart',
|
||||
`order_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`end_date` DATETIME NULL,
|
||||
`payment_txid` VARCHAR(255) NULL,
|
||||
`paid_ts` DATETIME NULL,
|
||||
`coupon_id` INT(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`order_id`),
|
||||
KEY `user_id` (`user_id`),
|
||||
KEY `status` (`status`),
|
||||
KEY `home_id` (`home_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;",
|
||||
|
||||
// Billing Invoices - Created when user adds to cart, becomes order after payment
|
||||
"CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."billing_invoices` (
|
||||
`invoice_id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`order_id` INT(11) NOT NULL DEFAULT 0,
|
||||
`user_id` INT(11) NOT NULL,
|
||||
`service_id` INT(11) NOT NULL,
|
||||
`home_name` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`ip` INT(11) NOT NULL DEFAULT 0,
|
||||
`max_players` INT(11) NOT NULL DEFAULT 0,
|
||||
`remote_control_password` VARCHAR(255) NULL,
|
||||
`ftp_password` VARCHAR(255) NULL,
|
||||
`customer_name` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`customer_email` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`amount` FLOAT(15,2) NOT NULL DEFAULT 0,
|
||||
`currency` VARCHAR(3) NOT NULL DEFAULT 'USD',
|
||||
`status` VARCHAR(16) NOT NULL DEFAULT 'due',
|
||||
`invoice_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`due_date` DATETIME NULL,
|
||||
`paid_date` DATETIME NULL,
|
||||
`payment_txid` VARCHAR(255) NULL,
|
||||
`payment_method` VARCHAR(50) NULL,
|
||||
`description` VARCHAR(500) NOT NULL DEFAULT '',
|
||||
`invoice_duration` VARCHAR(16) NOT NULL DEFAULT 'month',
|
||||
`qty` INT(11) NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`invoice_id`),
|
||||
KEY `order_id` (`order_id`),
|
||||
KEY `user_id` (`user_id`),
|
||||
KEY `status` (`status`),
|
||||
KEY `due_date` (`due_date`),
|
||||
KEY `service_id` (`service_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;"
|
||||
);
|
||||
|
||||
$install_queries[1] = array(
|
||||
"DROP TABLE IF EXISTS `".OGP_DB_PREFIX."billing_carts`;",
|
||||
"CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."billing_carts` (
|
||||
`cart_id` int(11) NOT NULL auto_increment,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`paid` int(11) NULL,
|
||||
PRIMARY KEY (`cart_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=UTF8;"
|
||||
);
|
||||
|
||||
$install_queries[2] = array(
|
||||
"ALTER TABLE `".OGP_DB_PREFIX."billing_carts` ADD `date` varchar(16) NOT NULL DEFAULT '0';",
|
||||
"ALTER TABLE `".OGP_DB_PREFIX."billing_carts` ADD `tax_amount` varchar(16) NOT NULL DEFAULT '0';",
|
||||
"ALTER TABLE `".OGP_DB_PREFIX."billing_carts` ADD `currency` varchar(3) NOT NULL DEFAULT '0';"
|
||||
);
|
||||
|
||||
$install_queries[3] = array(
|
||||
"ALTER TABLE `".OGP_DB_PREFIX."billing_carts` ADD `coupon_id` int(11) NOT NULL DEFAULT 0;"
|
||||
);
|
||||
|
||||
$install_queries[4] = array(
|
||||
"ALTER TABLE `".OGP_DB_PREFIX."billing_orders` MODIFY `coupon_id` int(11) NOT NULL DEFAULT 0;"
|
||||
);
|
||||
|
||||
$install_queries[5] = array(
|
||||
"ALTER TABLE `".OGP_DB_PREFIX."billing_services` ADD `out_of_stock` varchar(255) NOT NULL AFTER `remote_server_id`;"
|
||||
);
|
||||
|
||||
|
||||
?>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue