6eae749ff58bbaaa3d4fe8e6d516c70103b77f0c
[fa-stable.git] / sql / alter2.1.php
1 <?php
2 class fa2_1 {
3         var $version = '2.1';   // version installed
4         var $description = 'Version 2.1';
5         var $sql = 'alter2.1.sql';
6         //
7         //      Install procedure. All additional changes 
8         //      not included in sql file should go here.
9         //
10         function install($pref, $force) 
11         {
12                 global $db;
13         /*
14         Statement below is allowed only for MySQL >=4.0.4:
15         UPDATE `0_bank_trans`, `0_bank_accounts` 
16                 SET 0_bank_trans.bank_act=0_bank_accounts.id 
17                 WHERE 0_bank_trans.bank_act=0_bank_accounts.account_code;
18         */
19                 $sql = "SELECT id, account_code FROM ".$pref."bank_accounts";
20                 if(!($res = db_query($sql))) {
21                         display_error(_("Cannot retrieve bank accounts codes")
22                                 .':<br>'. db_error_msg($db));
23                         return false;
24                 }
25                 while ($acc = db_fetch($res)) {
26                         $sql = "UPDATE ".$pref."bank_trans SET bank_act='"
27                                 .$acc['id']."' WHERE bank_act=".$acc['account_code'];
28                         if (db_query($sql)==false) {
29                         display_error(_("Cannot update bank transactions")
30                                 .':<br>'. db_error_msg($db));
31                                 return false;
32                         }
33                 }
34                 // copy all item codes from stock_master into item_codes
35                 $sql = "SELECT `stock_id`,`description`,`category_id` FROM ".$pref."stock_master";
36                 $result = db_query($sql);
37                 if (!$result) {
38                         display_error(_("Cannot select stock identificators")
39                                 .':<br>'. db_error_msg($db));
40                         return false;
41                 } else {
42                         while ($row = db_fetch_assoc($result)) {
43                                 $sql = "INSERT IGNORE "
44                                         .$pref."item_codes (`item_code`,`stock_id`,`description`,`category_id`)
45                                         VALUES('".$row['stock_id']."','".$row['stock_id']."','"
46                                         .$row['description']."','".$row['category_id']."')";
47                                 $res2 = db_query($sql);
48                                 if (!$res2) {
49                                         display_error(_("Cannot insert stock id into item_codes")
50                                                 .':<br>'. db_error_msg($db));
51                                         return false;
52                                 }
53                         }
54                 }
55                 // remove obsolete bank_trans_types table 
56                 // (DROP queries are skipped during non-forced upgrade)
57                 $sql = "DROP TABLE IF EXISTS `0_bank_trans_types`";
58                 db_query($sql);
59                 
60                 return true;
61         }
62         //
63         //      Checking before install
64         //
65         function pre_check($pref) 
66         {
67                 return true; // true when ok, fail otherwise
68         }
69         //
70         //      Test if patch was applied before.
71         //
72         function installed($pref) {
73                 if (check_table($pref, 'item_codes')) return false;
74                 if (check_table($pref, 'company', 'foreign_codes')) return false;
75                 return true;
76         }
77 };
78
79 $install = new fa2_1;
80 ?>