X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=gl%2Fgl_bank.php;h=0df087b2a2baf5e102fe1983d1cfcab1be55aac5;hb=bf00f0e16df5974ecba17b59be8bc660bdf6b8a8;hp=b035587bff5ba46fb077204fa2ae990391295ce9;hpb=ed12c6b38e84077b5183de344c3a204162bd4e87;p=fa-stable.git diff --git a/gl/gl_bank.php b/gl/gl_bank.php index b035587b..0df087b2 100644 --- a/gl/gl_bank.php +++ b/gl/gl_bank.php @@ -31,8 +31,30 @@ page($_SESSION['page_title'], false, false, '', $js); //----------------------------------------------------------------------------------------------- check_db_has_bank_accounts(_("There are no bank accounts defined in the system.")); -check_db_has_bank_trans_types(_("There are no bank payment types defined in the system.")); - +//---------------------------------------------------------------------------------------- +if ($ret = context_restore()) { + if(isset($ret['supplier_id'])) + $_POST['person_id'] = $ret['supplier_id']; + if(isset($ret['customer_id'])) + $_POST['person_id'] = $ret['customer_id']; + set_focus('person_id'); + if(isset($ret['branch_id'])) { + $_POST['PersonDetailID'] = $ret['branch_id']; + set_focus('PersonDetailID'); + } +} +if (isset($_POST['_person_id_editor'])) { + if ($_POST['PayType']==payment_person_types::supplier()) + $editor = '/purchasing/manage/suppliers.php?supplier_id='; + else + $editor = '/sales/manage/customers.php?debtor_no='; + +// $_SESSION['pay_items'] should stay unchanged during call +// +context_call($path_to_root.$editor.$_POST['person_id'], + array('bank_account', 'date_', 'PayType', 'person_id', + 'PersonDetailID', 'ref', 'memo_') ); +} //-------------------------------------------------------------------------------------------------- function line_start_focus() { global $Ajax; @@ -50,9 +72,11 @@ if (isset($_GET['AddedID'])) display_notification_centered(_("Payment has been entered")); - display_note(get_gl_view_str($trans_type, $trans_no, _("View the GL Postings for this Payment"))); + display_note(get_gl_view_str($trans_type, $trans_no, _("&View the GL Postings for this Payment"))); + + hyperlink_params($_SERVER['PHP_SELF'], _("Enter Another &Payment"), "NewPayment=yes"); - hyperlink_no_params($_SERVER['PHP_SELF'], _("Enter Another Payment")); + hyperlink_params($_SERVER['PHP_SELF'], _("Enter A &Deposit"), "NewDeposit=yes"); display_footer_exit(); } @@ -66,43 +90,17 @@ if (isset($_GET['AddedDep'])) display_note(get_gl_view_str($trans_type, $trans_no, _("View the GL Postings for this Deposit"))); - hyperlink_no_params($_SERVER['PHP_SELF'], _("Enter Another Deposit")); + hyperlink_params($_SERVER['PHP_SELF'], _("Enter Another Deposit"), "NewDeposit=yes"); + + hyperlink_params($_SERVER['PHP_SELF'], _("Enter A Payment"), "NewPayment=yes"); display_footer_exit(); } - -//-------------------------------------------------------------------------------------------------- - -function copy_to_py() -{ - $_SESSION['pay_items']->from_loc = $_POST['bank_account']; - $_SESSION['pay_items']->tran_date = $_POST['date_']; - $_SESSION['pay_items']->transfer_type = $_POST['type']; - $_SESSION['pay_items']->increase = $_POST['PayType']; - if (!isset($_POST['person_id'])) - $_POST['person_id'] = ""; - $_SESSION['pay_items']->person_id = $_POST['person_id']; - if (!isset($_POST['PersonDetailID'])) - $_POST['PersonDetailID'] = ""; - $_SESSION['pay_items']->branch_id = $_POST['PersonDetailID']; - $_SESSION['pay_items']->memo_ = $_POST['memo_']; +if (isset($_POST['_date__changed'])) { + $Ajax->activate('_ex_rate'); } - //-------------------------------------------------------------------------------------------------- -function copy_from_py() -{ - $_POST['bank_account'] = $_SESSION['pay_items']->from_loc; - $_POST['date_'] = $_SESSION['pay_items']->tran_date; - $_POST['type'] = $_SESSION['pay_items']->transfer_type; - $_POST['PayType'] = $_SESSION['pay_items']->increase; - $_POST['person_id'] = $_SESSION['pay_items']->person_id; - $_POST['PersonDetailID'] = $_SESSION['pay_items']->branch_id; - $_POST['memo_'] = $_SESSION['pay_items']->memo_; -} - -//----------------------------------------------------------------------------------------------- - function handle_new_order($type) { if (isset($_SESSION['pay_items'])) @@ -165,12 +163,12 @@ if (isset($_POST['Process'])) if (isset($_POST['Process'])) { - + $trans = add_bank_transaction( $_SESSION['pay_items']->trans_type, $_POST['bank_account'], $_SESSION['pay_items'], $_POST['date_'], $_POST['PayType'], $_POST['person_id'], get_post('PersonDetailID'), - $_POST['type'], $_POST['ref'], $_POST['memo_']); + $_POST['ref'], $_POST['memo_']); $trans_type = $trans[0]; $trans_no = $trans[1]; @@ -178,7 +176,7 @@ if (isset($_POST['Process'])) $_SESSION['pay_items']->clear_items(); unset($_SESSION['pay_items']); - meta_forward($_SERVER['PHP_SELF'], $trans_type==systypes::bank_payment() ? + meta_forward($_SERVER['PHP_SELF'], $trans_type==systypes::bank_payment() ? "AddedID=$trans_no" : "AddedDep=$trans_no"); } /*end of process credit note */ @@ -187,12 +185,12 @@ if (isset($_POST['Process'])) function check_item_data() { - if (!check_num('amount', 0)) - { - display_error( _("The amount entered is not a valid number or is less than zero.")); - set_focus('amount'); - return false; - } + //if (!check_num('amount', 0)) + //{ + // display_error( _("The amount entered is not a valid number or is less than zero.")); + // set_focus('amount'); + // return false; + //} if ($_POST['code_id'] == $_POST['bank_account']) { @@ -201,15 +199,15 @@ function check_item_data() return false; } - if (is_bank_account($_POST['code_id'])) - { - if ($_SESSION['pay_items']->trans_type == systypes::bank_payment()) - display_error( _("You cannot make a payment to a bank account. Please use the transfer funds facility for this.")); - else - display_error( _("You cannot make a deposit from a bank account. Please use the transfer funds facility for this.")); - set_focus('code_id'); - return false; - } + //if (is_bank_account($_POST['code_id'])) + //{ + // if ($_SESSION['pay_items']->trans_type == systypes::bank_payment()) + // display_error( _("You cannot make a payment to a bank account. Please use the transfer funds facility for this.")); + // else + // display_error( _("You cannot make a deposit from a bank account. Please use the transfer funds facility for this.")); + // set_focus('code_id'); + // return false; + //} return true; } @@ -242,22 +240,78 @@ function handle_new_item() if (!check_item_data()) return; $amount = ($_SESSION['pay_items']->trans_type==systypes::bank_payment() ? 1:-1) * input_num('amount'); - + $_SESSION['pay_items']->add_gl_item($_POST['code_id'], $_POST['dimension_id'], $_POST['dimension2_id'], $amount, $_POST['LineMemo']); line_start_focus(); } +function display_quick_entries(&$cart) +{ + if (!check_num('totamount', 0)) + { + display_error( _("The amount entered is not a valid number or is less than zero.")); + set_focus('totamount'); + } + elseif (!get_post('person_id')) + { + if ($cart->trans_type==systypes::bank_payment()) + display_error( _("No Quick Entries are defined for Payment.")); + else + display_error( _("No Quick Entries are defined for Deposit.")); + set_focus('totamount'); + } + else + { + $rate = 0; + $totamount = input_num('totamount'); + $totamount = ($cart->trans_type==systypes::bank_payment() ? 1:-1) * $totamount; + $qe = get_quick_entry($_POST['person_id']); + $qe_lines = get_quick_entry_lines($_POST['person_id']); + while ($qe_line = db_fetch($qe_lines)) + { + if ($qe_line['tax_acc']) + { + $account = get_gl_account($qe_line['account']); + $tax_group = $account['tax_code']; + $items = get_tax_group_items($tax_group); + while ($item = db_fetch($items)) + $rate += $item['rate']; + if ($rate != 0) + $totamount = $totamount * 100 / ($rate + 100); + $cart->clear_items(); + + $cart->add_gl_item($qe_line['account'], $qe_line['dimension_id'], $qe_line['dimension2_id'], + $totamount, $qe['description']); + $items = get_tax_group_items($tax_group); + while ($item = db_fetch($items)) + { + if ($item['rate'] != 0) + { + $amount = $totamount * $item['rate'] / 100; + $code = ($cart->trans_type==systypes::bank_payment() ? $item['purchasing_gl_code'] : + $item['sales_gl_code']); + $cart->add_gl_item($code, 0, 0, $amount, $qe['description']); + } + } + } + else + { + if ($qe_line['pct']) + $amount = $totamount * $qe_line['amount'] / 100; + else + $amount = $qe_line['amount']; + $cart->add_gl_item($qe_line['account'], $qe_line['dimension_id'], $qe_line['dimension2_id'], + $amount, $qe['description']); + } + } + line_start_focus(); + } +} //----------------------------------------------------------------------------------------------- $id = find_submit('Delete'); -if ($id != -1) { - copy_from_py(); +if ($id != -1) handle_delete_item($id); -} -if (isset($_POST['AddItem']) || isset($_POST['UpdateItem'])) { - copy_to_py(); - line_start_focus(); -} if (isset($_POST['AddItem'])) handle_new_item(); @@ -265,9 +319,11 @@ if (isset($_POST['AddItem'])) if (isset($_POST['UpdateItem'])) handle_update_item(); -if (isset($_POST['CancelItemChanges'])) { +if (isset($_POST['CancelItemChanges'])) line_start_focus(); -} + +if (isset($_POST['go'])) + display_quick_entries($_SESSION['pay_items']); //----------------------------------------------------------------------------------------------- @@ -278,7 +334,7 @@ display_bank_header($_SESSION['pay_items']); start_table("$table_style2 width=90%", 10); start_row(); echo ""; -display_gl_items($_SESSION['pay_items']->trans_type==systypes::bank_payment() ? +display_gl_items($_SESSION['pay_items']->trans_type==systypes::bank_payment() ? _("Payment Items"):_("Deposit Items"), $_SESSION['pay_items']); gl_options_controls(); echo ""; @@ -286,7 +342,7 @@ end_row(); end_table(1); submit_center_first('Update', _("Update"), '', null); -submit_center_last('Process', $_SESSION['pay_items']->trans_type==systypes::bank_payment() ? +submit_center_last('Process', $_SESSION['pay_items']->trans_type==systypes::bank_payment() ? _("Process Payment"):_("Process Deposit"), '', true); end_form();