X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fcurrent_user.inc;h=b97db9f374bdf747390201ef5f29da3765c0d444;hb=66a62190f99d83f958bb98195b5756b8b307e378;hp=8a167e3ffe7acb0dd7ae39a6f0cff2cde818ac1b;hpb=21ba0553185531c12f16efef9010033d5dd62cdc;p=fa-stable.git diff --git a/includes/current_user.inc b/includes/current_user.inc index 8a167e3f..b97db9f3 100644 --- a/includes/current_user.inc +++ b/includes/current_user.inc @@ -9,8 +9,11 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License here . ***********************************************************************/ -include_once($path_to_root . "/includes/prefs/userprefs.inc"); +include_once($path_to_root . "/includes/prefs/userprefs.inc"); +if (!defined('TB_PREF')) { + define('TB_PREF', '&TB_PREF&'); +} //-------------------------------------------------------------------------- class current_user @@ -19,17 +22,18 @@ class current_user var $loginname; var $username; var $name; - var $company; + var $company; // user's company var $pos; var $access; var $timeout; var $last_act; var $role_set = false; - var $old_db; + var $old_db; var $logged; var $ui_mode = 0; var $prefs; + var $cur_con; // current db connection (can be different from $company for superuser) function current_user() { @@ -149,22 +153,9 @@ class current_user return $this->can_access($page_level); } - function get_db_connection($id=-1) + function set_db_connection($id = -1) { - global $db_connections; - - $connection = $db_connections[$id == -1 ? $this->company : $id]; - - //print_r($connection); - - $db = mysql_connect($connection["host"] , - $connection["dbuser"], $connection["dbpassword"]); - mysql_select_db($connection["dbname"],$db); - - if (!defined('TB_PREF')) - define('TB_PREF', $connection["tbpref"]); - - return $db; + return set_global_connection($id); } function update_prefs($prefs) @@ -183,18 +174,33 @@ class current_user function round2($number, $decimals=0) { - $delta = ($number < 0 ? -.000001 : .000001); + $delta = ($number < 0 ? -.0000000001 : .0000000001); return round($number+$delta, $decimals); } +/* + Returns number formatted according to user setup and using $decimals digits after dot + (defualt is 0). When $decimals is set to 'max' maximum available precision is used + (decimals depend on value) and trailing zeros are trimmed. +*/ function number_format2($number, $decimals=0) { global $thoseps, $decseps; $tsep = $thoseps[$_SESSION["wa_current_user"]->prefs->tho_sep()]; $dsep = $decseps[$_SESSION["wa_current_user"]->prefs->dec_sep()]; //return number_format($number, $decimals, $dsep, $tsep); - $delta = ($number < 0 ? -.000001 : .000001); - return number_format($number+$delta, $decimals, $dsep, $tsep); + if($decimals==='max') + $dec = 15 - floor(log10(abs($number))); + else { + $delta = ($number < 0 ? -.0000000001 : .0000000001); + $number += $delta; + $dec = $decimals; + } + + $num = number_format($number, $dec, $dsep, $tsep); + + return $decimals==='max' ? rtrim($num, '0') : $num; + } // // Current ui mode. @@ -236,6 +242,7 @@ function qty_format($number, $stock_id=null, &$dec) { $dec = get_qty_dec($stock_id); return number_format2($number, $dec); } + // and get_qty_dec function get_qty_dec($stock_id=null) { @@ -248,6 +255,13 @@ function get_qty_dec($stock_id=null) return $dec; } //------------------------------------------------------------------- +// +// Maximum precision format. Strips trailing unsignificant digits. +// +function maxprec_format($number) { + return number_format2($number, 'max'); +} + function exrate_format($number) { return number_format2($number, $_SESSION["wa_current_user"]->prefs->exrate_dec()); @@ -281,7 +295,9 @@ function user_numeric($input) { function user_company() { - return $_SESSION["wa_current_user"]->company; + global $def_coy; + + return isset($_SESSION["wa_current_user"]) ? $_SESSION["wa_current_user"]->company : $def_coy; } function user_pos() @@ -351,7 +367,8 @@ function user_dec_sep() function user_theme() { - return $_SESSION["wa_current_user"]->prefs->get_theme(); + return isset($_SESSION["wa_current_user"]) ? + $_SESSION["wa_current_user"]->prefs->get_theme() : 'default'; } function user_pagesize() @@ -467,7 +484,7 @@ function array_append(&$array, $elements) function array_search_value($needle, $haystack, $valuekey=null) { foreach($haystack as $key => $value) { - $val = isset($valuekey) ? $value[$valuekey] : $value; + $val = isset($valuekey) ? @$value[$valuekey] : $value; if ($needle == $val){ return $value; } @@ -483,7 +500,7 @@ function array_search_keys($needle, $haystack, $valuekey=null) $keys = array(); if($haystack) foreach($haystack as $key => $value) { - $val = isset($valuekey) ? $value[$valuekey] : $value; + $val = isset($valuekey) ? @$value[$valuekey] : $value; if ($needle == $val){ $keys[] = $key; } @@ -499,4 +516,33 @@ function array_search_key($needle, $haystack, $valuekey=null) $keys = array_search_keys($needle, $haystack, $valuekey); return @$keys[0]; } + +function flush_dir($path, $wipe = false) +{ + $dir = opendir($path); + while(false !== ($fname = readdir($dir))) { + if($fname=='.' || $fname=='..' || $fname=='CVS' || (!$wipe && $fname=='index.php')) continue; + if(is_dir($path.'/'.$fname)) { + flush_dir($path.'/'.$fname, $wipe); + if ($wipe) @rmdir($path.'/'.$fname); + } else + @unlink($path.'/'.$fname); + } +} +/* + Returns current path to company private folder. + (Current path can change after chdir). +*/ +function company_path($comp=null) +{ + global $path_to_root, $comp_path; + + if (!isset($comp)) + $comp = user_company(); + + // if path is relative, set current path_to_root + return ($comp_path[0]=='.' ? $path_to_root.'/'.basename($comp_path) : $comp_path) + . '/'.$comp; +} + ?> \ No newline at end of file