From 12e17bf9bcf8e8f56d72aeeb6dde817d1d921615 Mon Sep 17 00:00:00 2001 From: Joe Hunt Date: Thu, 18 Dec 2008 13:14:34 +0000 Subject: [PATCH] Added quick entries in supplier invoice/credit note as well. Based on bank payments --- CHANGELOG.txt | 10 ++++ gl/gl_bank.php | 6 ++- gl/gl_journal.php | 5 +- gl/includes/db/gl_db_banking.inc | 2 - includes/ui/ui_view.inc | 78 +++++++++++++++++++++++++++ purchasing/includes/ui/invoice_ui.inc | 20 +++++++ purchasing/supplier_credit.php | 7 +++ purchasing/supplier_invoice.php | 7 +++ 8 files changed, 129 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index ea760b95..6123ac9b 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -19,6 +19,16 @@ Legend: ! -> Note $ -> Affected files +18-Dec-2008 Joe Hunt ++ Added quick entries in supplier invoice/credit note as well. Based on bank payments +$ /gl/gl_bank.php + /gl/gl_journal.php + /gl/includes/db/gl_db_banking.inc + /includes/ui/ui_view.inc + /purchasing/supplier_credit.php + /purchasing/supplier_invoice.php + /purchasing/includes/ui/invoice_ui.inc + 15-Dec-2008 Janusz Dobrowolski # [0000085] Fixed session conflicts during document edition in multiply tabs. $ /sales/includes/cart_class.inc diff --git a/gl/gl_bank.php b/gl/gl_bank.php index 0df087b2..b76e768e 100644 --- a/gl/gl_bank.php +++ b/gl/gl_bank.php @@ -245,7 +245,7 @@ function handle_new_item() $_POST['dimension2_id'], $amount, $_POST['LineMemo']); line_start_focus(); } - +/* function display_quick_entries(&$cart) { if (!check_num('totamount', 0)) @@ -308,6 +308,7 @@ function display_quick_entries(&$cart) line_start_focus(); } } +*/ //----------------------------------------------------------------------------------------------- $id = find_submit('Delete'); if ($id != -1) @@ -323,7 +324,8 @@ if (isset($_POST['CancelItemChanges'])) line_start_focus(); if (isset($_POST['go'])) - display_quick_entries($_SESSION['pay_items']); + display_quick_entries($_SESSION['pay_items'], $_POST['person_id'], input_num('totamount'), + $_SESSION['pay_items']->trans_type==systypes::bank_payment()); //----------------------------------------------------------------------------------------------- diff --git a/gl/gl_journal.php b/gl/gl_journal.php index fe4b56c2..58832bdd 100644 --- a/gl/gl_journal.php +++ b/gl/gl_journal.php @@ -223,6 +223,7 @@ function handle_new_item() line_start_focus(); } +/* function display_quick_entries(&$cart) { if (!get_post('person_id')) @@ -277,7 +278,7 @@ function display_quick_entries(&$cart) line_start_focus(); } } - +*/ //----------------------------------------------------------------------------------------------- $id = find_submit('Delete'); if ($id != -1) @@ -293,7 +294,7 @@ if (isset($_POST['CancelItemChanges'])) line_start_focus(); if (isset($_POST['go'])) - display_quick_entries($_SESSION['journal_items']); + display_quick_entries($_SESSION['journal_items'], $_POST['person_id'], input_num('totamount')); //----------------------------------------------------------------------------------------------- if (isset($_GET['NewJournal']) || !isset($_SESSION['journal_items'])) diff --git a/gl/includes/db/gl_db_banking.inc b/gl/includes/db/gl_db_banking.inc index ca3d5867..0f232513 100644 --- a/gl/includes/db/gl_db_banking.inc +++ b/gl/includes/db/gl_db_banking.inc @@ -107,8 +107,6 @@ function add_bank_transaction($trans_type, $from_account, $items, $date_, } // do the source account postings - add_gl_trans($trans_type, $trans_no, $date_, $bank_gl_account, 0, 0, "", - -$total_amount, $currency, $person_type_id, $person_id); add_bank_trans($trans_type, $trans_no, $from_account, $ref, $date_, -$total_amount, diff --git a/includes/ui/ui_view.inc b/includes/ui/ui_view.inc index a757bacc..d57724f1 100644 --- a/includes/ui/ui_view.inc +++ b/includes/ui/ui_view.inc @@ -547,6 +547,84 @@ function display_allocations_from($person_type, $person_id, $type, $type_no, $to } } +//-------------------------------------------------------------------------------------- +function display_quick_entries(&$cart, $id, $totamount, $payment=true, $supp_trans=false) +{ + if (!isset($id) || $id == null || $id == "") + { + display_error( _("No Quick Entries are defined.")); + set_focus('totamount'); + } + else + { + $rate = 0; + if (!$payment) + $totamount = -$totamount; + if (!$supp_trans) + $cart->clear_items(); + $qe = get_quick_entry($id); + $qe_lines = get_quick_entry_lines($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(); + if (!$supp_trans) + $cart->add_gl_item($qe_line['account'], $qe_line['dimension_id'], $qe_line['dimension2_id'], + $totamount, $qe['description']); + else + { + $acc_name = get_gl_account_name($qe_line['account']); + $cart->add_gl_codes_to_trans($qe_line['account'], $acc_name, $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 = ($amount < 0 ? $item['purchasing_gl_code'] : + $item['sales_gl_code']); + if (!$supp_trans) + $cart->add_gl_item($code, 0, 0, $amount, $qe['description']); + else + { + $acc_name = get_gl_account_name($qe_line['account']); + $cart->add_gl_codes_to_trans($code, $acc_name, 0, 0, $amount, $qe['description']); + } + } + } + } + else + { + if ($qe_line['pct']) + $amount = $totamount * $qe_line['amount'] / 100; + else + $amount = $qe_line['amount']; + if (!$supp_trans) + $cart->add_gl_item($qe_line['account'], $qe_line['dimension_id'], $qe_line['dimension2_id'], + $amount, $qe['description']); + else + { + $acc_name = get_gl_account_name($qe_line['account']); + $cart->add_gl_codes_to_trans($qe_line['account'], $acc_name, $qe_line['dimension_id'], + $qe_line['dimension2_id'], $amount, $qe['description']); + } + } + } + //line_start_focus(); + } +} + + function get_js_open_window($width, $height) { $js = "\n