X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=admin%2Fdb%2Fcompany_db.inc;h=b774d2bc0d90f83a83a1fbcb37b77148181745fe;hb=0e9e4cf4f01431531dfed299bb501955bb0818ed;hp=3b66dc4cc12fd05796117b5594052f8d9571f55c;hpb=5e63c6ace55729bbb5ee3b060035a25a4426eb0a;p=fa-stable.git diff --git a/admin/db/company_db.inc b/admin/db/company_db.inc index 3b66dc4c..b774d2bc 100644 --- a/admin/db/company_db.inc +++ b/admin/db/company_db.inc @@ -14,6 +14,8 @@ */ function update_company_prefs($params) { + begin_transaction(__FUNCTION__, func_get_args()); + $sql = "UPDATE ".TB_PREF."sys_prefs SET value = "; foreach($params as $name => $value) { if (!db_query($sql. db_escape($value). " WHERE name=".db_escape($name), @@ -22,6 +24,8 @@ function update_company_prefs($params) // update cached value $_SESSION['SysPrefs']->prefs[$name] = $value; } + + commit_transaction(); return true; } /* @@ -33,39 +37,19 @@ function update_company_prefs($params) function get_company_pref($prefs = null) { global $SysPrefs, $db_version; - - if (!isset($_SESSION['SysPrefs']->prefs)) { // cached preferences - -// $_SESSION['SysPrefs'] = new sys_prefs(); - - $sql = "SELECT name, value FROM ".TB_PREF."sys_prefs"; - $result = @db_query($sql); // supress errors before 2.3 db structure upgrade - - if(!$result) - return null; - while($pref = db_fetch_assoc($result)) { - $_SESSION['SysPrefs']->prefs[$pref['name']] = $pref['value']; - } - - $SysPrefs = &$_SESSION['SysPrefs']; - - // update current db status for info in log file - $SysPrefs->db_ok = $SysPrefs->prefs['version_id'] == $db_version; - } + if (!isset($SysPrefs->prefs)) // just after first login or reset + $SysPrefs->refresh(); - $all = $_SESSION['SysPrefs']->prefs; + $all = $SysPrefs->prefs; - if (!$prefs) - return $all; - elseif (is_string($prefs)) + if ($prefs && is_string($prefs)) return @$all[$prefs]; - $ret = array(); - foreach($prefs as $name) - $ret[$name] = $all[$name]; + if (!is_array($all)) + $all = array(); - return $ret; + return $all; } function get_company_prefs() @@ -75,16 +59,15 @@ function get_company_prefs() function set_company_pref($pref, $category, $type, $length, $value) { + begin_transaction(__FUNCTION__, func_get_args()); + $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"); -} + $result = db_query($sql, "cannot set company pref"); + + commit_transaction(); + return $result; -function refresh_sys_prefs() -{ - flush_dir(user_js_cache()); // clear cache - unset($_SESSION['SysPrefs']); - get_company_prefs(); } function get_base_sales_type() @@ -103,54 +86,47 @@ function get_company_extensions($id = -1) { return $installed_extensions; } -function add_payment_terms($daysOrFoll, $terms, $dayNumber) +function add_payment_terms($terms, $type, $days=0, $early_discount=0, $early_days=0) { - if ($daysOrFoll) - { - $sql = "INSERT INTO ".TB_PREF."payment_terms (terms, - days_before_due, day_in_following_month) - VALUES (" . - db_escape($terms) . ", " . db_escape($dayNumber) . ", 0)"; - } - else - { - $sql = "INSERT INTO ".TB_PREF."payment_terms (terms, - days_before_due, day_in_following_month) - VALUES (" . db_escape($terms) . ", - 0, " . db_escape($dayNumber) . ")"; - } + begin_transaction(__FUNCTION__, func_get_args()); + + $sql = "INSERT INTO ".TB_PREF."payment_terms (terms, type, days, early_discount, early_days) + VALUES (" .db_escape($terms) . "," . db_escape($type) . ", ".db_escape($days). ", ".db_escape($early_discount). ", ".db_escape($early_days).")"; + db_query($sql,"The payment term could not be added"); + + commit_transaction(); } -function update_payment_terms($selected_id, $daysOrFoll, $terms, $dayNumber) +function update_payment_terms($selected_id, $terms, $type, $days=0, $early_discount=0, $early_days=0) { - if ($daysOrFoll) - { - $sql = "UPDATE ".TB_PREF."payment_terms SET terms=" . db_escape($terms) . ", - day_in_following_month=0, - days_before_due=" . db_escape($dayNumber) . " - WHERE terms_indicator = " .db_escape($selected_id); - } - else - { - $sql = "UPDATE ".TB_PREF."payment_terms SET terms=" . db_escape($terms) . ", - day_in_following_month=" . db_escape($dayNumber) . ", - days_before_due=0 - WHERE terms_indicator = " .db_escape($selected_id); - } + begin_transaction(__FUNCTION__, func_get_args()); + + $sql = "UPDATE ".TB_PREF."payment_terms SET terms=" . db_escape($terms) . ", + type=".db_escape($type).", + days=" . db_escape($days).", + early_discount=".db_escape($early_discount).", + early_days=".db_escape($early_days). + " WHERE id = " .db_escape($selected_id); + db_query($sql,"The payment term could not be updated"); + + commit_transaction(); } function delete_payment_terms($selected_id) { - $sql="DELETE FROM ".TB_PREF."payment_terms WHERE terms_indicator=".db_escape($selected_id); + begin_transaction(__FUNCTION__, func_get_args()); + + $sql="DELETE FROM ".TB_PREF."payment_terms WHERE id=".db_escape($selected_id); db_query($sql,"could not delete a payment terms"); + + commit_transaction(); } function get_payment_terms($selected_id) { - $sql = "SELECT *, (t.days_before_due=0) AND (t.day_in_following_month=0) as cash_sale - FROM ".TB_PREF."payment_terms t WHERE terms_indicator=".db_escape($selected_id); + $sql = "SELECT * FROM ".TB_PREF."payment_terms t WHERE id=".db_escape($selected_id); $result = db_query($sql,"could not get payment term"); @@ -188,7 +164,7 @@ function key_in_foreign_table($id, $tables, $stdkey) $sql = "SELECT sum(cnt) FROM (". implode(' UNION ', $sqls).") as counts"; $result = db_query($sql, "check relations for ".implode(',',$tables)." failed"); - $count = db_fetch($result); + $count = db_fetch($result); return $count[0]; } @@ -199,37 +175,22 @@ function key_in_foreign_table($id, $tables, $stdkey) // function clean_user_themes($theme) { - global $db_connections, $db, $installed_extensions; + global $db_connections, $db; + + begin_transaction(__FUNCTION__, func_get_args()); $comp = user_company(); - foreach ($db_connections as $n => $conn) { + $connections = $db_connections; // do not use db_connections directly here, or script will hang due to db_connections usage inside the loop + foreach ($connections as $n => $conn) { $db = $_SESSION["wa_current_user"]->set_db_connection($n); $sql = "UPDATE {$conn['tbpref']}users SET theme='default' WHERE theme='$theme'"; if (!db_query($sql, 'Cannot update user theme settings')) return false; } $db = $_SESSION["wa_current_user"]->set_db_connection($comp); - $_SESSION['wa_current_user']->prefs->theme = 'default'; + + commit_transaction(); return true; } - - - - - - - - - - - - - - - - - - -