[Frontaccounting-cvs_updates] frontaccount/gl/includes/db gl_db_banking.inc, 1.4, 1.5
Brought to you by:
frontaccounting,
itronics
From: FrontAccounting <fro...@us...> - 2008-12-23 23:01:17
|
Update of /cvsroot/frontaccounting/frontaccount/gl/includes/db In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv3634/gl/includes/db Modified Files: gl_db_banking.inc Log Message: Fixed an accounting sync in GL when adding bank account transactions (no customer/supplier trans) Index: gl_db_banking.inc =================================================================== RCS file: /cvsroot/frontaccounting/frontaccount/gl/includes/db/gl_db_banking.inc,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** gl_db_banking.inc 4 Dec 2008 18:51:27 -0000 1.4 --- gl_db_banking.inc 23 Dec 2008 23:01:09 -0000 1.5 *************** *** 2,5 **** --- 2,45 ---- //---------------------------------------------------------------------------------- + function add_exchange_variation($trans_type, $trans_no, $date_, $account, + $currency, $person_type_id=null, $person_id = "") + { + if (is_company_currency($currency)) + return; + if ($date_ == null) + $date_ = Today(); + $rate = get_exchange_rate_from_home_currency($currency, $date_); + $result = db_query("SELECT SUM(amount) FROM ".TB_PREF."bank_trans WHERE + bank_act='$account' AND trans_date<='".date2sql($date_)."'", + "Transactions for account $account could not be calculated"); + $row = db_fetch_row($result); + $foreign_amount = $row[0]; + $amount = get_gl_trans_from_to("", $date_, $account); + $diff = $amount - (round2($foreign_amount * $rate, user_price_dec())); + if ($diff != 0) + { + if ($trans_type == null) + $trans_type = systypes::journal_entry(); + if ($trans_no == null) + $trans_no = get_next_trans_no($trans_type); + if ($person_type_id == null) + $person_type_id = payment_person_types::misc(); + add_gl_trans($trans_type, $trans_no, $date_, $account, 0, 0, "", + -$diff, null, $person_type_id, $person_id); + add_gl_trans($trans_type, $trans_no, $date_, get_company_pref('exchange_diff_act'), 0, 0, "", + $diff, null, $person_type_id, $person_id); + } + } + + function add_exchange_variation_all() + { + $trans_no = get_next_trans_no(0); + $sql = "SELECT * FROM ".TB_PREF."bank_accounts"; + $result = db_query($sql, "could not retreive bank accounts"); + while ($myrow = db_fetch($result)) + add_exchange_variation(0, $trans_no, null, $myrow['account_code'], + $myrow['currency_code']); + } + //---------------------------------------------------------------------------------- function add_bank_transfer($from_account, $to_account, $date_, *************** *** 24,30 **** --- 64,74 ---- "Cannot insert a source bank transaction"); + add_exchange_variation($trans_type, $trans_no, $date_, $from_account, + $currency, payment_person_types::misc(), ""); + // do the destination account postings $total += add_gl_trans($trans_type, $trans_no, $date_, $to_account, 0, 0, "", $amount, $currency); + /*Post a balance post if $total != 0 */ add_gl_balance($trans_type, $trans_no, $date_, -$total); *************** *** 36,39 **** --- 80,86 ---- "Cannot insert a destination bank transaction"); + add_exchange_variation($trans_type, $trans_no, $date_, $from_account, + $currency, payment_person_types::misc(), ""); + add_comments($trans_type, $trans_no, $date_, $memo_); *************** *** 58,61 **** --- 105,110 ---- display_db_error("Invalid type ($trans_type) sent to add_bank_transaction"); + $do_exchange_variance = false; + begin_transaction(); *************** *** 94,97 **** --- 143,147 ---- { $trans_no = get_next_trans_no($trans_type); + $do_exchange_variance = true; } *************** *** 123,126 **** --- 173,179 ---- $person_type_id, $person_id, $currency, "Cannot insert a destination bank transaction"); + if ($do_exchange_variance) + add_exchange_variation($trans_type, $trans_no, $date_, $gl_item->code_id, + $currency, $person_type_id, $person_id); } } *************** *** 130,133 **** --- 183,190 ---- -$total, null, $person_type_id, $person_id); + if ($do_exchange_variance) + add_exchange_variation($trans_type, $trans_no, $date_, $from_account, + $currency, $person_type_id, $person_id); + add_comments($trans_type, $trans_no, $date_, $memo_); |