X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=admin%2Fdb%2Fcompany_db.inc;h=b75251d5feabc2cc0d3df5e95c29f1f061853660;hb=c85c10b86be48b2b1df728f4751adbb38f2ac8d4;hp=0a01a7c493c7048fae374606ea6d520b11ee9b4b;hpb=210d665520fadd440a47a8e3d7ab78aa84ce879a;p=fa-stable.git diff --git a/admin/db/company_db.inc b/admin/db/company_db.inc index 0a01a7c4..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; @@ -78,8 +82,8 @@ function get_company_prefs($tbpref = TB_PREF) function set_company_pref($pref, $category, $type, $length, $value) { - $sql = "REPLACE `0_sys_prefs` SET `name`=".db_escape($pref).", `category`=".db_escape($category) - .", `type`=".db_escape($type).", `length`=".db_escape($length).", `value`=".db_escape($value); + $sql = "REPLACE ".TB_PREF."sys_prefs SET name=".db_escape($pref).", category=".db_escape($category) + .", type=".db_escape($type).", length=".db_escape($length).", value=".db_escape($value); return db_query($sql, "cannot set company pref"); } @@ -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";