Check that new bank charge account has been set before adding bank charge.
authorJoe Hunt <joe.hunt.consulting@gmail.com>
Fri, 11 Sep 2009 16:02:08 +0000 (16:02 +0000)
committerJoe Hunt <joe.hunt.consulting@gmail.com>
Fri, 11 Sep 2009 16:02:08 +0000 (16:02 +0000)
Check that new closing accounts have been set before closure.

CHANGELOG.txt
admin/fiscalyears.php
purchasing/supplier_payment.php
sales/customer_payments.php

index 0796ea3ef3e79a141d8b74b680063b79d0b47629..f30dade88dd0b7df768698b5cd621508a009b897 100644 (file)
@@ -21,7 +21,11 @@ $ -> Affected files
 
 11-Sep-2009 Joe Hunt
 ! Changed so deleting of fiscal year also handles sales quotations
+! Check that new closing accounts have been set before closure.
 $ /admin/fiscalyears.php
+! Check that new bank charge account have been set before adding bank charge.
+$ /sales/customer_payments.php
+  /purchasing/supplier_payment.php
 
 10-Sep-2009 Joe Hunt
 ! By changing a simple sentence in allocation_cart.inc, the customer/supplier payments works with prompt payment discounts
index 5e9e6d864b3654e1dccf009fe5e820dbbf65e39b..cc5c002915604aca01d177faaacb0e9defa87a6f 100644 (file)
@@ -85,6 +85,14 @@ function check_data()
 //---------------------------------------------------------------------------------------------
 function close_year($year)
 {
+       $co = get_company_prefs();
+       if ($co['retained_earnings_act'] == '' || $co['profit_loss_year_act'] == '')
+       {
+               display_error(_("The Retained Earnings Account or the Profit and Loss Year Account has not been set in System and General GL Setup"));
+               return false;
+       }
+       begin_transaction();
+
        $myrow = get_fiscalyear($year);
        $to = $myrow['end'];
        // retrieve total balances from balance sheet accounts
@@ -96,13 +104,10 @@ function close_year($year)
        $row = db_fetch_row($result);
        $balance = round2($row[0], user_price_dec());
 
-       begin_transaction();
        $to = sql2date($to);
 
        if ($balance != 0.0)
        {
-               $co = get_company_prefs();
-
                $trans_type = systypes::journal_entry();
                $trans_id = get_next_trans_no($trans_type);
 
@@ -112,8 +117,10 @@ function close_year($year)
                        0, 0, _("Closing Year"), $balance);
 
        }       
-               close_transactions($to);
-               commit_transaction();
+       close_transactions($to);
+
+       commit_transaction();
+       return true;
 }
 
 function open_year($year)
@@ -130,6 +137,7 @@ function handle_submit()
 {
        global $selected_id, $Mode;
 
+       $ok = true;
        if ($selected_id != -1)
        {
                if ($_POST['closed'] == 1)
@@ -140,12 +148,15 @@ function handle_submit()
                                set_focus('closed');
                                return false;
                        }       
-                       close_year($selected_id);
+                       $ok = close_year($selected_id);
                }       
                else
                        open_year($selected_id);
-               update_fiscalyear($selected_id, $_POST['closed']);
-               display_notification(_('Selected fiscal year has been updated'));
+               if ($ok)
+               {
+                       update_fiscalyear($selected_id, $_POST['closed']);
+                       display_notification(_('Selected fiscal year has been updated'));
+               }       
        }
        else
        {
index f4e4f776837b9fe9e08f0158e32e4d3bb2abede2..423a97cc439efc3a75a882f398e8595037576e99 100644 (file)
@@ -100,6 +100,12 @@ function check_inputs()
                return false;
        }
 
+       if (isset($_POST['charge']) && input_num('charge') > 0 && get_company_pref('bank_charge_act') == '') {
+               display_error(_("The Bank Charge Account has not been set in System and General GL Setup."));
+               set_focus('charge');
+               return false;
+       }
+
        if (isset($_POST['_ex_rate']) && !check_num('_ex_rate', 0.000001))
        {
                display_error(_("The exchange rate must be numeric and greater than zero."));
index ca2fcf6243ca7f244d7fc462024c0ada18962678..c029cff3d51001dfa7918630f6d9c7fd23ae0428 100644 (file)
@@ -108,6 +108,12 @@ function can_process()
                return false;
        }
 
+       if (isset($_POST['charge']) && input_num('charge') > 0 && get_company_pref('bank_charge_act') == '') {
+               display_error(_("The Bank Charge Account has not been set in System and General GL Setup."));
+               set_focus('charge');
+               return false;
+       }
+
        if (isset($_POST['_ex_rate']) && !check_num('_ex_rate', 0.000001))
        {
                display_error(_("The exchange rate must be numeric and greater than zero."));