X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sql%2Falter2.4.php;h=c51f19962c7a347ee82d4abbafa951006674b8be;hb=211598c5964fd138631395c7f329ec8b87c43c0b;hp=fb988bd450bcd50c695fdbbeea08ec856f2e9264;hpb=4f93f0224bfd7365589c36e5a9b95adcb14f4246;p=fa-stable.git diff --git a/sql/alter2.4.php b/sql/alter2.4.php index fb988bd4..c51f1996 100644 --- a/sql/alter2.4.php +++ b/sql/alter2.4.php @@ -32,13 +32,38 @@ class fa2_4 { if (get_company_pref('grn_clearing_act') === null) { // available form 2.3.1, can be not defined on pre-2.4 installations set_company_pref('grn_clearing_act', 'glsetup.purchase', 'varchar', 15, 0); } - if (get_company_pref('default_receival_required') === null) { // new in 2.4 installations - set_company_pref('default_receival_required', 'glsetup.purchase', 'smallint', 6, 10); + if (get_company_pref('default_quote_valid_days') === null) { // new in 2.3.23 installations + set_company_pref('default_quote_valid_days', 'glsetup.sales', 'smallint', 6, 30); } - $result = $this->update_workorders() && $this->switch_database_to_utf($pref); + if (get_company_pref('bcc_email') === null) { // available from 2.3.14, can be not defined on pre-2.4 installations + set_company_pref('bcc_email', 'setup.company', 'varchar', 100, ''); + } + if (get_company_pref('alternative_tax_include_on_docs') === null) { // available from 2.3.14, can be not defined on pre-2.4 installations + set_company_pref('alternative_tax_include_on_docs', 'setup.company', 'tinyint', 1, '0'); + } + if (get_company_pref('suppress_tax_rates') === null) { // available from 2.3.14, can be not defined on pre-2.4 installations + set_company_pref('suppress_tax_rates', 'setup.company', 'tinyint', 1, '0'); + } + + $result = $this->update_workorders() && $this->update_grn_rates() && $this->switch_database_to_utf($pref); + if ($result) $result = $this->do_cleanup(); + //remove obsolete and temporary columns. + // this have to be done here as db_import rearranges alter query order + $dropcol = array( + 'cust_branch' => array('contact_name', 'disable_trans'), + ); + + foreach($dropcol as $table => $columns) + foreach($columns as $col) { + if (db_query("ALTER TABLE `".TB_PREF."{$table}` DROP `$col`")==false) { + display_error("Cannot drop {$table}.{$col} column:
".db_error_msg($db)); + return false; + } + } + return update_company_prefs(array('version_id'=>$db_version)); } // @@ -121,7 +146,7 @@ class fa2_4 { // site default encoding is presumed as encoding for all databases! $lang = array_search_value($dflt_lang, $installed_languages, 'code'); $new_encoding = get_mysql_encoding_name(strtoupper($lang['encoding'])); - // get_usec(); + if ($test) error_log('Switching database to utf8 encoding from '.$old_encoding); $collation = get_mysql_collation(); @@ -129,7 +154,6 @@ class fa2_4 { $tresult = db_query($tsql, "Cannot select all tables with prefix '$pref'"); while($tbl = db_fetch($tresult)) { $table = $tbl[0]; - // if ($table != '1_chart_master') continue; _vd($table); get_usec(); // fast debug on single table db_query("ALTER TABLE `$table` CONVERT TO CHARACTER SET $old_encoding"); // convert encoding on utf-8 tables @@ -178,10 +202,37 @@ class fa2_4 { return true; } + function update_grn_rates() + { + $sql = "SELECT grn.id, grn.delivery_date, supp.curr_code + FROM ".TB_PREF."grn_batch grn, ".TB_PREF."suppliers supp + WHERE supp.supplier_id=grn.supplier_id AND supp.curr_code!='".get_company_pref('curr_default')."'"; + $result = db_query($sql); + + if (!$result) + return false; + + $sql = "UPDATE ".TB_PREF."grn_batch SET rate=%s WHERE id=%d"; + while ($grn = db_fetch($result)) + db_query(sprintf($sql, get_exchange_rate_from_home_currency($grn['curr_code'], sql2date($grn['delivery_date'])), $grn['id'])); + + return true; + } + function do_cleanup() { - $sql = "ALTER TABLE `".TB_PREF."tax_group_items` DROP COLUMN `rate`"; - return db_query($sql); + $dropcol = array( + 'tax_group_items' => array('rate'), + 'budget_trans' => array('type', 'type_no', 'person_id', 'person_type_id', 'memo_'), + ); + + foreach($dropcol as $table => $columns) + foreach($columns as $col) { + if (db_query("ALTER TABLE `".TB_PREF."{$table}` DROP `$col`") == false) { + display_error("Cannot drop {$table}.{$col} column:
".db_error_msg($db)); + return false; + } + } } }