PageRenderTime 47ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/application/modules_core/setup/models/mdl_setup.php

https://bitbucket.org/hlevine/myclientbase-south-african-version
PHP | 1333 lines | 987 code | 345 blank | 1 comment | 18 complexity | 80c499dda551a398624360a03d010436 MD5 | raw file
Possible License(s): GPL-3.0, LGPL-2.1, GPL-2.0
  1. <?php (defined('BASEPATH')) OR exit('No direct script access allowed');
  2. class Mdl_Setup extends MY_Model {
  3. public $install_version = '0.12';
  4. public $upgrade_path;
  5. function __construct() {
  6. parent::__construct();
  7. $this->table_name = 'mcb_users';
  8. $this->primary_key = 'mcb_users.user_id';
  9. $this->upgrade_path = array(
  10. array(
  11. 'from' => '0.9.0',
  12. 'to' => '0.9.2',
  13. 'function' => 'u092'
  14. ),
  15. array(
  16. 'from' => '0.9.2',
  17. 'to' => '0.9.2.1',
  18. 'function' => 'u0921'
  19. ),
  20. array(
  21. 'from' => '0.9.2.1',
  22. 'to' => '0.9.3',
  23. 'function' => 'u093'
  24. ),
  25. array(
  26. 'from' => '0.9.3',
  27. 'to' => '0.9.3.1',
  28. 'function' => 'u0931'
  29. ),
  30. array(
  31. 'from' => '0.9.3.1',
  32. 'to' => '0.9.3.2',
  33. 'function' => 'u0932'
  34. ),
  35. array(
  36. 'from' => '0.9.3.2',
  37. 'to' => '0.9.3.3',
  38. 'function' => 'u0933'
  39. ),
  40. array(
  41. 'from' => '0.9.3.3',
  42. 'to' => '0.9.4',
  43. 'function' => 'u094'
  44. ),
  45. array(
  46. 'from' => '0.9.4',
  47. 'to' => '0.9.4.1',
  48. 'function' => 'u0941'
  49. ),
  50. array(
  51. 'from' => '0.9.4.1',
  52. 'to' => '0.9.4.2',
  53. 'function' => 'u0942'
  54. ),
  55. array(
  56. 'from' => '0.9.4.2',
  57. 'to' => '0.9.4.3',
  58. 'function' => 'u0943'
  59. ),
  60. array(
  61. 'from' => '0.9.4.3',
  62. 'to' => '0.9.4.4',
  63. 'function' => 'u0944'
  64. ),
  65. array(
  66. 'from' => '0.9.4.4',
  67. 'to' => '0.9.4.5',
  68. 'function' => 'u0945'
  69. ),
  70. array(
  71. 'from' => '0.9.4.5',
  72. 'to' => '0.9.4.6',
  73. 'function' => 'u0946'
  74. ),
  75. array(
  76. 'from' => '0.9.4.6',
  77. 'to' => '0.9.5',
  78. 'function' => 'u095'
  79. ),
  80. array(
  81. 'from' => '0.9.5',
  82. 'to' => '0.9.5.1',
  83. 'function' => 'u0951'
  84. ),
  85. array(
  86. 'from' => '0.9.5.1',
  87. 'to' => '0.9.5.2',
  88. 'function' => 'u0952'
  89. ),
  90. array(
  91. 'from' => '0.9.5.2',
  92. 'to' => '0.9.5.3',
  93. 'function' => 'u0953'
  94. ),
  95. array(
  96. 'from' => '0.9.5.3',
  97. 'to' => '0.9.5.4',
  98. 'function' => 'u0954'
  99. ),
  100. array(
  101. 'from' => '0.9.5.4',
  102. 'to' => '0.9.5.5',
  103. 'function' => 'u0955'
  104. ),
  105. array(
  106. 'from' => '0.9.5.5',
  107. 'to' => '0.9.5.6',
  108. 'function' => 'u0956'
  109. ),
  110. array(
  111. 'from' => '0.9.5.6',
  112. 'to' => '0.9.5.7',
  113. 'function' => 'u0957'
  114. ),
  115. array(
  116. 'from' => '0.9.5.7',
  117. 'to' => '0.9.5.8',
  118. 'function' => 'u0958'
  119. ),
  120. array(
  121. 'from' => '0.9.5.8',
  122. 'to' => '0.9.5.9',
  123. 'function' => 'u0959'
  124. ),
  125. array(
  126. 'from' => '0.9.5.9',
  127. 'to' => '0.10',
  128. 'function' => 'u010'
  129. ),
  130. array(
  131. 'from' => '0.10',
  132. 'to' => '0.10.1',
  133. 'function' => 'u0101'
  134. ),
  135. array(
  136. 'from' => '0.10.1',
  137. 'to' => '0.10.2',
  138. 'function' => 'u0102'
  139. ),
  140. array(
  141. 'from' => '0.10.2',
  142. 'to' => '0.10.3',
  143. 'function' => 'u0103'
  144. ),
  145. array(
  146. 'from' => '0.10.3',
  147. 'to' => '0.11',
  148. 'function' => 'u011'
  149. ),
  150. array(
  151. 'from' => '0.11',
  152. 'to' => '0.12',
  153. 'function' => 'u012'
  154. )
  155. );
  156. $this->load->model('mcb_data/mdl_mcb_data');
  157. $this->load->model('mcb_modules/mdl_mcb_modules');
  158. $this->load->model('invoices/mdl_invoice_amounts');
  159. $this->load->model('fields/mdl_fields');
  160. }
  161. function validate_database() {
  162. $this->load->library('form_validation');
  163. $this->form_validation->set_error_delimiters('<div class="error">', '</div>');
  164. $this->form_validation->set_rules('hostname', $this->lang->line('database_server'), 'required');
  165. $this->form_validation->set_rules('database', $this->lang->line('database_name'), 'required');
  166. $this->form_validation->set_rules('username', $this->lang->line('database_username'), 'required');
  167. $this->form_validation->set_rules('password', $this->lang->line('database_password'), 'required');
  168. return parent::validate();
  169. }
  170. function validate() {
  171. $this->load->library('form_validation');
  172. $this->form_validation->set_error_delimiters('<div class="error">', '</div>');
  173. $this->form_validation->set_rules('first_name', $this->lang->line('first_name'), 'required');
  174. $this->form_validation->set_rules('last_name', $this->lang->line('last_name'), 'required');
  175. $this->form_validation->set_rules('username', $this->lang->line('username'), 'required');
  176. $this->form_validation->set_rules('password', $this->lang->line('password'), 'required');
  177. $this->form_validation->set_rules('passwordv', $this->lang->line('password_verify'), 'required|matches[password]');
  178. $this->form_validation->set_rules('address', $this->lang->line('street_address'));
  179. $this->form_validation->set_rules('address', $this->lang->line('street_address_2'));
  180. $this->form_validation->set_rules('city', $this->lang->line('city'));
  181. $this->form_validation->set_rules('state', $this->lang->line('state'));
  182. $this->form_validation->set_rules('zip', $this->lang->line('zip'));
  183. $this->form_validation->set_rules('country', $this->lang->line('country'));
  184. $this->form_validation->set_rules('phone_number', $this->lang->line('phone_number'));
  185. $this->form_validation->set_rules('fax_number', $this->lang->line('fax_number'));
  186. $this->form_validation->set_rules('mobile_number', $this->lang->line('mobile_number'));
  187. $this->form_validation->set_rules('email_address', $this->lang->line('email_address'));
  188. $this->form_validation->set_rules('web_address', $this->lang->line('web_address'));
  189. $this->form_validation->set_rules('company_name', $this->lang->line('company_name'));
  190. return parent::validate();
  191. }
  192. function db_install() {
  193. $return = array();
  194. $this->load->database();
  195. // $this->db->db_debug = 0;
  196. if ($this->db_install_tables()) {
  197. $return[] = $this->lang->line('install_database_success');
  198. }
  199. else {
  200. $return[] = $this->lang->line('install_database_problem');
  201. return $return;
  202. }
  203. $db_array = parent::db_array();
  204. $db_array['password'] = md5($db_array['password']);
  205. $db_array['global_admin'] = 1;
  206. unset($db_array['passwordv']);
  207. if (parent::save($db_array, NULL, FALSE)) {
  208. $return[] = $this->lang->line('install_admin_account_success');
  209. }
  210. else {
  211. $return[] = $this->lang->line('install_admin_account_problem');
  212. return $return;
  213. }
  214. $return[] = $this->lang->line('installation_complete');
  215. $return[] = $this->lang->line('install_delete_folder');
  216. $return[] = APPPATH . 'modules_core/setup';
  217. $return[] = anchor('sessions/login', $this->lang->line('log_in'));
  218. $this->mdl_mcb_modules->refresh();
  219. return $return;
  220. }
  221. function db_install_tables() {
  222. foreach ($this->db_tables() as $query) {
  223. if (!$this->db->query($query)) {
  224. return FALSE;
  225. }
  226. }
  227. $this->install_table_data();
  228. $this->install_mcb_data();
  229. $this->mdl_mcb_data->save('version', $this->install_version);
  230. return TRUE;
  231. }
  232. function db_tables() {
  233. return array(
  234. "CREATE TABLE `mcb_clients` (
  235. `client_id` int(11) NOT NULL AUTO_INCREMENT,
  236. `client_name` varchar(255) NOT NULL DEFAULT '',
  237. `client_address` varchar(100) NOT NULL DEFAULT '',
  238. `client_address_2` varchar(100) NOT NULL DEFAULT '',
  239. `client_city` varchar(50) NOT NULL DEFAULT '',
  240. `client_state` varchar(50) NOT NULL DEFAULT '',
  241. `client_zip` varchar(10) NOT NULL DEFAULT '',
  242. `client_country` varchar(50) NOT NULL DEFAULT '',
  243. `client_phone_number` varchar(25) NOT NULL DEFAULT '',
  244. `client_fax_number` varchar(25) NOT NULL DEFAULT '',
  245. `client_mobile_number` varchar(25) NOT NULL DEFAULT '',
  246. `client_email_address` varchar(100) NOT NULL DEFAULT '',
  247. `client_web_address` varchar(255) NOT NULL DEFAULT '',
  248. `client_notes` longtext CHARACTER SET utf8 COLLATE utf8_bin,
  249. `client_tax_id` varchar(25) NOT NULL DEFAULT '',
  250. `client_active` int(1) NOT NULL DEFAULT '1',
  251. PRIMARY KEY (`client_id`)
  252. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  253. "CREATE TABLE `mcb_client_credits` (
  254. `client_credit_id` int(11) NOT NULL AUTO_INCREMENT,
  255. `client_credit_client_id` int(11) NOT NULL,
  256. `client_credit_date` varchar(14) NOT NULL DEFAULT '',
  257. `client_credit_amount` decimal(10,2) NOT NULL,
  258. `client_credit_note` longtext NOT NULL,
  259. PRIMARY KEY (`client_credit_id`),
  260. KEY `client_credit_client_id` (`client_credit_client_id`,`client_credit_date`)
  261. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  262. "CREATE TABLE `mcb_client_data` (
  263. `mcb_client_data_id` int(11) NOT NULL AUTO_INCREMENT,
  264. `client_id` int(11) NOT NULL DEFAULT '0',
  265. `mcb_client_key` varchar(50) NOT NULL DEFAULT '',
  266. `mcb_client_value` varchar(100) NOT NULL DEFAULT '',
  267. PRIMARY KEY (`mcb_client_data_id`),
  268. KEY `client_id` (`client_id`),
  269. KEY `mcb_client_key` (`mcb_client_key`)
  270. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  271. "CREATE TABLE `mcb_contacts` (
  272. `contact_id` int(11) NOT NULL AUTO_INCREMENT,
  273. `client_id` int(11) NOT NULL DEFAULT '0',
  274. `first_name` varchar(50) NOT NULL DEFAULT '',
  275. `last_name` varchar(50) NOT NULL DEFAULT '',
  276. `address` varchar(100) NOT NULL DEFAULT '',
  277. `address_2` varchar(100) NOT NULL DEFAULT '',
  278. `city` varchar(50) NOT NULL DEFAULT '',
  279. `state` varchar(50) NOT NULL DEFAULT '',
  280. `zip` varchar(10) NOT NULL DEFAULT '',
  281. `country` varchar(50) NOT NULL DEFAULT '',
  282. `phone_number` varchar(25) NOT NULL DEFAULT '',
  283. `fax_number` varchar(25) NOT NULL DEFAULT '',
  284. `mobile_number` varchar(25) NOT NULL DEFAULT '',
  285. `email_address` varchar(100) NOT NULL DEFAULT '',
  286. `web_address` varchar(255) NOT NULL DEFAULT '',
  287. `notes` longtext CHARACTER SET utf8 COLLATE utf8_bin,
  288. PRIMARY KEY (`contact_id`),
  289. KEY `client_id` (`client_id`)
  290. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  291. "CREATE TABLE `mcb_data` (
  292. `mcb_data_id` int(11) NOT NULL AUTO_INCREMENT,
  293. `mcb_key` varchar(50) NOT NULL DEFAULT '',
  294. `mcb_value` varchar(100) NOT NULL DEFAULT '',
  295. PRIMARY KEY (`mcb_data_id`),
  296. UNIQUE KEY `mcb_data_key` (`mcb_key`)
  297. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  298. "CREATE TABLE `mcb_email_templates` (
  299. `email_template_id` int(11) NOT NULL AUTO_INCREMENT,
  300. `email_template_user_id` int(11) NOT NULL,
  301. `email_template_title` varchar(50) NOT NULL DEFAULT '',
  302. `email_template_body` longtext NOT NULL,
  303. `email_template_footer` longtext NOT NULL,
  304. PRIMARY KEY (`email_template_id`),
  305. KEY `email_template_user_id` (`email_template_user_id`)
  306. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  307. "CREATE TABLE `mcb_fields` (
  308. `field_id` int(11) NOT NULL AUTO_INCREMENT,
  309. `object_id` int(11) NOT NULL DEFAULT '0',
  310. `field_name` varchar(50) NOT NULL DEFAULT '',
  311. `field_index` int(11) NOT NULL DEFAULT '0',
  312. `column_name` varchar(25) NOT NULL DEFAULT '',
  313. PRIMARY KEY (`field_id`),
  314. KEY `object_id` (`object_id`),
  315. KEY `field_index` (`field_index`)
  316. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  317. "CREATE TABLE `mcb_inventory` (
  318. `inventory_id` int(11) NOT NULL AUTO_INCREMENT,
  319. `inventory_type_id` int(11) NOT NULL DEFAULT '0',
  320. `inventory_tax_rate_id` int(11) NOT NULL DEFAULT '0',
  321. `inventory_name` varchar(255) NOT NULL DEFAULT '',
  322. `inventory_unit_price` decimal(10,2) NOT NULL DEFAULT '0.00',
  323. `inventory_description` longtext,
  324. `inventory_track_stock` int(1) NOT NULL DEFAULT '0',
  325. PRIMARY KEY (`inventory_id`),
  326. KEY `inventory_type_id` (`inventory_type_id`),
  327. KEY `inventory_tax_rate_id` (`inventory_tax_rate_id`)
  328. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  329. "CREATE TABLE `mcb_inventory_stock` (
  330. `inventory_stock_id` int(11) NOT NULL AUTO_INCREMENT,
  331. `inventory_id` int(11) NOT NULL DEFAULT '0',
  332. `invoice_item_id` int(11) NOT NULL DEFAULT '0',
  333. `inventory_stock_quantity` decimal(10,2) NOT NULL DEFAULT '0.00',
  334. `inventory_stock_date` varchar(14) NOT NULL DEFAULT '',
  335. `inventory_stock_notes` longtext,
  336. PRIMARY KEY (`inventory_stock_id`),
  337. KEY `inventory_id` (`inventory_id`),
  338. KEY `invoice_item_id` (`invoice_item_id`)
  339. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  340. "CREATE TABLE `mcb_inventory_types` (
  341. `inventory_type_id` int(11) NOT NULL AUTO_INCREMENT,
  342. `inventory_type` varchar(50) NOT NULL DEFAULT '',
  343. PRIMARY KEY (`inventory_type_id`)
  344. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  345. "CREATE TABLE `mcb_invoices` (
  346. `invoice_id` int(11) NOT NULL AUTO_INCREMENT,
  347. `client_id` int(11) NOT NULL DEFAULT '0',
  348. `user_id` int(11) NOT NULL DEFAULT '0',
  349. `invoice_status_id` int(11) NOT NULL DEFAULT '0',
  350. `invoice_date_entered` varchar(14) NOT NULL DEFAULT '',
  351. `invoice_number` varchar(50) NOT NULL DEFAULT '',
  352. `invoice_notes` longtext CHARACTER SET utf8 COLLATE utf8_bin,
  353. `invoice_due_date` varchar(14) NOT NULL DEFAULT '',
  354. `invoice_is_quote` int(1) NOT NULL DEFAULT '0',
  355. `invoice_group_id` int(11) NOT NULL DEFAULT '0',
  356. PRIMARY KEY (`invoice_id`),
  357. KEY `client_id` (`client_id`),
  358. KEY `user_id` (`user_id`),
  359. KEY `invoice_status_id` (`invoice_status_id`),
  360. KEY `invoice_group_id` (`invoice_group_id`)
  361. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  362. "CREATE TABLE `mcb_invoice_amounts` (
  363. `invoice_amount_id` int(11) NOT NULL AUTO_INCREMENT,
  364. `invoice_id` int(11) NOT NULL DEFAULT '0',
  365. `invoice_item_subtotal` decimal(10,2) NOT NULL DEFAULT '0.00',
  366. `invoice_item_taxable` decimal(10,2) NOT NULL DEFAULT '0.00',
  367. `invoice_item_tax` decimal(10,2) NOT NULL DEFAULT '0.00',
  368. `invoice_subtotal` decimal(10,2) NOT NULL DEFAULT '0.00',
  369. `invoice_tax` decimal(10,2) NOT NULL DEFAULT '0.00',
  370. `invoice_shipping` decimal(10,2) NOT NULL DEFAULT '0.00',
  371. `invoice_discount` decimal(10,2) NOT NULL DEFAULT '0.00',
  372. `invoice_paid` decimal(10,2) NOT NULL DEFAULT '0.00',
  373. `invoice_total` decimal(10,2) NOT NULL DEFAULT '0.00',
  374. `invoice_balance` decimal(10,2) NOT NULL DEFAULT '0.00',
  375. PRIMARY KEY (`invoice_amount_id`),
  376. KEY `invoice_id` (`invoice_id`)
  377. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  378. "CREATE TABLE `mcb_invoice_groups` (
  379. `invoice_group_id` int(11) NOT NULL AUTO_INCREMENT,
  380. `invoice_group_name` varchar(50) NOT NULL DEFAULT '',
  381. `invoice_group_prefix` varchar(10) NOT NULL DEFAULT '',
  382. `invoice_group_next_id` int(11) NOT NULL DEFAULT '0',
  383. `invoice_group_left_pad` int(2) NOT NULL DEFAULT '0',
  384. `invoice_group_prefix_year` int(1) NOT NULL DEFAULT '0',
  385. `invoice_group_prefix_month` int(1) NOT NULL DEFAULT '0',
  386. PRIMARY KEY (`invoice_group_id`),
  387. KEY `invoice_group_next_id` (`invoice_group_next_id`),
  388. KEY `invoice_group_left_pad` (`invoice_group_left_pad`)
  389. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  390. "CREATE TABLE `mcb_invoice_history` (
  391. `invoice_history_id` int(11) NOT NULL AUTO_INCREMENT,
  392. `invoice_id` int(11) NOT NULL DEFAULT '0',
  393. `user_id` int(11) NOT NULL DEFAULT '0',
  394. `invoice_history_date` varchar(14) NOT NULL DEFAULT '',
  395. `invoice_history_data` longtext,
  396. PRIMARY KEY (`invoice_history_id`),
  397. KEY `user_id` (`user_id`),
  398. KEY `invoice_id` (`invoice_id`)
  399. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  400. "CREATE TABLE `mcb_invoice_items` (
  401. `invoice_item_id` int(11) NOT NULL AUTO_INCREMENT,
  402. `invoice_id` int(11) NOT NULL DEFAULT '0',
  403. `inventory_id` int(11) NOT NULL DEFAULT '0',
  404. `item_name` longtext CHARACTER SET utf8 COLLATE utf8_bin,
  405. `item_description` longtext,
  406. `item_date` varchar(14) NOT NULL DEFAULT '',
  407. `item_qty` decimal(10,2) NOT NULL DEFAULT '0.00',
  408. `item_price` decimal(10,2) NOT NULL DEFAULT '0.00',
  409. `tax_rate_id` int(11) NOT NULL DEFAULT '0',
  410. `is_taxable` int(1) NOT NULL DEFAULT '0',
  411. `item_tax_option` int(1) NOT NULL DEFAULT '0',
  412. `item_order` int(11) NOT NULL DEFAULT '0',
  413. PRIMARY KEY (`invoice_item_id`),
  414. KEY `invoice_id` (`invoice_id`),
  415. KEY `tax_rate_id` (`tax_rate_id`),
  416. KEY `inventory_id` (`inventory_id`),
  417. KEY `item_order` (`item_order`)
  418. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  419. "CREATE TABLE `mcb_invoice_item_amounts` (
  420. `invoice_item_amount_id` int(11) NOT NULL AUTO_INCREMENT,
  421. `invoice_item_id` int(11) NOT NULL DEFAULT '0',
  422. `item_subtotal` decimal(10,2) NOT NULL DEFAULT '0.00',
  423. `item_tax` decimal(10,2) NOT NULL DEFAULT '0.00',
  424. `item_total` decimal(10,2) NOT NULL DEFAULT '0.00',
  425. PRIMARY KEY (`invoice_item_amount_id`),
  426. KEY `invoice_item_id` (`invoice_item_id`)
  427. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  428. "CREATE TABLE `mcb_invoice_statuses` (
  429. `invoice_status_id` int(11) NOT NULL AUTO_INCREMENT,
  430. `invoice_status` varchar(255) NOT NULL DEFAULT '',
  431. `invoice_status_type` int(1) NOT NULL DEFAULT '0',
  432. PRIMARY KEY (`invoice_status_id`)
  433. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  434. "CREATE TABLE `mcb_invoice_tags` (
  435. `invoice_tag_id` int(11) NOT NULL AUTO_INCREMENT,
  436. `invoice_id` int(11) NOT NULL DEFAULT '0',
  437. `tag_id` int(11) NOT NULL DEFAULT '0',
  438. PRIMARY KEY (`invoice_tag_id`),
  439. KEY `invoice_id` (`invoice_id`,`tag_id`)
  440. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  441. "CREATE TABLE `mcb_invoice_tax_rates` (
  442. `invoice_tax_rate_id` int(11) NOT NULL AUTO_INCREMENT,
  443. `invoice_id` int(11) NOT NULL DEFAULT '0',
  444. `tax_rate_id` int(11) NOT NULL DEFAULT '0',
  445. `tax_rate_option` int(1) NOT NULL DEFAULT '1',
  446. `tax_amount` decimal(10,2) NOT NULL DEFAULT '0.00',
  447. PRIMARY KEY (`invoice_tax_rate_id`),
  448. KEY `invoice_id` (`invoice_id`,`tax_rate_id`),
  449. KEY `tax_rate_option` (`tax_rate_option`)
  450. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  451. "CREATE TABLE `mcb_merchant_responses` (
  452. `merchant_response_id` int(11) NOT NULL AUTO_INCREMENT,
  453. `merchant_response_payment_id` int(11) NOT NULL,
  454. `merchant_response_client_id` int(11) NOT NULL,
  455. `merchant_response_invoice_id` int(11) NOT NULL,
  456. `merchant_response_amount` decimal(10,2) NOT NULL,
  457. `merchant_response_method` varchar(25) NOT NULL DEFAULT '',
  458. `merchant_response_status` varchar(25) NOT NULL DEFAULT '',
  459. `merchant_response_payment_status` varchar(25) NOT NULL DEFAULT '',
  460. `merchant_response_payment_processed` int(1) NOT NULL DEFAULT '0',
  461. `merchant_response_post` longtext NOT NULL,
  462. PRIMARY KEY (`merchant_response_id`),
  463. KEY `merchant_response_payment_id` (`merchant_response_payment_id`,`merchant_response_client_id`,`merchant_response_invoice_id`),
  464. KEY `merchant_response_payment_processed` (`merchant_response_payment_processed`)
  465. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  466. "CREATE TABLE `mcb_modules` (
  467. `module_id` int(11) NOT NULL AUTO_INCREMENT,
  468. `module_path` varchar(50) NOT NULL DEFAULT '',
  469. `module_name` varchar(50) NOT NULL DEFAULT '',
  470. `module_description` varchar(255) NOT NULL DEFAULT '',
  471. `module_enabled` int(1) NOT NULL DEFAULT '0',
  472. `module_author` varchar(50) NOT NULL DEFAULT '',
  473. `module_homepage` varchar(255) NOT NULL DEFAULT '',
  474. `module_version` varchar(25) NOT NULL DEFAULT '',
  475. `module_available_version` varchar(25) NOT NULL DEFAULT '',
  476. `module_config` longtext,
  477. `module_core` int(1) NOT NULL DEFAULT '0',
  478. `module_order` int(2) NOT NULL DEFAULT '99',
  479. PRIMARY KEY (`module_id`),
  480. KEY `module_order` (`module_order`)
  481. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  482. "CREATE TABLE `mcb_payments` (
  483. `payment_id` int(11) NOT NULL AUTO_INCREMENT,
  484. `invoice_id` int(11) NOT NULL DEFAULT '0',
  485. `payment_method_id` int(11) NOT NULL DEFAULT '0',
  486. `payment_date` varchar(14) NOT NULL DEFAULT '',
  487. `payment_amount` decimal(10,2) NOT NULL DEFAULT '0.00',
  488. `payment_note` longtext CHARACTER SET utf8 COLLATE utf8_bin,
  489. PRIMARY KEY (`payment_id`),
  490. KEY `invoice_id` (`invoice_id`),
  491. KEY `payment_method_id` (`payment_method_id`)
  492. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  493. "CREATE TABLE `mcb_payment_methods` (
  494. `payment_method_id` int(11) NOT NULL AUTO_INCREMENT,
  495. `payment_method` varchar(25) NOT NULL DEFAULT '',
  496. PRIMARY KEY (`payment_method_id`)
  497. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  498. "CREATE TABLE `mcb_tags` (
  499. `tag_id` int(11) NOT NULL AUTO_INCREMENT,
  500. `tag` varchar(50) NOT NULL DEFAULT '',
  501. PRIMARY KEY (`tag_id`)
  502. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  503. "CREATE TABLE `mcb_tax_rates` (
  504. `tax_rate_id` int(11) NOT NULL AUTO_INCREMENT,
  505. `tax_rate_name` varchar(25) NOT NULL DEFAULT '',
  506. `tax_rate_percent` decimal(5,2) NOT NULL DEFAULT '0.00',
  507. PRIMARY KEY (`tax_rate_id`)
  508. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  509. "CREATE TABLE `mcb_userdata` (
  510. `mcb_userdata_id` int(11) NOT NULL AUTO_INCREMENT,
  511. `mcb_userdata_user_id` int(11) NOT NULL,
  512. `mcb_userdata_key` varchar(50) NOT NULL DEFAULT '',
  513. `mcb_userdata_value` varchar(100) NOT NULL DEFAULT '',
  514. PRIMARY KEY (`mcb_userdata_id`),
  515. KEY `mcb_data_key` (`mcb_userdata_key`),
  516. KEY `mcb_userdata_user_id` (`mcb_userdata_user_id`)
  517. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  518. "CREATE TABLE `mcb_users` (
  519. `user_id` int(11) NOT NULL AUTO_INCREMENT,
  520. `client_id` int(11) NOT NULL DEFAULT '0',
  521. `global_admin` int(1) NOT NULL DEFAULT '0',
  522. `username` varchar(25) NOT NULL DEFAULT '',
  523. `password` varchar(50) NOT NULL DEFAULT '',
  524. `first_name` varchar(50) NOT NULL DEFAULT '',
  525. `last_name` varchar(50) NOT NULL DEFAULT '',
  526. `address` varchar(100) NOT NULL DEFAULT '',
  527. `address_2` varchar(100) NOT NULL DEFAULT '',
  528. `city` varchar(50) NOT NULL DEFAULT '',
  529. `state` varchar(50) NOT NULL DEFAULT '',
  530. `zip` varchar(10) NOT NULL DEFAULT '',
  531. `country` varchar(50) NOT NULL DEFAULT '',
  532. `phone_number` varchar(25) NOT NULL DEFAULT '',
  533. `fax_number` varchar(25) NOT NULL DEFAULT '',
  534. `mobile_number` varchar(25) NOT NULL DEFAULT '',
  535. `email_address` varchar(100) NOT NULL DEFAULT '',
  536. `web_address` varchar(255) NOT NULL DEFAULT '',
  537. `company_name` varchar(255) NOT NULL DEFAULT '',
  538. `last_login` varchar(25) NOT NULL DEFAULT '',
  539. `tax_id_number` varchar(50) NOT NULL DEFAULT '',
  540. PRIMARY KEY (`user_id`),
  541. KEY `client_id` (`client_id`)
  542. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;"
  543. );
  544. }
  545. function db_upgrade() {
  546. $this->load->database();
  547. $return = array();
  548. if ($this->mdl_mcb_data->get('version') <> $this->install_version) {
  549. foreach ($this->upgrade_path as $path) {
  550. $app_version = $this->mdl_mcb_data->get('version');
  551. if ($path['from'] == $app_version) {
  552. if ($this->{$path['function']}()) {
  553. $return[] = 'Upgrade from ' . $path['from'] . ' to ' . $path['to'] . ' successful<br />';
  554. }
  555. else {
  556. $return[] = 'Upgrade from ' . $path['from'] . ' to ' . $path['to'] . ' FAILED. Script exiting.';
  557. return $return;
  558. }
  559. }
  560. }
  561. $return[] = $this->lang->line('upgrade_complete');
  562. $return[] = $this->lang->line('install_delete_folder');
  563. $return[] = APPPATH . 'modules_core/setup';
  564. $return[] = anchor('sessions/login', $this->lang->line('log_in'));
  565. $this->install_mcb_data();
  566. $this->mdl_mcb_modules->refresh();
  567. $this->mdl_invoice_amounts->adjust();
  568. return $return;
  569. }
  570. else {
  571. $return[] = anchor('sessions/login', $this->lang->line('log_in'));
  572. $return[] = $this->lang->line('install_already_current');
  573. return $return;
  574. }
  575. }
  576. function u090() {
  577. $queries = array(
  578. "CREATE TABLE `mcb_fields` (
  579. `field_id` int(11) NOT NULL AUTO_INCREMENT,
  580. `object_id` int(11) NOT NULL,
  581. `field_name` varchar(50) NOT NULL DEFAULT '',
  582. `field_index` int(11) NOT NULL,
  583. `column_name` varchar(25) NOT NULL DEFAULT '',
  584. PRIMARY KEY (`field_id`),
  585. KEY `object_id` (`object_id`),
  586. KEY `field_index` (`field_index`)
  587. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  588. "ALTER TABLE `mcb_modules` ADD `module_order` INT( 2 ) NOT NULL DEFAULT '99',
  589. ADD INDEX ( `module_order` )",
  590. "ALTER TABLE `mcb_invoice_groups` ADD `invoice_group_prefix_year` INT( 1 ) NOT NULL DEFAULT '0',
  591. ADD `invoice_group_prefix_month` INT( 1 ) NOT NULL DEFAULT '0'"
  592. );
  593. if (!$this->run_queries($queries)) {
  594. return FALSE;
  595. }
  596. if ($this->db->field_exists('invoice_stored_description', 'mcb_invoice_stored_items')) {
  597. $this->db->query("ALTER TABLE `mcb_invoice_stored_items` CHANGE `invoice_stored_description` `invoice_stored_item_description` LONGTEXT NOT NULL");
  598. }
  599. $this->mdl_mcb_data->save('version', '0.9.0');
  600. return TRUE;
  601. }
  602. function u092() {
  603. $this->mdl_mcb_data->save('version', '0.9.2');
  604. return TRUE;
  605. }
  606. function u0921() {
  607. $queries = array(
  608. "ALTER TABLE `mcb_clients` CHANGE `client_name` `client_name` varchar(255) NOT NULL DEFAULT '' AFTER client_id",
  609. "ALTER TABLE `mcb_clients` CHANGE `client_country` `client_country` VARCHAR( 50 ) NOT NULL DEFAULT ''"
  610. );
  611. if (!$this->run_queries($queries)) {
  612. return FALSE;
  613. }
  614. $this->mdl_mcb_data->save('version', '0.9.2.1');
  615. return TRUE;
  616. }
  617. function u093() {
  618. $this->mdl_mcb_data->save('version', '0.9.3');
  619. return TRUE;
  620. }
  621. function u0931() {
  622. $this->mdl_mcb_data->save('version', '0.9.3.1');
  623. return TRUE;
  624. }
  625. function u0932() {
  626. $this->mdl_mcb_data->save('version', '0.9.3.2');
  627. return TRUE;
  628. }
  629. function u0933() {
  630. $this->mdl_mcb_data->save('version', '0.9.3.3');
  631. return TRUE;
  632. }
  633. function u094() {
  634. $this->mdl_mcb_data->save('version', '0.9.4');
  635. return TRUE;
  636. }
  637. function u0941() {
  638. $queries = array(
  639. "ALTER TABLE `mcb_invoice_items` ADD `item_tax_option` INT( 1 ) NOT NULL DEFAULT '0'"
  640. );
  641. $this->run_queries($queries);
  642. $this->mdl_mcb_data->save('version', '0.9.4.1');
  643. return TRUE;
  644. }
  645. function u0942() {
  646. $this->mdl_mcb_data->save('version', '0.9.4.2');
  647. return TRUE;
  648. }
  649. function u0943() {
  650. $queries = array(
  651. "RENAME TABLE `mcb_invoice_stored_items` TO `mcb_inventory`",
  652. "ALTER TABLE `mcb_inventory`
  653. CHANGE `invoice_stored_item_id` `inventory_id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
  654. CHANGE `invoice_stored_item` `inventory_name` VARCHAR( 255 ) NOT NULL DEFAULT '',
  655. CHANGE `invoice_stored_unit_price` `inventory_unit_price` DECIMAL( 10, 2 ) NOT NULL DEFAULT '0.00',
  656. CHANGE `invoice_stored_item_description` `inventory_description` LONGTEXT NOT NULL,
  657. ADD `inventory_type_id` INT NOT NULL AFTER `inventory_id` ,
  658. ADD `inventory_track_stock` int(1) NOT NULL DEFAULT '0',
  659. ADD `tax_rate_id` INT NOT NULL AFTER `inventory_type_id`,
  660. ADD INDEX ( `inventory_type_id` ),
  661. ADD INDEX ( `tax_rate_id` )",
  662. "ALTER TABLE `mcb_invoice_items` ADD `inventory_id` INT NOT NULL AFTER `invoice_id` ,
  663. ADD INDEX ( `inventory_id` )",
  664. "CREATE TABLE `mcb_inventory_stock` (
  665. `inventory_stock_id` int(11) NOT NULL AUTO_INCREMENT,
  666. `inventory_id` int(11) NOT NULL,
  667. `invoice_item_id` int(11) NOT NULL,
  668. `inventory_stock_quantity` decimal(10,2) NOT NULL DEFAULT '0.00',
  669. `inventory_stock_date` varchar(14) NOT NULL DEFAULT '',
  670. `inventory_stock_notes` LONGTEXT NOT NULL,
  671. PRIMARY KEY (`inventory_stock_id`),
  672. KEY `inventory_id` (`inventory_id`),
  673. KEY `invoice_item_id` (`invoice_item_id`)
  674. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  675. "CREATE TABLE `mcb_inventory_types` (
  676. `inventory_type_id` int(11) NOT NULL AUTO_INCREMENT,
  677. `inventory_type` varchar(50) NOT NULL DEFAULT '',
  678. PRIMARY KEY (`inventory_type_id`)
  679. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
  680. "ALTER TABLE `mcb_invoice_items` ADD `item_order` INT NOT NULL ,
  681. ADD INDEX ( `item_order` )",
  682. "ALTER TABLE `mcb_users` ADD `client_id` INT NOT NULL AFTER `user_id` ,
  683. ADD INDEX ( `client_id` ) "
  684. );
  685. $this->run_queries($queries);
  686. $this->db->select('invoice_item_id, invoice_id, item_order');
  687. $this->db->order_by('invoice_item_id');
  688. $items = $this->db->get('mcb_invoice_items')->result();
  689. foreach ($items as $item) {
  690. if (!isset($tmp_invoice_id) or isset($tmp_invoice_id) and $tmp_invoice_id <> $item->invoice_id) {
  691. $x = 1;
  692. }
  693. $this->db->where('invoice_item_id', $item->invoice_item_id);
  694. $this->db->set('item_order', $x);
  695. $this->db->update('mcb_invoice_items');
  696. $x++;
  697. $tmp_invoice_id = $item->invoice_id;
  698. }
  699. if ($this->db->table_exists('mcb_client_center')) {
  700. $client_accounts = $this->db->get('mcb_client_center')->result();
  701. foreach ($client_accounts as $user) {
  702. if ($user->client_id) {
  703. $db_array = array(
  704. 'client_id' => $user->client_id,
  705. 'username' => $user->username,
  706. 'password' => $user->password,
  707. 'last_login' => $user->last_login
  708. );
  709. $this->db->insert('mcb_users', $db_array);
  710. }
  711. }
  712. $this->load->dbforge();
  713. $this->dbforge->drop_table('mcb_client_center');
  714. }
  715. $this->mdl_mcb_data->save('version', '0.9.4.3');
  716. return TRUE;
  717. }
  718. function u0944() {
  719. $queries = array(
  720. "ALTER TABLE `mcb_users` CHANGE `client_id` `client_id` INT( 11 ) NOT NULL DEFAULT '0'"
  721. );
  722. $this->run_queries($queries);
  723. $this->mdl_mcb_data->save('version', '0.9.4.4');
  724. return TRUE;
  725. }
  726. function u0945() {
  727. $this->mdl_mcb_data->save('version', '0.9.4.5');
  728. return TRUE;
  729. }
  730. function u0946() {
  731. $this->mdl_mcb_data->save('version', '0.9.4.6');
  732. return TRUE;
  733. }
  734. function u095() {
  735. $this->db->query('UPDATE mcb_invoice_items SET inventory_id = (SELECT inventory_id FROM mcb_inventory WHERE mcb_inventory.inventory_name = mcb_invoice_items.item_name)');
  736. $this->mdl_mcb_data->save('version', '0.9.5');
  737. return TRUE;
  738. }
  739. function u0951() {
  740. $queries = array(
  741. "ALTER TABLE `mcb_client_data` CHANGE `client_id` `client_id` INT( 11 ) NOT NULL DEFAULT '0'",
  742. "ALTER TABLE `mcb_contacts` CHANGE `client_id` `client_id` INT( 11 ) NOT NULL DEFAULT '0',
  743. CHANGE `country` `country` VARCHAR( 50 ) NOT NULL DEFAULT ''",
  744. "ALTER TABLE `mcb_fields` CHANGE `object_id` `object_id` INT( 11 ) NOT NULL DEFAULT '0',
  745. CHANGE `field_index` `field_index` INT( 11 ) NOT NULL DEFAULT '0'",
  746. "ALTER TABLE `mcb_inventory` CHANGE `inventory_type_id` `inventory_type_id` INT( 11 ) NOT NULL DEFAULT '0',
  747. CHANGE `tax_rate_id` `tax_rate_id` INT( 11 ) NOT NULL DEFAULT '0',
  748. CHANGE `inventory_description` `inventory_description` LONGTEXT NULL DEFAULT NULL",
  749. "ALTER TABLE `mcb_inventory_stock` CHANGE `inventory_id` `inventory_id` INT( 11 ) NOT NULL DEFAULT '0',
  750. CHANGE `invoice_item_id` `invoice_item_id` INT( 11 ) NOT NULL DEFAULT '0',
  751. CHANGE `inventory_stock_date` `inventory_stock_date` VARCHAR( 14 ) NOT NULL DEFAULT '',
  752. CHANGE `inventory_stock_notes` `inventory_stock_notes` LONGTEXT NULL DEFAULT NULL",
  753. "ALTER TABLE `mcb_invoices` CHANGE `client_id` `client_id` INT( 11 ) NOT NULL DEFAULT '0',
  754. CHANGE `user_id` `user_id` INT( 11 ) NOT NULL DEFAULT '0',
  755. CHANGE `invoice_status_id` `invoice_status_id` INT( 11 ) NOT NULL DEFAULT '0',
  756. CHANGE `invoice_group_id` `invoice_group_id` INT( 11 ) NOT NULL DEFAULT '0'",
  757. "ALTER TABLE `mcb_invoice_amounts` CHANGE `invoice_id` `invoice_id` INT( 11 ) NOT NULL DEFAULT '0'",
  758. "ALTER TABLE `mcb_invoice_history` CHANGE `invoice_id` `invoice_id` INT( 11 ) NOT NULL DEFAULT '0',
  759. CHANGE `user_id` `user_id` INT( 11 ) NOT NULL DEFAULT '0',
  760. CHANGE `invoice_history_date` `invoice_history_date` VARCHAR( 14 ) NOT NULL DEFAULT '',
  761. CHANGE `invoice_history_data` `invoice_history_data` LONGTEXT NULL DEFAULT NULL",
  762. "ALTER TABLE `mcb_invoice_items` CHANGE `invoice_id` `invoice_id` INT( 11 ) NOT NULL DEFAULT '0',
  763. CHANGE `inventory_id` `inventory_id` INT( 11 ) NOT NULL DEFAULT '0',
  764. CHANGE `item_description` `item_description` LONGTEXT NULL DEFAULT NULL ,
  765. CHANGE `item_date` `item_date` VARCHAR( 14 ) NOT NULL DEFAULT '',
  766. CHANGE `tax_rate_id` `tax_rate_id` INT( 11 ) NOT NULL DEFAULT '0',
  767. CHANGE `is_taxable` `is_taxable` INT( 1 ) NOT NULL DEFAULT '0',
  768. CHANGE `item_order` `item_order` INT( 11 ) NOT NULL DEFAULT '0'",
  769. "ALTER TABLE `mcb_invoice_item_amounts` CHANGE `invoice_item_id` `invoice_item_id` INT( 11 ) NOT NULL DEFAULT '0',
  770. CHANGE `item_subtotal` `item_subtotal` DECIMAL( 10, 2 ) NOT NULL DEFAULT '0.00',
  771. CHANGE `item_tax` `item_tax` DECIMAL( 10, 2 ) NOT NULL DEFAULT '0.00',
  772. CHANGE `item_total` `item_total` DECIMAL( 10, 2 ) NOT NULL DEFAULT '0.00'",
  773. "ALTER TABLE `mcb_invoice_statuses` CHANGE `invoice_status` `invoice_status` VARCHAR( 255 ) NOT NULL DEFAULT '',
  774. CHANGE `invoice_status_type` `invoice_status_type` INT( 1 ) NOT NULL DEFAULT '0'",
  775. "ALTER TABLE `mcb_invoice_tags` CHANGE `invoice_id` `invoice_id` INT( 11 ) NOT NULL DEFAULT '0',
  776. CHANGE `tag_id` `tag_id` INT( 11 ) NOT NULL DEFAULT '0'",
  777. "ALTER TABLE `mcb_invoice_tax_rates` CHANGE `invoice_id` `invoice_id` INT( 11 ) NOT NULL DEFAULT '0',
  778. CHANGE `tax_rate_id` `tax_rate_id` INT( 11 ) NOT NULL DEFAULT '0',
  779. CHANGE `tax_amount` `tax_amount` DECIMAL( 10, 2 ) NOT NULL DEFAULT '0.00'",
  780. "ALTER TABLE `mcb_modules` CHANGE `module_config` `module_config` LONGTEXT NULL DEFAULT NULL",
  781. "ALTER TABLE `mcb_payments` CHANGE `invoice_id` `invoice_id` INT( 11 ) NOT NULL DEFAULT '0',
  782. CHANGE `payment_method_id` `payment_method_id` INT( 11 ) NOT NULL DEFAULT '0'",
  783. "ALTER TABLE `mcb_payment_methods` CHANGE `payment_method` `payment_method` VARCHAR( 25 ) NOT NULL DEFAULT ''",
  784. "ALTER TABLE `mcb_tags` CHANGE `tag` `tag` VARCHAR( 50 ) NOT NULL DEFAULT ''",
  785. "ALTER TABLE `mcb_users` CHANGE `address_2` `address_2` VARCHAR( 100 ) NOT NULL DEFAULT '',
  786. CHANGE `country` `country` VARCHAR( 50 ) NOT NULL DEFAULT ''"
  787. );
  788. $this->run_queries($queries);
  789. $this->mdl_mcb_data->save('version', '0.9.5.1');
  790. return TRUE;
  791. }
  792. function u0952() {
  793. $this->mdl_mcb_data->save('version', '0.9.5.2');
  794. return TRUE;
  795. }
  796. function u0953() {
  797. $this->mdl_mcb_data->save('version', '0.9.5.3');
  798. return TRUE;
  799. }
  800. function u0954() {
  801. $queries = array(
  802. "CREATE TABLE `mcb_userdata` (
  803. `mcb_userdata_id` int(11) NOT NULL AUTO_INCREMENT,
  804. `mcb_userdata_user_id` int(11) NOT NULL,
  805. `mcb_userdata_key` varchar(50) NOT NULL DEFAULT '',
  806. `mcb_userdata_value` varchar(100) NOT NULL DEFAULT '',
  807. PRIMARY KEY (`mcb_userdata_id`),
  808. KEY `mcb_data_key` (`mcb_userdata_key`),
  809. KEY `mcb_userdata_user_id` (`mcb_userdata_user_id`)
  810. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;"
  811. );
  812. $this->run_queries($queries);
  813. $this->mdl_mcb_data->save('version', '0.9.5.4');
  814. return TRUE;
  815. }
  816. function u0955() {
  817. $this->mdl_mcb_data->save('version', '0.9.5.5');
  818. return TRUE;
  819. }
  820. function u0956() {
  821. $queries = array(
  822. "ALTER TABLE `mcb_inventory` CHANGE `tax_rate_id` `inventory_tax_rate_id` INT( 11 ) NOT NULL DEFAULT '0'"
  823. );
  824. $this->run_queries($queries);
  825. $this->mdl_mcb_data->save('version', '0.9.5.6');
  826. return TRUE;
  827. }
  828. function u0957() {
  829. $queries = array(
  830. "CREATE TABLE `mcb_client_credits` (
  831. `client_credit_id` int(11) NOT NULL AUTO_INCREMENT,
  832. `client_credit_client_id` int(11) NOT NULL,
  833. `client_credit_date` varchar(14) NOT NULL DEFAULT '',
  834. `client_credit_amount` decimal(10,2) NOT NULL,
  835. `client_credit_note` longtext NOT NULL,
  836. PRIMARY KEY (`client_credit_id`),
  837. KEY `client_credit_client_id` (`client_credit_client_id`,`client_credit_date`)
  838. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;"
  839. );
  840. $this->run_queries($queries);
  841. $this->mdl_mcb_data->save('version', '0.9.5.7');
  842. return TRUE;
  843. }
  844. function u0958() {
  845. $this->mdl_mcb_data->save('version', '0.9.5.8');
  846. return TRUE;
  847. }
  848. function u0959() {
  849. $this->mdl_mcb_data->save('version', '0.9.5.9');
  850. return TRUE;
  851. }
  852. function u010() {
  853. $this->mdl_mcb_data->save('version', '0.10');
  854. return TRUE;
  855. }
  856. function u0101() {
  857. $queries = array(
  858. "CREATE TABLE `mcb_merchant_responses` (
  859. `merchant_response_id` int(11) NOT NULL AUTO_INCREMENT,
  860. `merchant_response_payment_id` int(11) NOT NULL,
  861. `merchant_response_client_id` int(11) NOT NULL,
  862. `merchant_response_invoice_id` int(11) NOT NULL,
  863. `merchant_response_amount` decimal(10,2) NOT NULL,
  864. `merchant_response_method` varchar(25) NOT NULL DEFAULT '',
  865. `merchant_response_status` varchar(25) NOT NULL DEFAULT '',
  866. `merchant_response_payment_status` varchar(25) NOT NULL DEFAULT '',
  867. `merchant_response_payment_processed` int(1) NOT NULL DEFAULT '0',
  868. `merchant_response_post` longtext NOT NULL,
  869. PRIMARY KEY (`merchant_response_id`),
  870. KEY `merchant_response_payment_id` (`merchant_response_payment_id`,`merchant_response_client_id`,`merchant_response_invoice_id`),
  871. KEY `merchant_response_payment_processed` (`merchant_response_payment_processed`)
  872. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;"
  873. );
  874. $this->run_queries($queries);
  875. $this->mdl_mcb_data->save('version', '0.10.1');
  876. return TRUE;
  877. }
  878. function u0102() {
  879. $queries = array(
  880. "CREATE TABLE `mcb_email_templates` (
  881. `email_template_id` int(11) NOT NULL AUTO_INCREMENT,
  882. `email_template_user_id` int(11) NOT NULL,
  883. `email_template_title` varchar(50) NOT NULL DEFAULT '',
  884. `email_template_body` longtext NOT NULL,
  885. `email_template_footer` longtext NOT NULL,
  886. PRIMARY KEY (`email_template_id`),
  887. KEY `email_template_user_id` (`email_template_user_id`)
  888. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;"
  889. );
  890. $this->run_queries($queries);
  891. $this->mdl_mcb_data->save('version', '0.10.2');
  892. return TRUE;
  893. }
  894. function u0103() {
  895. $this->mdl_mcb_data->save('version', '0.10.3');
  896. return TRUE;
  897. }
  898. function u011() {
  899. $this->mdl_mcb_data->save('version', '0.11');
  900. return TRUE;
  901. }
  902. function u012() {
  903. $this->mdl_mcb_data->save('version', '0.12');
  904. return TRUE;
  905. }
  906. function install_mcb_data() {
  907. $this->mdl_mcb_data->save('application_title', $this->lang->line('myclientbase'), TRUE);
  908. $this->mdl_mcb_data->save('cc_enable_client_tax_id', 0, TRUE);
  909. $this->mdl_mcb_data->save('cc_enable_client_address', 0, TRUE);
  910. $this->mdl_mcb_data->save('cc_enable_client_address_2', 0, TRUE);
  911. $this->mdl_mcb_data->save('cc_enable_client_city', 0, TRUE);
  912. $this->mdl_mcb_data->save('cc_enable_client_state', 0, TRUE);
  913. $this->mdl_mcb_data->save('cc_enable_client_zip', 0, TRUE);
  914. $this->mdl_mcb_data->save('cc_enable_client_country', 0, TRUE);
  915. $this->mdl_mcb_data->save('cc_enable_client_phone_number', 0, TRUE);
  916. $this->mdl_mcb_data->save('cc_enable_client_fax_number', 0, TRUE);
  917. $this->mdl_mcb_data->save('cc_enable_client_mobile_number', 0, TRUE);
  918. $this->mdl_mcb_data->save('cc_enable_client_email_address', 0, TRUE);
  919. $this->mdl_mcb_data->save('cc_enable_client_web_address', 0, TRUE);
  920. $this->mdl_mcb_data->save('cc_edit_enabled', 0, TRUE);
  921. $this->mdl_mcb_data->save('cron_key', '', TRUE);
  922. $this->mdl_mcb_data->save('currency_symbol', '$', TRUE);
  923. $this->mdl_mcb_data->save('currency_symbol_placement', 'before', TRUE);
  924. $this->mdl_mcb_data->save('dashboard_override', '', TRUE);
  925. $this->mdl_mcb_data->save('dashboard_show_closed_invoices', 'TRUE', TRUE);
  926. $this->mdl_mcb_data->save('dashboard_show_open_invoices', 'TRUE', TRUE);
  927. $this->mdl_mcb_data->save('dashboard_show_overdue_invoices', 'TRUE', TRUE);
  928. $this->mdl_mcb_data->save('dashboard_show_pending_invoices', 'TRUE', TRUE);
  929. $this->mdl_mcb_data->save('dashboard_total_paid_cutoff_date', '', TRUE);
  930. $this->mdl_mcb_data->save('decimal_symbol', '.', TRUE);
  931. $this->mdl_mcb_data->save('decimal_taxes_num', 2, TRUE);
  932. $this->mdl_mcb_data->save('default_bcc', '', TRUE);
  933. $this->mdl_mcb_data->save('default_cc', '', TRUE);
  934. $this->mdl_mcb_data->save('default_closed_status_id', 3, TRUE);
  935. $this->mdl_mcb_data->save('default_date_format', 'm/d/Y', TRUE);
  936. $this->mdl_mcb_data->save('default_date_format_mask', '99/99/9999', TRUE);
  937. $this->mdl_mcb_data->save('default_date_format_picker', 'mm/dd/yy', TRUE);
  938. $this->mdl_mcb_data->save('default_email_body', '', TRUE);
  939. $this->mdl_mcb_data->save('default_invoice_group_id', 1, TRUE);
  940. $this->mdl_mcb_data->save('default_invoice_template', 'default', TRUE);
  941. $this->mdl_mcb_data->save('default_item_tax_rate_id', 1, TRUE);
  942. $this->mdl_mcb_data->save('default_item_tax_rate_option', 0, TRUE);
  943. $this->mdl_mcb_data->save('default_language', 'english', TRUE);
  944. $this->mdl_mcb_data->save('default_open_status_id', 1, TRUE);
  945. $this->mdl_mcb_data->save('default_quote_group_id', 1, TRUE);
  946. $this->mdl_mcb_data->save('default_quote_template', 'default_quote', TRUE);
  947. $this->mdl_mcb_data->save('default_receipt_template', 'default', TRUE);
  948. $this->mdl_mcb_data->save('default_tax_rate_id', 1, TRUE);
  949. $this->mdl_mcb_data->save('default_tax_rate_option', 1, TRUE);
  950. $this->mdl_mcb_data->save('disable_invoice_audit_history', 0, TRUE);
  951. $this->mdl_mcb_data->save('display_quantity_decimals', 1, TRUE);
  952. $this->mdl_mcb_data->save('email_protocol', 'php_mail_function', TRUE);
  953. $this->mdl_mcb_data->save('enable_profiler', 0, TRUE);
  954. $this->mdl_mcb_data->save('include_logo_on_invoice', 'FALSE', TRUE);
  955. $this->mdl_mcb_data->save('invoices_due_after', '30', TRUE);
  956. $this->mdl_mcb_data->save('merchant_currency_code', 'USD', TRUE);
  957. $this->mdl_mcb_data->save('merchant_driver', 'Paypal', TRUE);
  958. $this->mdl_mcb_data->save('merchant_enabled', 0, TRUE);
  959. $this->mdl_mcb_data->save('pdf_plugin', 'dompdf', TRUE);
  960. $this->mdl_mcb_data->save('results_per_page', 15, TRUE);
  961. $this->mdl_mcb_data->save('sendmail_path', '', TRUE);
  962. $this->mdl_mcb_data->save('smtp_host', '', TRUE);
  963. $this->mdl_mcb_data->save('smtp_pass', '', TRUE);
  964. $this->mdl_mcb_data->save('smtp_port', '', TRUE);
  965. $this->mdl_mcb_data->save('smtp_timeout', '', TRUE);
  966. $this->mdl_mcb_data->save('smtp_user', '', TRUE);
  967. $this->mdl_mcb_data->save('thousands_separator', ',', TRUE);
  968. }
  969. function install_table_data() {
  970. $this->db->insert('mcb_tax_rates', array('tax_rate_id'=>1,'tax_rate_name'=>$this->lang->line('no_tax'),'tax_rate_percent'=>'0.00'));
  971. $this->db->insert('mcb_payment_methods', array('payment_method'=>$this->lang->line('cash')));
  972. $this->db->insert('mcb_payment_methods', array('payment_method'=>$this->lang->line('check')));
  973. $this->db->insert('mcb_payment_methods', array('payment_method'=>$this->lang->line('credit')));
  974. $this->db->insert('mcb_invoice_statuses', array('invoice_status_id'=>1,'invoice_status'=>$this->lang->line('open'),'invoice_status_type'=>1));
  975. $this->db->insert('mcb_invoice_statuses', array('invoice_status_id'=>2,'invoice_status'=>$this->lang->line('pending'),'invoice_status_type'=>2));
  976. $this->db->insert('mcb_invoice_statuses', array('invoice_status_id'=>3,'invoice_status'=>$this->lang->line('closed'),'invoice_status_type'=>3));
  977. $this->db->insert('mcb_invoice_groups', array('invoice_group_name'=>$this->lang->line('simple_increment'),'invoice_group_next_id'=>1));
  978. }
  979. function run_queries($queries) {
  980. foreach ($queries as $query) {
  981. if (!$this->db->query($query)) {
  982. return FALSE;
  983. }
  984. }
  985. return TRUE;
  986. }
  987. }
  988. ?>