X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sql%2Falter2.4.php;h=c51f19962c7a347ee82d4abbafa951006674b8be;hb=a771b6cb35770f7b8b5087caf923aeec8fbefe96;hp=c065ce057820c73771940f7df9c1501caf479da8;hpb=53d942f2a0d20cce5e9c409c6485867ce0869e4d;p=fa-stable.git diff --git a/sql/alter2.4.php b/sql/alter2.4.php index c065ce05..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,6 +202,23 @@ 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() { $dropcol = array(