Added helpers for list editor F4 calls.
[fa-stable.git] / purchasing / includes / ui / invoice_ui.inc
index 1162329be38ad0514102939c806425884cb2db9e..07f0d0e9bb78ba62a7a9df9b32be1844252a2b08 100644 (file)
@@ -1,5 +1,14 @@
 <?php
-
+/**********************************************************************
+    Copyright (C) FrontAccounting, LLC.
+       Released under the terms of the GNU Affero General Public License,
+       AGPL, as published by the Free Software Foundation, either version 
+       3 of the License, or (at your option) any later version.
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+    See the License here <http://www.gnu.org/licenses/agpl-3.0.html>.
+***********************************************************************/
 //--------------------------------------------------------------------------------------------------
 
 function copy_from_trans(&$supp_trans)
@@ -44,17 +53,15 @@ function copy_to_trans(&$supp_trans)
 
 function invoice_header(&$supp_trans)
 {
-       global $Ajax;
+       global $Ajax, $table_style;
        
        // if vars have been lost, recopy
        if (!isset($_POST['tran_date']))
                copy_from_trans($supp_trans);
 
-       start_table("width=100%", 5);
-       start_row();
-       echo"<td>"; // outer
+       start_outer_table("$table_style width=98%", 5);
 
-       echo "<table width=100%>";
+       table_section(1);
 
     if (!isset($_POST['supplier_id']) && (get_global_supplier() != reserved_words::get_all()))
        $_POST['supplier_id'] = get_global_supplier();
@@ -78,11 +85,7 @@ function invoice_header(&$supp_trans)
 
        text_row(_("Supplier's Ref.:"), 'supp_reference', $_POST['supp_reference'], 20, 20);
 
-       echo "</table>";
-
-       echo "</td><td class='tableseparator'>"; // outer
-
-       echo "<table width=100%>";
+       table_section(2, "33%");
 
        date_row(_("Date") . ":", 'tran_date', '', null, 0, 0, 0, "", true);
        if (isset($_POST['_tran_date_changed'])) {
@@ -97,11 +100,7 @@ function invoice_header(&$supp_trans)
 
     label_row(_("Terms:"), $supp_trans->terms_description);
 
-       echo "</table>";
-
-       echo "</td><td class='tableseparator'>"; // outer
-
-       echo "<table width=100%>";
+       table_section(3, "33%");
 
        $supplier_currency = get_supplier_currency($supp_trans->supplier_id);
 
@@ -113,12 +112,9 @@ function invoice_header(&$supp_trans)
                exchange_rate_display($supplier_currency, $company_currency, $_POST['tran_date']);
        }
 
-  label_row(_("Tax Group:"), $supp_trans->tax_description);
-       echo "</table>";
+       label_row(_("Tax Group:"), $supp_trans->tax_description);
 
-       echo "</td>";
-       end_row();
-       end_table(); // outer
+       end_outer_table();
 }
 
 //--------------------------------------------------------------------------------------------------
@@ -138,29 +134,25 @@ 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);
+    end_table(1);
     start_table($table_style2);
     textarea_row(_("Memo:"), "Comments", null, 50, 3);
-    end_table();
-    br(1);
+    end_table(1);
 }
 
 //--------------------------------------------------------------------------------------------------
-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 +172,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
@@ -196,24 +187,19 @@ function display_gl_items(&$supp_trans, $mode=0)
     if (($mode == 2 || $mode == 3) && count($supp_trans->gl_codes) == 0)
        return 0;
 
-       echo "<br>";
-
-       start_table("width=95%");
-       echo "<tr><td>"; // outertable
+       start_outer_table("width=95%");
 
        if ($supp_trans->is_invoice)
                $heading = _("GL Items for this Invoice");
        else
                $heading = _("GL Items for this Credit Note");
 
-       echo "<table width=100%>";
-       echo "<tr><td align=center><span class='headingtext'>$heading</span></td>";
-       echo "</tr></table>";
+       display_heading($heading);
 
-       echo "</td></tr><tr><td>"; // ouer table
+       vertical_space(); // ouer table
 
        div_start('gl_items');
-       echo "<table width=100% $table_style>";
+       start_table("$table_style width=100%");
 
        $dim = get_company_pref('use_dimension');
        if ($dim == 2)
@@ -251,12 +237,12 @@ 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)
                        {
-                               edit_button_cell("Delete2" . $entered_gl_code->Counter, _("Delete"),
+                               delete_button_cell("Delete2" . $entered_gl_code->Counter, _("Delete"),
                                          _('Remove line from document'));
                                label_cell("");
                        }       
@@ -274,27 +260,24 @@ 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");
 
-       echo "</table>";
+       end_table();
        div_end();
 
-    echo "</td></tr>";
-
-    end_table(); // outertable
+    end_outer_table(0, false); // outertable
        return $total_gl_value;
 }
 
 //--------------//-----------------------------------------------------------------------------------------
 
-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 +285,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 +343,7 @@ function display_grn_items_for_selection(&$supp_trans)
                        end_row();
        }
     }
-
-       div_end();
+    return true;
 }
 
 //------------------------------------------------------------------------------------
@@ -385,12 +357,13 @@ 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;
-       br(1);
-       start_table("width=95%");
-       echo "<tr><td>"; // outertable
+
+       start_outer_table("width=95%");
+
        $heading2 = "";
        if ($mode == 1)
        {
@@ -410,20 +383,26 @@ function display_grn_items(&$supp_trans, $mode=0)
                else
                        $heading = _("Received Items Credited on this Note");
        }               
-       echo "<table width=100% >";
-       echo "<tr><td align=center><span class='headingtext'>$heading</span></td>";
-       if ($mode == 1 && $heading2 != "")
+
+       start_outer_table("width=100%");
+
+       display_heading($heading);
+
+       if ($mode == 1)
        {
-               echo "</tr><td>";
-               display_note($heading2, 0, 0, "class='overduefg'");
-               echo "</td>\n";
+               if ($heading2 != "")
+               {
+                       //br();
+                       display_note($heading2, 0, 0, "class='overduefg'");
+               }       
+               echo "</td><td align='right'>";
+               submit('InvGRNAll', _("Add All Items"), true, false,true);
        }       
-       echo "</tr></table>";
 
-       echo "</td></tr><tr><td>"; // outer table
+       end_outer_table(0, false);
 
        div_start('grn_items');
-       echo "<table width=100% $table_style>";
+       start_table("$table_style width=100%");
        if ($mode == 1)
        {
        $th = array(_("Delivery"), _("Sequence #"), _("P.O."), _("Item"), _("Description"),
@@ -468,14 +447,13 @@ 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)
                        {
-                               edit_button_cell("Delete" . $entered_grn->id, _("Delete"),
-                                         _('Remove item from document'));
+                               delete_button_cell("Delete" . $entered_grn->id, _("Edit"), _('Edit document line'));
                                if ($supp_trans->is_invoice && $_SESSION["wa_current_user"]->access == 2)         
                                        label_cell("");
                        }       
@@ -494,18 +472,27 @@ 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>";
+    end_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>";
 
-    end_table(); // outertable
+    end_outer_table(0, false); // outertable
        return $total_grn_value;
 }