Improved layout of Supplier Invoice/Credit. All Items can now be added in one sweep.
authorJoe Hunt <joe.hunt.consulting@gmail.com>
Fri, 24 Oct 2008 14:35:14 +0000 (14:35 +0000)
committerJoe Hunt <joe.hunt.consulting@gmail.com>
Fri, 24 Oct 2008 14:35:14 +0000 (14:35 +0000)
CHANGELOG.txt
purchasing/includes/ui/invoice_ui.inc
purchasing/supplier_credit.php
purchasing/supplier_invoice.php

index cf50ba60cf2d1b92abeb3f6fe52e0bd1dbad6fd2..d1a47b1ad6eb60a03aa1645d66e4a6a6a4188f73 100644 (file)
@@ -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
index 1162329be38ad0514102939c806425884cb2db9e..c89bfb4d52a77f7bd513cb98a137368162eba991 100644 (file)
@@ -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("<font color=red>" . _("Credit Note Total:") . "</font>",
-                       "<font color=red><b>$display_total</b></font>", "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 "<table width=100% >";
        echo "<tr><td align=center><span class='headingtext'>$heading</span></td>";
-       if ($mode == 1 && $heading2 != "")
+       if ($mode == 1)
        {
-               echo "</tr><td>";
-               display_note($heading2, 0, 0, "class='overduefg'");
-               echo "</td>\n";
+               submit_cells('InvGRNAll', _("Add All Items"), "align=right");
+               if ($heading2 != "")
+               {
+                       echo "</tr><td>";
+                       display_note($heading2, 0, 0, "class='overduefg'");
+                       echo "</td>\n";
+               }
        }       
        echo "</tr></table>";
 
@@ -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 "</table>";
+       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 "</td></tr>";
 
index 8ee6eff78945ec935104bff7a5a9c02f1187834c..96b5dcfe220e10557c0a2c72b6c14c0fe9f39a5c 100644 (file)
@@ -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');
 }
index 9341a11cc1f403771899605fd9dd0d2bc726fc16..9f2f1cc167e4b22df8071f47a09afc64ae55aaa6 100644 (file)
@@ -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');
 }