X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=admin%2Fdb%2Fcompany_db.inc;h=b75251d5feabc2cc0d3df5e95c29f1f061853660;hb=561f438a3a1f7b5753d2b09238871418710e687f;hp=fffd3cb318efd711993ce832dc9b4e701d5fafc7;hpb=46c5f7a65a7659a44ae8254c63152074363d3987;p=fa-stable.git diff --git a/admin/db/company_db.inc b/admin/db/company_db.inc index fffd3cb3..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; @@ -76,6 +80,13 @@ function get_company_prefs($tbpref = TB_PREF) return get_company_pref(null, $tbpref); } +function set_company_pref($pref, $category, $type, $length, $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"); +} + function refresh_sys_prefs() { flush_dir(company_path().'/js_cache'); // clear cache @@ -166,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); @@ -180,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";