From 8bacb98210d84bf21a91066f11516672f73d9918 Mon Sep 17 00:00:00 2001 From: Joe Hunt Date: Fri, 24 Oct 2008 14:35:14 +0000 Subject: [PATCH] Improved layout of Supplier Invoice/Credit. All Items can now be added in one sweep. --- CHANGELOG.txt | 6 ++- purchasing/includes/ui/invoice_ui.inc | 68 +++++++++++++-------------- purchasing/supplier_credit.php | 51 ++++++++++++-------- purchasing/supplier_invoice.php | 42 ++++++++++++----- 4 files changed, 100 insertions(+), 67 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index cf50ba6..d1a47b1 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -23,8 +23,12 @@ $ -> Affected files ! [0000077] Added a total before ending balance in trial balance (also in report) $ /gl/inquiry/gl_trial_balance.php /reporting/rep708.php -! Increased memory limit if reports in unicode (48M) +! Increased memory limit if reports in unicode (48M) as suggested in forum. /reporting/includes/class.pdf.inc +! Improved layout of Supplier Invoice/Credit. All Items can now be added in one sweep. +$ /purchasing/supplier_invoice.php + /purchasing/supplier_credit.php + /purchasing/includes/ui/invoice_ui.inc ------------------------------- Release 2.0.4 -------------------------------------------- 23-Oct-2008 Joe Hunt diff --git a/purchasing/includes/ui/invoice_ui.inc b/purchasing/includes/ui/invoice_ui.inc index 1162329..c89bfb4 100644 --- a/purchasing/includes/ui/invoice_ui.inc +++ b/purchasing/includes/ui/invoice_ui.inc @@ -138,10 +138,10 @@ function invoice_totals(&$supp_trans) $display_total = price_format($supp_trans->ov_amount + $tax_total); if ($supp_trans->is_invoice) - label_row(_("Invoice Total:"), $display_total, "align=right", "align=right"); + label_row(_("Invoice Total:"), $display_total, "align=right style='font-weight:bold;'", "align=right style='font-weight:bold;'"); else - label_row("" . _("Credit Note Total:") . "", - "$display_total", "align=right", "nowrap align=right"); + label_row(_("Credit Note Total"), + $display_total, "align=right style='font-weight:bold;color:red;'", "nowrap align=right style='font-weight:bold;color:red;'"); end_table(); br(1); @@ -152,15 +152,13 @@ function invoice_totals(&$supp_trans) } //-------------------------------------------------------------------------------------------------- -function display_gl_controls(&$supp_trans) +function display_gl_controls(&$supp_trans, $k) { - global $table_style, $Ajax; - - div_start('gl_ctrls'); // 2008-10-18 Joe Hunt Moved up a bit to compute num-rows = 0 + global $table_style; $accs = get_supplier_accounts($supp_trans->supplier_id); $_POST['gl_code'] = $accs['purchase_account']; - $k = 0; + alt_table_row_color($k); gl_all_accounts_list('gl_code', null, true, false, true); $dim = get_company_pref('use_dimension'); @@ -180,7 +178,6 @@ function display_gl_controls(&$supp_trans) submit_cells('ClearFields', _("Reset"), "", _("Clear all GL entry fields"), true); end_row(); - div_end(); } // $mode = 0 none at the moment @@ -251,7 +248,7 @@ function display_gl_items(&$supp_trans, $mode=0) if ($dim > 1) label_cell(get_dimension_string($entered_gl_code->gl_dim2, true)); - amount_cell($entered_gl_code->amount); + amount_cell($entered_gl_code->amount, true); label_cell($entered_gl_code->memo_); if ($mode == 1) @@ -274,7 +271,7 @@ function display_gl_items(&$supp_trans, $mode=0) } if ($mode == 1) - display_gl_controls($supp_trans); + display_gl_controls($supp_trans, $k); $colspan = ($dim == 2 ? 4 : ($dim == 1 ? 3 : 2)); label_row(_("Total"), price_format($total_gl_value), "colspan=".$colspan." align=right", "nowrap align=right"); @@ -290,11 +287,10 @@ function display_gl_items(&$supp_trans, $mode=0) //--------------//----------------------------------------------------------------------------------------- -function display_grn_items_for_selection(&$supp_trans) +function display_grn_items_for_selection(&$supp_trans, $k) { global $table_style; - div_start('grn_table'); // 2008-10-18 Joe Hunt Moved up a bit to compute num-rows = 0 if ($supp_trans->is_invoice) $result = get_grn_items(0, $supp_trans->supplier_id, true); else @@ -302,21 +298,11 @@ function display_grn_items_for_selection(&$supp_trans) if (db_num_rows($result) == 0) { - if ($supp_trans->is_invoice) - display_note(_("There are no outstanding items received from this supplier that have not been invoiced by them."), 0, 1); - else - { - display_note(_("There are no received items for the selected supplier that have been invoiced.")); - display_note(_("Credits can only be applied to invoiced items."), 0, 1); - } - div_end(); // Changed 2008-10-18 Joe Hunt - return; + return false; } /*Set up a table to show the outstanding GRN items for selection */ - $k = 0; - while ($myrow = db_fetch($result)) { $grn_already_on_invoice = false; @@ -370,8 +356,7 @@ function display_grn_items_for_selection(&$supp_trans) end_row(); } } - - div_end(); + return true; } //------------------------------------------------------------------------------------ @@ -385,6 +370,7 @@ function display_grn_items(&$supp_trans, $mode=0) { global $table_style, $path_to_root; + $ret = true; // if displaying in form, and no items, exit if (($mode == 2 || $mode == 3) && count($supp_trans->grn_items) == 0) return 0; @@ -412,11 +398,15 @@ function display_grn_items(&$supp_trans, $mode=0) } echo ""; echo ""; - if ($mode == 1 && $heading2 != "") + if ($mode == 1) { - echo "\n"; + submit_cells('InvGRNAll', _("Add All Items"), "align=right"); + if ($heading2 != "") + { + echo "\n"; + } } echo "
$heading
"; - display_note($heading2, 0, 0, "class='overduefg'"); - echo "
"; + display_note($heading2, 0, 0, "class='overduefg'"); + echo "
"; @@ -468,9 +458,9 @@ function display_grn_items(&$supp_trans, $mode=0) qty_cell($entered_grn->qty_recd, false, $dec); qty_cell($entered_grn->prev_quantity_inv, false, $dec); } - qty_cell(abs($entered_grn->this_quantity_inv), false, $dec); + qty_cell(abs($entered_grn->this_quantity_inv), true, $dec); amount_cell($entered_grn->chg_price); - amount_cell( round($entered_grn->chg_price * abs($entered_grn->this_quantity_inv)), user_price_dec()); + amount_cell( round($entered_grn->chg_price * abs($entered_grn->this_quantity_inv), user_price_dec()), true); if ($mode == 1) { @@ -494,14 +484,24 @@ function display_grn_items(&$supp_trans, $mode=0) } if ($mode == 1) { - display_grn_items_for_selection($supp_trans); - $colspan = 10; + $ret = display_grn_items_for_selection($supp_trans, $k); + $colspan = 10; } else $colspan = 5; label_row(_("Total"), price_format($total_grn_value), "colspan=$colspan align=right", "nowrap align=right"); echo ""; + if (!$ret) + { + if ($supp_trans->is_invoice) + display_note(_("There are no outstanding items received from this supplier that have not been invoiced by them."), 0, 1); + else + { + display_note(_("There are no received items for the selected supplier that have been invoiced.")); + display_note(_("Credits can only be applied to invoiced items."), 0, 1); + } + } div_end(); echo ""; diff --git a/purchasing/supplier_credit.php b/purchasing/supplier_credit.php index 8ee6eff..96b5dcf 100644 --- a/purchasing/supplier_credit.php +++ b/purchasing/supplier_credit.php @@ -79,7 +79,7 @@ function clear_fields() unset($_POST['amount']); unset($_POST['memo_']); unset($_POST['AddGLCodeToTrans']); - $Ajax->activate('gl_ctrls'); + $Ajax->activate('gl_items'); set_focus('gl_code'); } //------------------------------------------------------------------------------------------------ @@ -231,37 +231,49 @@ function check_item_data($n) return true; } -//----------------------------------------------------------------------------------------- - -$id = find_submit('grn_item_id'); -if ($id != -1) +function commit_item_data($n) { - if (check_item_data($id)) + if (check_item_data($n)) { $complete = False; - //$_SESSION['supp_trans']->add_grn_to_trans($_POST['GRNNumber'], - // $_POST['po_detail_item'], $_POST['item_code'], - // $_POST['item_description'], $_POST['qty_recd'], - // $_POST['prev_quantity_inv'], $_POST['This_QuantityCredited'], - // $_POST['order_price'], $_POST['ChgPrice'], $complete, - // $_POST['std_cost_unit'], $_POST['gl_code']); - $_SESSION['supp_trans']->add_grn_to_trans($id, - $_POST['po_detail_item'.$id], $_POST['item_code'.$id], - $_POST['item_description'.$id], $_POST['qty_recd'.$id], - $_POST['prev_quantity_inv'.$id], input_num('This_QuantityCredited'.$id), - $_POST['order_price'.$id], input_num('ChgPrice'.$id), $complete, - $_POST['std_cost_unit'.$id], ""); + $_SESSION['supp_trans']->add_grn_to_trans($n, + $_POST['po_detail_item'.$n], $_POST['item_code'.$n], + $_POST['item_description'.$n], $_POST['qty_recd'.$n], + $_POST['prev_quantity_inv'.$n], input_num('This_QuantityCredited'.$n), + $_POST['order_price'.$n], input_num('ChgPrice'.$n), $complete, + $_POST['std_cost_unit'.$n], ""); } } +//----------------------------------------------------------------------------------------- + +$id = find_submit('grn_item_id'); +if ($id != -1) +{ + commit_item_data($id); +} + +if (isset($_POST['InvGRNAll'])) +{ + foreach($_POST as $postkey=>$postval ) + { + if (strpos($postkey, "qty_recd") === 0) + { + $id = substr($postkey, strlen("qty_recd")); + $id = (int)$id; + commit_item_data($id); + } + } +} + + //-------------------------------------------------------------------------------------------------- $id = find_submit('Delete'); if ($id != -1) { $_SESSION['supp_trans']->remove_grn_from_trans($id); $Ajax->activate('grn_items'); - $Ajax->activate('grn_table'); $Ajax->activate('inv_tot'); } @@ -306,7 +318,6 @@ end_table(1); // outer table $id = find_submit('grn_item_id'); if ($id != -1) { - $Ajax->activate('grn_table'); $Ajax->activate('grn_items'); $Ajax->activate('inv_tot'); } diff --git a/purchasing/supplier_invoice.php b/purchasing/supplier_invoice.php index 9341a11..9f2f1cc 100644 --- a/purchasing/supplier_invoice.php +++ b/purchasing/supplier_invoice.php @@ -82,7 +82,7 @@ function clear_fields() unset($_POST['amount']); unset($_POST['memo_']); unset($_POST['AddGLCodeToTrans']); - $Ajax->activate('gl_ctrls'); + $Ajax->activate('gl_items'); set_focus('gl_code'); } //------------------------------------------------------------------------------------------------ @@ -263,12 +263,11 @@ function check_item_data($n) return true; } -$id = find_submit('grn_item_id'); -if ($id != -1) +function commit_item_data($n) { - if (check_item_data($id)) + if (check_item_data($n)) { - if (input_num('this_quantity_inv'.$id) >= ($_POST['qty_recd'.$id] - $_POST['prev_quantity_inv'.$id])) + if (input_num('this_quantity_inv'.$n) >= ($_POST['qty_recd'.$n] - $_POST['prev_quantity_inv'.$n])) { $complete = true; } @@ -277,21 +276,41 @@ if ($id != -1) $complete = false; } - $_SESSION['supp_trans']->add_grn_to_trans($id, $_POST['po_detail_item'.$id], - $_POST['item_code'.$id], $_POST['item_description'.$id], $_POST['qty_recd'.$id], - $_POST['prev_quantity_inv'.$id], input_num('this_quantity_inv'.$id), - $_POST['order_price'.$id], input_num('ChgPrice'.$id), $complete, - $_POST['std_cost_unit'.$id], ""); + $_SESSION['supp_trans']->add_grn_to_trans($n, $_POST['po_detail_item'.$n], + $_POST['item_code'.$n], $_POST['item_description'.$n], $_POST['qty_recd'.$n], + $_POST['prev_quantity_inv'.$n], input_num('this_quantity_inv'.$n), + $_POST['order_price'.$n], input_num('ChgPrice'.$n), $complete, + $_POST['std_cost_unit'.$n], ""); } } +//----------------------------------------------------------------------------------------- + +$id = find_submit('grn_item_id'); +if ($id != -1) +{ + commit_item_data($id); +} + +if (isset($_POST['InvGRNAll'])) +{ + foreach($_POST as $postkey=>$postval ) + { + if (strpos($postkey, "qty_recd") === 0) + { + $id = substr($postkey, strlen("qty_recd")); + $id = (int)$id; + commit_item_data($id); + } + } +} + //-------------------------------------------------------------------------------------------------- $id = find_submit('Delete'); if ($id != -1) { $_SESSION['supp_trans']->remove_grn_from_trans($id); $Ajax->activate('grn_items'); - $Ajax->activate('grn_table'); $Ajax->activate('inv_tot'); } @@ -339,7 +358,6 @@ $id = find_submit('grn_item_id'); $id2 = find_submit('void_item_id'); if ($id != -1 || $id2 != -1) { - $Ajax->activate('grn_table'); $Ajax->activate('grn_items'); $Ajax->activate('inv_tot'); } -- 2.30.2