X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=admin%2Fdb%2Fcompany_db.inc;h=b75251d5feabc2cc0d3df5e95c29f1f061853660;hb=87ac1ff401682a1ccbbbf01ece7afe8ff518d3fe;hp=b3339053640565e13d49430baa629385e2caca36;hpb=af310a0962c8b2c62536c358de6b1c7602e713f6;p=fa-stable.git diff --git a/admin/db/company_db.inc b/admin/db/company_db.inc index b3339053..b75251d5 100644 --- a/admin/db/company_db.inc +++ b/admin/db/company_db.inc @@ -34,7 +34,10 @@ function get_company_pref($prefs = null, $tbpref = null) { global $SysPrefs, $db_version; - if (!isset($_SESSION['SysPrefs']->prefs)) { // cached preferences + static $cached; // retrieve values from db once a request. Some values can't be cached between requests + // to ensure prefs integrity for all usrs (e.g. gl_close_date). + + if (!$cached || !isset($_SESSION['SysPrefs'])) { // cached preferences $_SESSION['SysPrefs'] = new sys_prefs(); @@ -55,6 +58,7 @@ function get_company_pref($prefs = null, $tbpref = null) // update current db status for info in log file $SysPrefs->db_ok = $SysPrefs->prefs['version_id'] == $db_version; + $cached = true; } $all = $_SESSION['SysPrefs']->prefs; @@ -173,10 +177,8 @@ function get_payment_terms_all($show_inactive) value is name of foreign key field. For numeric keys $stdkey field name is used. $stdkey - standard name of foreign key. */ -function key_in_foreign_table($id, $tables, $stdkey, $escaped=false) +function key_in_foreign_table($id, $tables, $stdkey) { - if (!$escaped) - $id = db_escape($id); if (!is_array($tables)) $tables = array($tables); @@ -187,7 +189,7 @@ function key_in_foreign_table($id, $tables, $stdkey, $escaped=false) $tbl = $key; $key = $stdkey; } - $sqls[] = "(SELECT COUNT(*) as cnt FROM ".TB_PREF."$tbl WHERE $key=$id)\n"; + $sqls[] = "(SELECT COUNT(*) as cnt FROM `".TB_PREF."$tbl` WHERE `$key`=".db_escape($id).")\n"; } $sql = "SELECT sum(cnt) FROM (". implode(' UNION ', $sqls).") as counts";