X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=gl%2Fmanage%2Fbank_accounts.php;h=e7e71749a5f5f6249a9bdfe859cafa75493beab1;hb=6c40a3be4a79826087d7abbdd11b483f19decc2a;hp=5ec75616d7df1d181e5c751def602f260454b5af;hpb=cc9972b02f2bf4ece12da3431266e85e96872fb1;p=fa-stable.git diff --git a/gl/manage/bank_accounts.php b/gl/manage/bank_accounts.php index 5ec75616..e7e71749 100644 --- a/gl/manage/bank_accounts.php +++ b/gl/manage/bank_accounts.php @@ -11,13 +11,29 @@ ***********************************************************************/ $page_security = 'SA_BANKACCOUNT'; $path_to_root = "../.."; +include($path_to_root . "/includes/db_pager.inc"); include($path_to_root . "/includes/session.inc"); -page(_($help_context = "Bank Accounts")); +$js = ""; +if (user_use_date_picker()) + $js .= get_js_date_picker(); + +page(_($help_context = "Bank Accounts"), isset($_GET['bank_id']), false, "", $js); include($path_to_root . "/includes/ui.inc"); +include_once($path_to_root . "/includes/ui/attachment.inc"); simple_page_mode(); + +if (isset($_GET['bank_id'])) +{ + $_POST['bank_id'] = $_GET['bank_id']; +} + +$bank_id = get_post('bank_id', ''); +if ($selected_id != -1) + $bank_id = $selected_id; + //----------------------------------------------------------------------------------- if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') @@ -33,17 +49,23 @@ if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') display_error(_("The bank account name cannot be empty.")); set_focus('bank_account_name'); } - + if ($Mode=='ADD_ITEM' && (gl_account_in_bank_accounts(get_post('account_code')) + || key_in_foreign_table(get_post('account_code'), 'gl_trans', 'account'))) { + $input_error = 1; + display_error(_("The GL account selected is already in use or has transactions. Select another empty GL account.")); + set_focus('account_code'); + } if ($input_error != 1) { - if ($selected_id != -1) + if ($bank_id) { - update_bank_account($selected_id, $_POST['account_code'], + update_bank_account($bank_id, $_POST['account_code'], $_POST['account_type'], $_POST['bank_account_name'], $_POST['bank_name'], $_POST['bank_account_number'], $_POST['bank_address'], $_POST['BankAccountCurrency'], - $_POST['dflt_curr_act']); + $_POST['dflt_curr_act'], $_POST['bank_charge_act']); + $Ajax->activate('bank_id'); // in case of status change display_notification(_('Bank account has been updated')); } else @@ -52,9 +74,11 @@ 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['dflt_curr_act']); + $_POST['BankAccountCurrency'], $_POST['dflt_curr_act'], $_POST['bank_charge_act']); + $bank_id = $_POST['bank_id'] = db_insert_id(); display_notification(_('New bank account has been added')); - } + $Ajax->activate('_page_body'); + } $Mode = 'RESET'; } } @@ -63,23 +87,22 @@ 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' - if (key_in_foreign_table($acc, 'bank_trans', 'bank_act', true)) + if (key_in_foreign_table($bank_id, 'bank_trans', 'bank_act') || key_in_foreign_table(get_post('account_code'), 'gl_trans', 'account')) { $cancel_delete = 1; display_error(_("Cannot delete this bank account because transactions have been created using this account.")); } - if (key_in_foreign_table($acc, 'sales_pos', 'pos_account', true)) + if (key_in_foreign_table($bank_id, 'sales_pos', 'pos_account')) { $cancel_delete = 1; display_error(_("Cannot delete this bank account because POS definitions have been created using this account.")); } if (!$cancel_delete) { - delete_bank_account($selected_id); + delete_bank_account($bank_id); display_notification(_('Selected bank account has been deleted')); } //end if Delete bank account $Mode = 'RESET'; @@ -87,17 +110,21 @@ elseif( $Mode == 'Delete') if ($Mode == 'RESET') { - $selected_id = -1; + $bank_id = ''; $_POST['bank_name'] = $_POST['bank_account_name'] = ''; $_POST['bank_account_number'] = $_POST['bank_address'] = ''; + $_POST['bank_charge_act'] = get_company_pref('bank_charge_act'); + $Ajax->activate('_page_body'); } +if (!isset($_POST['bank_charge_act'])) + $_POST['bank_charge_act'] = get_company_pref('bank_charge_act'); /* Always show the list of accounts */ $result = get_bank_accounts(check_value('show_inactive')); -start_form(); -start_table("$table_style width='80%'"); +start_form(true); +start_table(TABLESTYLE, "width='80%'"); $th = array(_("Account Name"), _("Type"), _("Currency"), _("GL Account"), _("Bank"), _("Number"), _("Bank Address"), _("Dflt"), '',''); @@ -131,66 +158,113 @@ while ($myrow = db_fetch($result)) inactive_control_row($th); end_table(1); -$is_editing = $selected_id != -1; -start_table($table_style2); - -if ($is_editing) +function bank_account_settings($bank_id) { - if ($Mode == 'Edit') { - $myrow = get_bank_account($selected_id); - - $_POST['account_code'] = $myrow["account_code"]; - $_POST['account_type'] = $myrow["account_type"]; - $_POST['bank_name'] = $myrow["bank_name"]; - $_POST['bank_account_name'] = $myrow["bank_account_name"]; - $_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'); -} + global $Mode, $bank_account_types, $page_nested; -text_row(_("Bank Account Name:"), 'bank_account_name', null, 50, 100); + $is_used = $bank_id && key_in_foreign_table($bank_id, 'bank_trans', 'bank_act'); + + start_table(TABLESTYLE2); -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']); -} -else -{ - currencies_list_row(_("Bank Account Currency:"), 'BankAccountCurrency', null); -} + if ($bank_id) + { + if ($Mode == 'Edit') { + $myrow = get_bank_account($bank_id); + + $_POST['account_code'] = $myrow["account_code"]; + $_POST['account_type'] = $myrow["account_type"]; + $_POST['bank_name'] = $myrow["bank_name"]; + $_POST['bank_account_name'] = $myrow["bank_account_name"]; + $_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"]; + $_POST['bank_charge_act'] = $myrow["bank_charge_act"]; + } + hidden('bank_id', $bank_id); + set_focus('bank_account_name'); + } -yesno_list_row(_("Default currency account:"), 'dflt_curr_act'); + text_row(_("Bank Account Name:"), 'bank_account_name', null, 50, 100); -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); + if ($is_used) + { + label_row(_("Account Type:"), $bank_account_types[$_POST['account_type']]); + hidden('account_type'); + } + else + { + bank_account_types_list_row(_("Account Type:"), 'account_type', null); + } + if ($is_used) + { + label_row(_("Bank Account Currency:"), $_POST['BankAccountCurrency']); + hidden('BankAccountCurrency', $_POST['BankAccountCurrency']); + } + else + { + currencies_list_row(_("Bank Account Currency:"), 'BankAccountCurrency', null); + } -text_row(_("Bank Name:"), 'bank_name', null, 50, 60); -text_row(_("Bank Account Number:"), 'bank_account_number', null, 30, 60); -textarea_row(_("Bank Address:"), 'bank_address', null, 40, 5); + yesno_list_row(_("Default currency account:"), 'dflt_curr_act'); -end_table(1); + if($is_used) + { + label_row(_("Bank Account GL Code:"), $_POST['account_code']); + hidden('account_code'); + } else + gl_all_accounts_list_row(_("Bank Account GL Code:"), 'account_code', null); -submit_add_or_update_center($selected_id == -1, '', 'both'); + gl_all_accounts_list_row(_("Bank Charges Account:"), 'bank_charge_act', null, true); + text_row(_("Bank Name:"), 'bank_name', null, 50, 60); + text_row(_("Bank Account Number:"), 'bank_account_number', null, 30, 60); + textarea_row(_("Bank Address:"), 'bank_address', null, 40, 5); + + end_table(1); + + submit_add_or_update_center(!$bank_id, '', 'both'); +} + +if (!$bank_id) +{ + unset($_POST['_tabs_sel']); // force settings tab for new customer + display_heading(""); +} +else +{ + $act = get_bank_account($bank_id); + if ($act) + display_heading($act['bank_account_name']." - ".$act['bank_curr_code']); +} +if ($bank_id) + hidden('bank_id', $bank_id); + +tabbed_content_start('tabs', array( + 'settings' => array(_('&General settings'), $bank_id), + 'transactions' => array(_('&Transactions'), (user_check_access('SA_BANKTRANSVIEW') ? $bank_id : null)), + 'attachments' => array(_('Attachments'), (user_check_access('SA_ATTACHDOCUMENT') ? $bank_id : null)), + )); + + switch (get_post('_tabs_sel')) { + default: + case 'settings': + $Mode = "Edit"; + bank_account_settings($bank_id); + break; + case 'transactions': + $_GET['bank_account'] = $bank_id; + include_once($path_to_root."/gl/inquiry/bank_inquiry.php"); + break; + case 'attachments': + $_GET['trans_no'] = $bank_id; + $_GET['type_no']= ST_BANKACCOUNT; + $attachments = new attachments('attachment', $bank_id, 'bank_accounts'); + $attachments->show(); + }; +br(); +tabbed_content_end(); end_form(); -end_page(); -?> +end_page(@$_REQUEST['popup']);