! [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
$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);
}
//--------------------------------------------------------------------------------------------------
-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');
submit_cells('ClearFields', _("Reset"), "",
_("Clear all GL entry fields"), true);
end_row();
- div_end();
}
// $mode = 0 none at the moment
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)
}
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");
//--------------//-----------------------------------------------------------------------------------------
-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
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;
end_row();
}
}
-
- div_end();
+ return true;
}
//------------------------------------------------------------------------------------
{
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;
}
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>";
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)
{
}
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>";
unset($_POST['amount']);
unset($_POST['memo_']);
unset($_POST['AddGLCodeToTrans']);
- $Ajax->activate('gl_ctrls');
+ $Ajax->activate('gl_items');
set_focus('gl_code');
}
//------------------------------------------------------------------------------------------------
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');
}
$id = find_submit('grn_item_id');
if ($id != -1)
{
- $Ajax->activate('grn_table');
$Ajax->activate('grn_items');
$Ajax->activate('inv_tot');
}
unset($_POST['amount']);
unset($_POST['memo_']);
unset($_POST['AddGLCodeToTrans']);
- $Ajax->activate('gl_ctrls');
+ $Ajax->activate('gl_items');
set_focus('gl_code');
}
//------------------------------------------------------------------------------------------------
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;
}
$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');
}
$id2 = find_submit('void_item_id');
if ($id != -1 || $id2 != -1)
{
- $Ajax->activate('grn_table');
$Ajax->activate('grn_items');
$Ajax->activate('inv_tot');
}