From: Janusz Dobrowolski Date: Mon, 20 May 2013 12:36:13 +0000 (+0200) Subject: Bank Transfer: additional field for target currency amount instead of exchange rate... X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=commitdiff_plain;h=a2076b27b2403413b5cd86616446dd655e2d90d6;p=textcart.git Bank Transfer: additional field for target currency amount instead of exchange rate display. --- diff --git a/gl/bank_transfer.php b/gl/bank_transfer.php index 2ef0e4f..312d313 100644 --- a/gl/bank_transfer.php +++ b/gl/bank_transfer.php @@ -87,7 +87,7 @@ function gl_payment_controls() amount_row(_("Amount:"), 'amount', null, null, $from_currency); amount_row(_("Bank Charge:"), 'charge', null, null, $from_currency); - exchange_rate_display($from_currency, $to_currency, $_POST['DatePaid']); + amount_row("Incomming Amount:", 'target_amount', null, '', $to_currency, 2); } else { @@ -184,7 +184,19 @@ function check_valid_entries() set_focus('ToBankAccount'); return false; } - + + if (!check_num('target_amount', 0)) + { + display_error(_("The entered amount is invalid or less than zero.")); + set_focus('target_amount'); + return false; + } + if (input_num('target_amount') == 0) { + display_error(_("The incomming bank amount cannot be 0.")); + set_focus('target_amount'); + return false; + } + if (!db_has_currency_rates(get_bank_account_currency($_POST['FromBankAccount']), $_POST['DatePaid'])) return false; @@ -200,7 +212,7 @@ function handle_add_deposit() { new_doc_date($_POST['DatePaid']); $trans_no = add_bank_transfer($_POST['FromBankAccount'], $_POST['ToBankAccount'], - $_POST['DatePaid'], input_num('amount'), $_POST['ref'], $_POST['memo_'], input_num('charge')); + $_POST['DatePaid'], input_num('amount'), $_POST['ref'], $_POST['memo_'], input_num('charge'), input_num('target_amount')); meta_forward($_SERVER['PHP_SELF'], "AddedID=$trans_no"); } diff --git a/gl/includes/db/gl_db_banking.inc b/gl/includes/db/gl_db_banking.inc index c49ad67..5774de8 100644 --- a/gl/includes/db/gl_db_banking.inc +++ b/gl/includes/db/gl_db_banking.inc @@ -190,14 +190,14 @@ function add_exchange_variation_all($date=null, $ref="", $memo) // function add_bank_transfer($from_account, $to_account, $date_, - $amount, $ref, $memo_, $charge=0) + $amount, $ref, $memo_, $charge=0, $target_amount=0) { global $Refs, $SysPrefs; begin_transaction(); $args = func_get_args(); if (count($args) < 7) $args[] = 0; $args = (object)array_combine(array('from_account', 'to_account', 'date_', 'amount', - 'ref', 'memo_', 'charge'), $args); + 'ref', 'memo_', 'charge', 'target_amount'), $args); $args->trans_no = 0; hook_db_prewrite($args, ST_BANKTRANSFER); @@ -238,16 +238,21 @@ function add_bank_transfer($from_account, $to_account, $date_, $total += add_gl_trans($trans_type, $trans_no, $date_, $charge_act, 0, 0, $person_id, $charge, $currency); } + + // provide backward compatibility for extension modules (target amount can be not passed) + $to_currency = $target_amount ? $toact['bank_curr_code'] : $currency; + $to_amount = $target_amount ? $target_amount : $amount; + // do the destination account postings $total += add_gl_trans($trans_type, $trans_no, $date_, $to_gl_account, 0, 0, $person_id, - $amount, $currency); + $to_amount, $to_currency); /*Post a balance post if $total != 0 */ add_gl_balance($trans_type, $trans_no, $date_, -$total); add_bank_trans($trans_type, $trans_no, $to_account, $ref, - $date_, $amount, PT_MISC, $person_id, - $currency, "Cannot insert a destination bank transaction"); + $date_, $to_amount, PT_MISC, $person_id, + $to_currency, "Cannot insert a destination bank transaction"); if ($SysPrefs->auto_currency_revaluation()) {