New mysql/mysqli driver implemented. Uses mysqli driver from php version 5.5.
[fa-stable.git] / sql / alter2.4.sql
1 ALTER TABLE `0_suppliers` ADD COLUMN  `tax_algorithm` tinyint(1) NOT NULL default '1' AFTER `tax_included`;
2 ALTER TABLE `0_supp_trans` ADD COLUMN `tax_algorithm` tinyint(1) NULL default '1' AFTER `tax_included`;
3 INSERT INTO `0_sys_prefs` VALUES('tax_algorithm','glsetup.customer', 'tinyint', 1, '1');
4 INSERT INTO `0_sys_prefs` VALUES('gl_closing_date','setup.closing_date', 'date', 8, '');
5 # Fix eventual invalid date/year in audit records
6 UPDATE `0_audit_trail` audit 
7                 LEFT JOIN `0_gl_trans` gl ON  gl.`type`=audit.`type` AND gl.type_no=audit.trans_no
8                 LEFT JOIN `0_fiscal_year` year ON year.begin<=gl.tran_date AND year.end>=gl.tran_date
9                 SET audit.gl_date=gl.tran_date, audit.fiscal_year=year.id
10                 WHERE NOT ISNULL(gl.`type`);
11
12 DROP TABLE IF EXISTS `0_wo_costing`;
13
14 CREATE TABLE `0_wo_costing` (
15   `id` int(11) NOT NULL auto_increment,
16   `workorder_id` int(11) NOT NULL default '0',
17   `cost_type`   tinyint(1) NOT NULL default '0',
18   `trans_type` int(11) NOT NULL default '0',
19   `trans_no` int(11) NOT NULL default '0',
20   `factor` double NOT NULL default '1',
21   PRIMARY KEY  (`id`)
22 ) ENGINE=InnoDB;
23
24 UPDATE `0_gl_trans` gl
25                 LEFT JOIN `0_cust_branch` br ON br.receivables_account=gl.account AND br.debtor_no=gl.person_id AND gl.person_type_id=2
26                 LEFT JOIN `0_suppliers` sup ON sup.payable_account=gl.account AND sup.supplier_id=gl.person_id AND gl.person_type_id=3
27  SET `person_id` = IF(br.receivables_account, br.debtor_no, IF(sup.payable_account, sup.supplier_id, NULL)), 
28         `person_type_id` = IF(br.receivables_account, 2, IF(sup.payable_account, 3, NULL));
29
30 ALTER TABLE `0_tax_group_items` ADD COLUMN `tax_shipping` tinyint(1) NOT NULL default '0' AFTER `rate`;
31 UPDATE `0_tax_group_items` tgi
32         SET tgi.tax_shipping=1
33         WHERE tgi.rate=(SELECT 0_tax_types.rate FROM 0_tax_types, 0_tax_groups 
34                 WHERE tax_shipping=1 AND tgi.tax_group_id=0_tax_groups.id AND tgi.tax_type_id=0_tax_types.id);
35 ALTER TABLE `0_tax_groups` DROP COLUMN `tax_shipping`;
36
37 ALTER TABLE `0_sales_order_details` ADD KEY `stkcode` (`stk_code`);
38 ALTER TABLE `0_purch_order_details` ADD KEY `itemcode` (`item_code`);
39 ALTER TABLE `0_sys_prefs` CHANGE `value` `value` TEXT NOT NULL;
40 ALTER TABLE `0_cust_branch` ADD COLUMN `bank_account` varchar(60) DEFAULT NULL AFTER `notes`;
41
42 ALTER TABLE `0_debtor_trans` ADD COLUMN `tax_included` tinyint(1) unsigned NOT NULL default '0' AFTER `payment_terms`;
43 UPDATE `0_debtor_trans` tr, `0_trans_tax_details` td SET tr.tax_included=td.included_in_price
44         WHERE tr.`type`=td.trans_type AND tr.trans_no=td.trans_no AND td.included_in_price;
45
46 ALTER TABLE `0_bank_accounts` ADD COLUMN `bank_charge_act` varchar(15) NOT NULL DEFAULT '' AFTER `id`;
47 UPDATE `0_bank_accounts` SET `bank_charge_act`=(SELECT `value` FROM 0_sys_prefs WHERE name='bank_charge_act');
48
49 ALTER TABLE `0_users` ADD `transaction_days` INT( 6 ) NOT NULL default '30' COMMENT 'Transaction days' AFTER `startup_tab`;
50
51 ALTER TABLE `0_purch_orders` ADD COLUMN `prep_amount` double NOT NULL DEFAULT 0 AFTER `total`;
52 ALTER TABLE `0_purch_orders` ADD COLUMN `alloc` double NOT NULL DEFAULT 0 AFTER `prep_amount`;
53
54 ALTER TABLE `0_sales_orders` ADD COLUMN `prep_amount` double NOT NULL DEFAULT 0 AFTER `total`;
55 ALTER TABLE `0_sales_orders` ADD COLUMN `alloc` double NOT NULL DEFAULT 0 AFTER `prep_amount`;
56
57 ALTER TABLE `0_cust_allocations` ADD  UNIQUE KEY(`trans_type_from`,`trans_no_from`,`trans_type_to`,`trans_no_to`);
58 ALTER TABLE `0_supp_allocations` ADD  UNIQUE KEY(`trans_type_from`,`trans_no_from`,`trans_type_to`,`trans_no_to`);
59
60 ALTER TABLE `0_sales_order_details` ADD COLUMN `invoiced` double NOT NULL DEFAULT 0 AFTER `quantity`;
61
62 # update sales_order_details.invoiced with sum of invoiced quantities on all related SI
63 UPDATE `0_sales_order_details` so
64         LEFT JOIN `0_debtor_trans_details` delivery ON delivery.`debtor_trans_type`=13 AND src_id=so.id
65         LEFT JOIN (SELECT src_id, sum(quantity) as qty FROM `0_debtor_trans_details` WHERE `debtor_trans_type`=10 GROUP BY src_id) inv
66                 ON inv.src_id=delivery.id
67         SET `invoiced` = `invoiced`+inv.qty;
68
69 ALTER TABLE `0_debtor_trans` ADD COLUMN `prep_amount` double NOT NULL DEFAULT 0 AFTER `alloc`;
70
71 INSERT INTO `0_sys_prefs` VALUES ('deferred_income_act', 'glsetup.sales', 'varchar', '15', '');
72
73 # set others transactions edition for all roles for backward  compatibility
74 UPDATE `0_security_roles` SET `sections`=CONCAT_WS(';', `sections`, '768'), `areas`='775'
75         WHERE NOT `sections` REGEXP '[^0-9]?768[^0-9]?';
76
77 UPDATE `0_security_roles` SET `areas`=CONCAT_WS(';', `areas`, '775')
78         WHERE NOT `areas` REGEXP '[^0-9]?775[^0-9]?';
79
80 ALTER TABLE `0_stock_master` ADD COLUMN `no_purchase` tinyint(1) NOT NULL default '0' AFTER `no_sale`;
81 ALTER TABLE `0_stock_category` ADD COLUMN `dflt_no_purchase` tinyint(1) NOT NULL default '0' AFTER `dflt_no_sale`;
82
83 # added exchange rate field in grn_batch
84 ALTER TABLE `0_grn_batch` ADD COLUMN `rate` double NULL default '1' AFTER `loc_code`;
85 ALTER TABLE `0_users` CHANGE `query_size` `query_size` TINYINT(1) UNSIGNED NOT NULL DEFAULT 10;