Merged changes from main trunk up to 2.2.5
[fa-stable.git] / gl / manage / bank_accounts.php
index 64cff25fbda5453c21b6344c73a4631b2f003f62..5ec75616d7df1d181e5c751def602f260454b5af 100644 (file)
@@ -1,10 +1,19 @@
 <?php
-
-$page_security = 10;
-$path_to_root="../..";
+/**********************************************************************
+    Copyright (C) FrontAccounting, LLC.
+       Released under the terms of the GNU General Public License, GPL, 
+       as published by the Free Software Foundation, either version 3 
+       of the License, or (at your option) any later version.
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+***********************************************************************/
+$page_security = 'SA_BANKACCOUNT';
+$path_to_root = "../..";
 include($path_to_root . "/includes/session.inc");
 
-page(_("Bank Accounts"));
+page(_($help_context = "Bank Accounts"));
 
 include($path_to_root . "/includes/ui.inc");
 
@@ -33,7 +42,8 @@ if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM')
                update_bank_account($selected_id, $_POST['account_code'],
                                $_POST['account_type'], $_POST['bank_account_name'], 
                                $_POST['bank_name'], $_POST['bank_account_number'], 
-                       $_POST['bank_address'], $_POST['BankAccountCurrency']);         
+                       $_POST['bank_address'], $_POST['BankAccountCurrency'],
+                       $_POST['dflt_curr_act']);
                        display_notification(_('Bank account has been updated'));
        } 
        else 
@@ -41,8 +51,8 @@ if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM')
     
                add_bank_account($_POST['account_code'], $_POST['account_type'], 
                                $_POST['bank_account_name'], $_POST['bank_name'], 
-                       $_POST['bank_account_number'],  $_POST['bank_address'], 
-                               $_POST['BankAccountCurrency']);
+                       $_POST['bank_account_number'], $_POST['bank_address'], 
+                               $_POST['BankAccountCurrency'], $_POST['dflt_curr_act']);
                        display_notification(_('New bank account has been added'));
        }
                $Mode = 'RESET';
@@ -53,21 +63,16 @@ elseif( $Mode == 'Delete')
        //the link to delete a selected record was clicked instead of the submit button
 
        $cancel_delete = 0;
-
+       $acc = db_escape($selected_id);
        // PREVENT DELETES IF DEPENDENT RECORDS IN 'bank_trans'
 
-       $sql= "SELECT COUNT(*) FROM ".TB_PREF."bank_trans WHERE bank_act='$selected_id'";
-       $result = db_query($sql,"check failed");
-       $myrow = db_fetch_row($result);
-       if ($myrow[0] > 0) 
+       if (key_in_foreign_table($acc, 'bank_trans', 'bank_act', true))
        {
                $cancel_delete = 1;
                display_error(_("Cannot delete this bank account because transactions have been created using this account."));
        }
-       $sql= "SELECT COUNT(*) FROM ".TB_PREF."sales_pos WHERE pos_account='$selected_id'";
-       $result = db_query($sql,"check failed");
-       $myrow = db_fetch_row($result);
-       if ($myrow[0] > 0) 
+
+       if (key_in_foreign_table($acc, 'sales_pos', 'pos_account', true))
        {
                $cancel_delete = 1;
                display_error(_("Cannot delete this bank account because POS definitions have been created using this account."));
@@ -89,20 +94,14 @@ if ($Mode == 'RESET')
 
 /* Always show the list of accounts */
 
-$sql = "SELECT account.*, gl_account.account_name 
-       FROM ".TB_PREF."bank_accounts account, ".TB_PREF."chart_master gl_account 
-       WHERE account.account_code = gl_account.account_code"
-       ." ORDER BY account_code, bank_curr_code";
-
-$result = db_query($sql,"could not get bank accounts");
-
-check_db_error("The bank accounts set up could not be retreived", $sql);
+$result = get_bank_accounts(check_value('show_inactive'));
 
 start_form();
 start_table("$table_style width='80%'");
 
 $th = array(_("Account Name"), _("Type"), _("Currency"), _("GL Account"), 
-       _("Bank"), _("Number"), _("Bank Address"),'','');
+       _("Bank"), _("Number"), _("Bank Address"), _("Dflt"), '','');
+inactive_control_column($th);
 table_header($th);     
 
 $k = 0; 
@@ -112,21 +111,25 @@ while ($myrow = db_fetch($result))
        alt_table_row_color($k);
 
     label_cell($myrow["bank_account_name"], "nowrap");
-       label_cell(bank_account_types::name($myrow["account_type"]), "nowrap");
+       label_cell($bank_account_types[$myrow["account_type"]], "nowrap");
     label_cell($myrow["bank_curr_code"], "nowrap");
     label_cell($myrow["account_code"] . " " . $myrow["account_name"], "nowrap");
     label_cell($myrow["bank_name"], "nowrap");
     label_cell($myrow["bank_account_number"], "nowrap");
     label_cell($myrow["bank_address"]);
+    if ($myrow["dflt_curr_act"])
+               label_cell(_("Yes"));
+       else
+               label_cell(_("No"));
+
+       inactive_control_cell($myrow["id"], $myrow["inactive"], 'bank_accounts', 'id');
        edit_button_cell("Edit".$myrow["id"], _("Edit"));
-       edit_button_cell("Delete".$myrow["id"], _("Delete"));
+       delete_button_cell("Delete".$myrow["id"], _("Delete"));
     end_row(); 
 }
 
-end_table();
-end_form();
-echo '<br>';
-start_form();
+inactive_control_row($th);
+end_table(1);
 
 $is_editing = $selected_id != -1; 
 
@@ -144,17 +147,25 @@ if ($is_editing)
        $_POST['bank_account_number'] = $myrow["bank_account_number"];
        $_POST['bank_address'] = $myrow["bank_address"];
        $_POST['BankAccountCurrency'] = $myrow["bank_curr_code"];
+       $_POST['dflt_curr_act'] = $myrow["dflt_curr_act"];
   }
        hidden('selected_id', $selected_id);
        hidden('account_code');
+       hidden('account_type');
        hidden('BankAccountCurrency', $_POST['BankAccountCurrency']);   
        set_focus('bank_account_name');
 } 
 
 text_row(_("Bank Account Name:"), 'bank_account_name', null, 50, 100);
 
-bank_account_types_list_row(_("Account Type:"), 'account_type', null); 
-
+if ($is_editing) 
+{
+       label_row(_("Account Type:"), $bank_account_types[$_POST['account_type']]);
+} 
+else 
+{
+       bank_account_types_list_row(_("Account Type:"), 'account_type', null); 
+}
 if ($is_editing) 
 {
        label_row(_("Bank Account Currency:"), $_POST['BankAccountCurrency']);
@@ -164,10 +175,12 @@ else
        currencies_list_row(_("Bank Account Currency:"), 'BankAccountCurrency', null);
 }      
 
+yesno_list_row(_("Default currency account:"), 'dflt_curr_act');
+
 if($is_editing)
        label_row(_("Bank Account GL Code:"), $_POST['account_code']);
 else 
-       gl_all_accounts_list_row(_("Bank Account GL Code:"), 'account_code', null, false);
+       gl_all_accounts_list_row(_("Bank Account GL Code:"), 'account_code', null);
 
 text_row(_("Bank Name:"), 'bank_name', null, 50, 60);
 text_row(_("Bank Account Number:"), 'bank_account_number', null, 30, 60);
@@ -175,7 +188,7 @@ textarea_row(_("Bank Address:"), 'bank_address', null, 40, 5);
 
 end_table(1);
 
-submit_add_or_update_center($selected_id == -1, '', true);
+submit_add_or_update_center($selected_id == -1, '', 'both');
 
 end_form();