X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=gl%2Fincludes%2Fdb%2Fgl_db_trans.inc;h=60b173d6902b80e5d2e9cf47a4d63117ce0f717b;hb=21a54e6ceb2149d31ab7738af30f731f6fe10251;hp=ecd12faea5ca85fb1c21ea84f4fa16a5332b15d8;hpb=c09be0dad6b05131e240349a375af7a4b7bf3444;p=fa-stable.git diff --git a/gl/includes/db/gl_db_trans.inc b/gl/includes/db/gl_db_trans.inc index ecd12fae..60b173d6 100644 --- a/gl/includes/db/gl_db_trans.inc +++ b/gl/includes/db/gl_db_trans.inc @@ -8,15 +8,20 @@ // if $currency is not set, then defaults to no conversion function add_gl_trans($type, $trans_id, $date_, $account, $dimension, $dimension2, $memo_, - $amount, $currency=null, $person_type_id=null, $person_id=null, $err_msg="") + $amount, $currency=null, $person_type_id=null, $person_id=null, $err_msg="", $rate=0) { global $use_audit_trail; $date = date2sql($date_); if ($currency != null) - $amount_in_home_currency = to_home_currency($amount, $currency, $date_); + { + if ($rate == 0) + $amount_in_home_currency = to_home_currency($amount, $currency, $date_); + else + $amount_in_home_currency = round2($amount * $rate, user_price_dec()); + } else - $amount_in_home_currency = $amount; + $amount_in_home_currency = round2($amount, user_price_dec()); if ($dimension == null || $dimension < 0) $dimension = 0; if ($dimension2 == null || $dimension2 < 0) @@ -40,14 +45,15 @@ function add_gl_trans($type, $trans_id, $date_, $account, $dimension, $dimension '$account', $dimension, $dimension2, ".db_escape($memo_).", $amount_in_home_currency"; if ($person_type_id != null) - $sql .= ", $person_type_id, '$person_id'"; + $sql .= ", $person_type_id, ". db_escape($person_id); $sql .= ") "; if ($err_msg == "") $err_msg = "The GL transaction could not be inserted"; - return db_query($sql, $err_msg); + db_query($sql, $err_msg); + return $amount_in_home_currency; } //-------------------------------------------------------------------------------- @@ -63,9 +69,20 @@ function add_gl_trans_std_cost($type, $trans_id, $date_, $account, $dimension, $ return add_gl_trans($type, $trans_id, $date_, $account, $dimension, $dimension2, $memo_, $amount, null, $person_type_id, $person_id, $err_msg); else - return null; + return 0; } +// Function for even out rounding problems +function add_gl_balance($type, $trans_id, $date_, $amount, $person_type_id=null, $person_id=null) +{ + $amount = round2($amount, user_price_dec()); + if ($amount != 0) + return add_gl_trans($type, $trans_id, $date_, get_company_pref('exchange_diff_act'), 0, 0, "", + $amount, null, $person_type_id, $person_id, "The balanced GL transaction could not be inserted"); + else + return 0; +} + //-------------------------------------------------------------------------------- function get_gl_transactions($from_date, $to_date, $trans_no=0,