Added bank charge in bank transfer
authorJoe Hunt <joe.hunt.consulting@gmail.com>
Fri, 26 Jun 2009 10:07:35 +0000 (10:07 +0000)
committerJoe Hunt <joe.hunt.consulting@gmail.com>
Fri, 26 Jun 2009 10:07:35 +0000 (10:07 +0000)
CHANGELOG.txt
gl/bank_transfer.php
gl/includes/db/gl_db_banking.inc

index c796017ad6c421bfa64ac530ae3fe09b9348c135..eb2fd3cf2127f73e4cd8c51bd8750e39c85ae300 100644 (file)
@@ -20,9 +20,11 @@ Legend:
 $ -> Affected files
 
 26-Jun-2009 Joe Hunt
-+ Added Bank Charge field to Customer Payment and Supplier Payment and a new default bank charge account in gl_setup.
++ Added Bank Charge field to Customer Payment, Supplier Payment and Bank Transfer and a new default bank charge account in gl_setup.
 $ /admin/gl_setup.php
   /admin/db/company_db.inc
+  /gl/bank_transfer.php
+  /gl/includes/db/gl_db_banking.inc
   /purchasing/supplier_payment.php
   /purchasing/includes/db/supp_payment_db.inc
   /sales/customer_payment.php
index 0f4ea9160d611b4b88b72efb173bf68331e17324..94748d2f0631daf471765a1d3edd563aec46dfcc 100644 (file)
@@ -58,10 +58,10 @@ function gl_payment_controls()
 
        start_form();
 
-       start_table($table_style2, 5, 7);
-       echo "<tr><td valign=top>"; // outer table
+       start_outer_table($table_style2, 5);
+
+       table_section(1);
 
-       echo "<table>";
        bank_accounts_list_row(_("From Account:"), 'FromBankAccount', null, true);
 
     bank_accounts_list_row(_("To Account:"), 'ToBankAccount', null, true);
@@ -73,26 +73,23 @@ function gl_payment_controls()
        if ($from_currency != "" && $to_currency != "" && $from_currency != $to_currency) 
        {
                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']);
        } 
        else 
        {
                amount_row(_("Amount:"), 'amount');
+               amount_row(_("Bank Charge:"), 'charge');
        }
 
-       echo "</table>";
-       echo "</td><td valign=top class='tableseparator'>"; // outer table
-       echo "<table>";
+       table_section(2);
 
     ref_row(_("Reference:"), 'ref', '', references::get_next(systypes::bank_transfer()));
 
     textarea_row(_("Memo:"), 'memo_', null, 40,4);
 
-       end_table(1);
-
-       echo "</td></tr>";
-       end_table(1); // outer table
+       end_outer_table(1); // outer table
 
     submit_center('AddPayment',_("Enter Transfer"), true, '', 'default');
 
@@ -123,6 +120,12 @@ function check_valid_entries()
                return false;
        }
 
+       if (isset($_POST['charge']) && !check_num('charge', 0)) 
+       {
+               display_error(_("The entered amount is invalid or less than zero."));
+               set_focus('charge');
+               return false;
+       }
        if (!references::is_valid($_POST['ref'])) 
        {
                display_error(_("You must enter a reference."));
@@ -152,7 +155,7 @@ function check_valid_entries()
 function handle_add_deposit()
 {
        $trans_no = add_bank_transfer($_POST['FromBankAccount'], $_POST['ToBankAccount'],
-               $_POST['DatePaid'], input_num('amount'), $_POST['ref'], $_POST['memo_']);
+               $_POST['DatePaid'], input_num('amount'), $_POST['ref'], $_POST['memo_'], input_num('charge'));
 
        meta_forward($_SERVER['PHP_SELF'], "AddedID=$trans_no");
 }
index 18ea49603131c781e85160b972fe718ddd1ef159..a47dd73a0ea4f0af3b1633225b3d55516de601ee 100644 (file)
@@ -56,7 +56,7 @@ function add_exchange_variation_all()
 //     
 
 function add_bank_transfer($from_account, $to_account, $date_,
-       $amount, $ref, $memo_)
+       $amount, $ref, $memo_, $charge=0)
 {
        begin_transaction();
 
@@ -72,16 +72,23 @@ function add_bank_transfer($from_account, $to_account, $date_,
        $total = 0;
        // do the source account postings
     $total += add_gl_trans($trans_type, $trans_no, $date_, $from_gl_account, 0, 0, "",
-               -$amount, $currency);
+               -($amount + $charge), $currency);
 
     add_bank_trans($trans_type, $trans_no, $from_account, $ref,
-               $date_, -$amount,
+               $date_, -($amount + $charge),
                payment_person_types::misc(), "", $currency,
                "Cannot insert a source bank transaction");
 
        add_exchange_variation($trans_type, $trans_no, $date_, $from_account, $from_gl_account, 
                $currency, payment_person_types::misc(), "");
 
+       if ($charge != 0)
+       {
+               /* Now Debit bank charge account with charges */
+               $charge_act = get_company_pref('bank_charge_act');
+               $total += add_gl_trans($trans_type, $trans_no, $date_,
+                       $charge_act, 0, 0, "", $charge, $currency);
+       }
        // do the destination account postings
        $total += add_gl_trans($trans_type, $trans_no, $date_, $to_gl_account, 0, 0, "",
                $amount, $currency);