2 /**********************************************************************
3 Copyright (C) FrontAccounting, LLC.
4 Released under the terms of the GNU General Public License, GPL,
5 as published by the Free Software Foundation, either version 3
6 of the License, or (at your option) any later version.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
12 $page_security = 'SA_BANKACCOUNT';
13 $path_to_root = "../..";
14 include($path_to_root . "/includes/session.inc");
16 page(_($help_context = "Bank Accounts"));
18 include($path_to_root . "/includes/ui.inc");
21 //-----------------------------------------------------------------------------------
23 if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM')
26 //initialise no input errors assumed initially before we test
28 $curr = get_company_currency();
29 if ($curr != $_POST['BankAccountCurrency'])
31 $sql = "SELECT account_code FROM ".TB_PREF."bank_accounts
32 WHERE account_code = '".$_POST['account_code']."'
33 AND id <> $selected_id";
34 $result = db_query($sql,"could not get bank accounts");
35 if (db_num_rows($result) > 0)
38 display_error(_("The GL account is already in use."));
39 set_focus('account_code');
42 //first off validate inputs sensible
43 if ($input_error == 0 && strlen($_POST['bank_account_name']) == 0)
46 display_error(_("The bank account name cannot be empty."));
47 set_focus('bank_account_name');
50 if ($input_error != 1)
52 if ($selected_id != -1)
55 update_bank_account($selected_id, $_POST['account_code'],
56 $_POST['account_type'], $_POST['bank_account_name'],
57 $_POST['bank_name'], $_POST['bank_account_number'],
58 $_POST['bank_address'], $_POST['BankAccountCurrency'],
59 $_POST['dflt_curr_act']);
60 display_notification(_('Bank account has been updated'));
65 add_bank_account($_POST['account_code'], $_POST['account_type'],
66 $_POST['bank_account_name'], $_POST['bank_name'],
67 $_POST['bank_account_number'], $_POST['bank_address'],
68 $_POST['BankAccountCurrency'], $_POST['dflt_curr_act']);
69 display_notification(_('New bank account has been added'));
74 elseif( $Mode == 'Delete')
76 //the link to delete a selected record was clicked instead of the submit button
79 $acc = db_escape($selected_id);
80 // PREVENT DELETES IF DEPENDENT RECORDS IN 'bank_trans'
82 $sql= "SELECT COUNT(*) FROM ".TB_PREF."bank_trans WHERE bank_act=$acc";
83 $result = db_query($sql,"check failed");
84 $myrow = db_fetch_row($result);
88 display_error(_("Cannot delete this bank account because transactions have been created using this account."));
90 $sql= "SELECT COUNT(*) FROM ".TB_PREF."sales_pos WHERE pos_account=$acc";
91 $result = db_query($sql,"check failed");
92 $myrow = db_fetch_row($result);
96 display_error(_("Cannot delete this bank account because POS definitions have been created using this account."));
100 delete_bank_account($selected_id);
101 display_notification(_('Selected bank account has been deleted'));
102 } //end if Delete bank account
106 if ($Mode == 'RESET')
109 $_POST['bank_name'] = $_POST['bank_account_name'] = '';
110 $_POST['bank_account_number'] = $_POST['bank_address'] = '';
113 /* Always show the list of accounts */
115 $sql = "SELECT account.*, gl_account.account_name
116 FROM ".TB_PREF."bank_accounts account, ".TB_PREF."chart_master gl_account
117 WHERE account.account_code = gl_account.account_code";
118 if (!check_value('show_inactive')) $sql .= " AND !account.inactive";
119 $sql .= " ORDER BY account_code, bank_curr_code";
121 $result = db_query($sql,"could not get bank accounts");
123 check_db_error("The bank accounts set up could not be retreived", $sql);
126 start_table("$table_style width='80%'");
128 $th = array(_("Account Name"), _("Type"), _("Currency"), _("GL Account"),
129 _("Bank"), _("Number"), _("Bank Address"), _("Dflt"), '','');
130 inactive_control_column($th);
134 while ($myrow = db_fetch($result))
137 alt_table_row_color($k);
139 label_cell($myrow["bank_account_name"], "nowrap");
140 label_cell($bank_account_types[$myrow["account_type"]], "nowrap");
141 label_cell($myrow["bank_curr_code"], "nowrap");
142 label_cell($myrow["account_code"] . " " . $myrow["account_name"], "nowrap");
143 label_cell($myrow["bank_name"], "nowrap");
144 label_cell($myrow["bank_account_number"], "nowrap");
145 label_cell($myrow["bank_address"]);
146 if ($myrow["dflt_curr_act"])
147 label_cell(_("Yes"));
151 inactive_control_cell($myrow["id"], $myrow["inactive"], 'bank_accounts', 'id');
152 edit_button_cell("Edit".$myrow["id"], _("Edit"));
153 delete_button_cell("Delete".$myrow["id"], _("Delete"));
157 inactive_control_row($th);
160 $is_editing = $selected_id != -1;
162 start_table($table_style2);
166 if ($Mode == 'Edit') {
167 $myrow = get_bank_account($selected_id);
169 $_POST['account_code'] = $myrow["account_code"];
170 $_POST['account_type'] = $myrow["account_type"];
171 $_POST['bank_name'] = $myrow["bank_name"];
172 $_POST['bank_account_name'] = $myrow["bank_account_name"];
173 $_POST['bank_account_number'] = $myrow["bank_account_number"];
174 $_POST['bank_address'] = $myrow["bank_address"];
175 $_POST['BankAccountCurrency'] = $myrow["bank_curr_code"];
176 $_POST['dflt_curr_act'] = $myrow["dflt_curr_act"];
178 hidden('selected_id', $selected_id);
179 hidden('account_code');
180 hidden('account_type');
181 hidden('BankAccountCurrency', $_POST['BankAccountCurrency']);
182 set_focus('bank_account_name');
185 text_row(_("Bank Account Name:"), 'bank_account_name', null, 50, 100);
189 label_row(_("Account Type:"), $bank_account_types[$_POST['account_type']]);
193 bank_account_types_list_row(_("Account Type:"), 'account_type', null);
197 label_row(_("Bank Account Currency:"), $_POST['BankAccountCurrency']);
201 currencies_list_row(_("Bank Account Currency:"), 'BankAccountCurrency', null);
204 yesno_list_row(_("Default currency account:"), 'dflt_curr_act');
206 $curr = get_company_currency();
207 if ($is_editing && $curr == $_POST['BankAccountCurrency'])
208 label_row(_("Bank Account GL Code:"), $_POST['account_code']);
210 gl_all_accounts_list_row(_("Bank Account GL Code:"), 'account_code', null);
212 text_row(_("Bank Name:"), 'bank_name', null, 50, 60);
213 text_row(_("Bank Account Number:"), 'bank_account_number', null, 30, 60);
214 textarea_row(_("Bank Address:"), 'bank_address', null, 40, 5);
218 submit_add_or_update_center($selected_id == -1, '', 'both');