bafd38d71ddaaefc017ac4189abc1f4e253b5685
[fa-stable.git] / sql / alter2.3.php
1 <?php
2 /**********************************************************************
3     Copyright (C) FrontAccounting, LLC.
4         Released under the terms of the GNU General Public License, GPL, 
5         as published by the Free Software Foundation, either version 3 
6         of the License, or (at your option) any later version.
7     This program is distributed in the hope that it will be useful,
8     but WITHOUT ANY WARRANTY; without even the implied warranty of
9     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
10     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
12
13 class fa2_3 {
14         var $version = '2.3';   // version installed
15         var $description;
16         var $sql = 'alter2.3.sql';
17         var $preconf = true;
18         
19         function fa2_3() {
20                 $this->description = _('Upgrade from version 2.2 to 2.3');
21         }
22         
23         //
24         //      Install procedure. All additional changes 
25         //      not included in sql file should go here.
26         //
27         function install($pref, $force) 
28         {
29                 $sql = "SELECT debtor_no, payment_terms FROM {$pref}debtors_master";
30                 
31                 $result = db_query($sql);
32                 if (!$result) {
33                         display_error("Cannot read customers"
34                         .':<br>'. db_error_msg($db));
35                         return false;
36                 }
37                 // update all sales orders and transactions with customer std payment terms
38                 while($cust = db_fetch($result)) {
39                         $sql = "UPDATE {$pref}debtor_trans SET "
40                                 ."payment_terms = '" .$cust['payment_terms']
41                                 ."' WHERE debtor_no='".$cust['debtor_no']."'";
42                         if (db_query($sql)==false) {
43                                 display_error("Cannot update cust trans payment"
44                                 .':<br>'. db_error_msg($db));
45                                 return false;
46                         }
47                         $sql = "UPDATE {$pref}sales_orders SET "
48                                 ."payment_terms = '" .$cust['payment_terms']
49                                 ."' WHERE debtor_no='".$cust['debtor_no']."'";
50                         if (db_query($sql)==false) {
51                                 display_error("Cannot update sales order payment"
52                                 .':<br>'. db_error_msg($db));
53                                 return false;
54                         }
55                 }
56                 // remove old preferences table after upgrade script has been executed
57                 $sql = "DROP TABLE IF EXISTS `".$pref."company`";
58
59                 return db_query($sql) && update_company_prefs(array('version_id'=>'2.3'));
60         }
61         //
62         //      Checking before install
63         //
64         function pre_check($pref, $force)
65         {
66                 return true;
67         }
68         //
69         //      Test if patch was applied before.
70         //
71         function installed($pref) {
72                 $n = 3; // number of patches to be installed
73                 $patchcnt = 0;
74
75                 if (!check_table($pref, 'comments', 'type', array('Key'=>'MUL'))) $patchcnt++;
76                 if (!check_table($pref, 'sys_prefs')) $patchcnt++;
77                 if (!check_table($pref, 'sales_orders', 'payment_terms')) $patchcnt++;
78
79                 $n -= $patchcnt;
80                 return $n == 0 ? true : $patchcnt;
81         }
82         
83 $install = new fa2_3;
84 ?>