X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=purchasing%2Fpo_receive_items.php;h=d79a5af7cc2c1a2c0f4705b4753d2cda2dfae094;hb=f9451becdadf75c6e4feb459123f813100acb052;hp=8ad1ef068b10aa565e467ef13b906fd501fca5cf;hpb=da8311619dd73feae101d246a1957b972e00cbd2;p=fa-stable.git
diff --git a/purchasing/po_receive_items.php b/purchasing/po_receive_items.php
index 8ad1ef06..d79a5af7 100644
--- a/purchasing/po_receive_items.php
+++ b/purchasing/po_receive_items.php
@@ -10,11 +10,13 @@ include_once($path_to_root . "/purchasing/includes/purchasing_ui.inc");
$js = "";
if ($use_popup_windows)
$js .= get_js_open_window(900, 500);
+if ($use_date_picker)
+ $js .= get_js_date_picker();
page(_("Receive Purchase Order Items"), false, false, "", $js);
//---------------------------------------------------------------------------------------------------------------
-if (isset($_GET['AddedID']))
+if (isset($_GET['AddedID']))
{
$grn = $_GET['AddedID'];
$trans_type = 25;
@@ -26,7 +28,7 @@ if (isset($_GET['AddedID']))
//echo "
";
//echo get_gl_view_str(25, $grn, _("View the GL Journal Entries for this Delivery"));
- echo "
";
+// echo "
";
hyperlink_no_params("$path_to_root/purchasing/inquiry/po_search.php", _("Select a different purchase order for receiving items against"));
display_footer_exit();
@@ -34,8 +36,8 @@ if (isset($_GET['AddedID']))
//--------------------------------------------------------------------------------------------------
-if ((!isset($_GET['PONumber']) || $_GET['PONumber'] == 0) && !isset($_SESSION['PO']))
-//if (isset($_GET['PONumber']) && !$_GET['PONumber'] > 0 && !isset($_SESSION['PO']))
+if ((!isset($_GET['PONumber']) || $_GET['PONumber'] == 0) && !isset($_SESSION['PO']))
+//if (isset($_GET['PONumber']) && !$_GET['PONumber'] > 0 && !isset($_SESSION['PO']))
{
die (_("This page can only be opened if a purchase order has been selected. Please select a purchase order first."));
}
@@ -45,10 +47,12 @@ if ((!isset($_GET['PONumber']) || $_GET['PONumber'] == 0) && !isset($_SESSION['P
function display_po_receive_items()
{
global $table_style;
+
+ div_start('grn_items');
start_table("colspan=7 $table_style width=90%");
$th = array(_("Item Code"), _("Description"), _("Ordered"), _("Units"), _("Received"),
_("Outstanding"), _("This Delivery"), _("Price"), _("Total"));
- table_header($th);
+ table_header($th);
/*show the line items on the order with the quantity being received for modification */
@@ -57,7 +61,7 @@ function display_po_receive_items()
if (count($_SESSION['PO']->line_items)> 0 )
{
- foreach ($_SESSION['PO']->line_items as $ln_itm)
+ foreach ($_SESSION['PO']->line_items as $ln_itm)
{
alt_table_row_color($k);
@@ -77,16 +81,17 @@ function display_po_receive_items()
text_cells(null, $ln_itm->stock_id . "Desc", $ln_itm->item_description, 30, 50);
else
label_cell($ln_itm->item_description);
- qty_cell($ln_itm->quantity);
+ $dec = get_qty_dec($ln_itm->stock_id);
+ qty_cell($ln_itm->quantity, false, $dec);
label_cell($ln_itm->units);
- qty_cell($ln_itm->qty_received);
- qty_cell($qty_outstanding);
+ qty_cell($ln_itm->qty_received, false, $dec);
+ qty_cell($qty_outstanding, false, $dec);
if ($qty_outstanding > 0)
- text_cells(null, $ln_itm->line_no, $ln_itm->receive_qty, 10, 10, "align=right");
+ qty_cells(null, $ln_itm->line_no, number_format2($ln_itm->receive_qty, $dec), "align=right", null, $dec);
else
- text_cells(null, $ln_itm->line_no, $ln_itm->receive_qty, 10, 10, "align=right",
- "", "disabled");
+ qty_cells(null, $ln_itm->line_no, number_format2($ln_itm->receive_qty, $dec), "align=right",
+ "disabled", $dec);
amount_cell($ln_itm->price);
amount_cell($line_total);
@@ -98,6 +103,7 @@ function display_po_receive_items()
label_row(_("Total value of items received"), $display_total, "colspan=8 align=right",
"nowrap align=right");
end_table();
+ div_end();
}
//--------------------------------------------------------------------------------------------------
@@ -117,18 +123,18 @@ function check_po_changed()
check_db_error("Could not check that the details of the purchase order had not been changed by another user ", $sql);
$line_no = 1;
- while ($myrow = db_fetch($result))
+ while ($myrow = db_fetch($result))
{
$ln_item = $_SESSION['PO']->line_items[$line_no];
// only compare against items that are outstanding
$qty_outstanding = $ln_item->quantity - $ln_item->qty_received;
- if ($qty_outstanding > 0)
+ if ($qty_outstanding > 0)
{
- if ($ln_item->qty_inv != $myrow["qty_invoiced"] ||
- $ln_item->stock_id != $myrow["item_code"] ||
- $ln_item->quantity != $myrow["quantity_ordered"] ||
- $ln_item->qty_received != $myrow["quantity_received"])
+ if ($ln_item->qty_inv != $myrow["qty_invoiced"] ||
+ $ln_item->stock_id != $myrow["item_code"] ||
+ $ln_item->quantity != $myrow["quantity_ordered"] ||
+ $ln_item->qty_received != $myrow["quantity_received"])
{
return true;
}
@@ -149,28 +155,31 @@ function can_process()
return false;
}
- if (!is_date($_POST['DefaultReceivedDate']))
+ if (!is_date($_POST['DefaultReceivedDate']))
{
display_error(_("The entered date is invalid."));
+ set_focus('DefaultReceivedDate');
return false;
}
- if (!references::is_valid($_POST['ref']))
+ if (!references::is_valid($_POST['ref']))
{
display_error(_("You must enter a reference."));
+ set_focus('ref');
return false;
}
- if (!is_new_reference($_POST['ref'], 25))
+ if (!is_new_reference($_POST['ref'], 25))
{
display_error(_("The entered reference is already in use."));
+ set_focus('ref');
return false;
}
$something_received = 0;
- foreach ($_SESSION['PO']->line_items as $order_line)
+ foreach ($_SESSION['PO']->line_items as $order_line)
{
- if ($order_line->receive_qty > 0)
+ if ($order_line->receive_qty > 0)
{
$something_received = 1;
break;
@@ -179,10 +188,10 @@ function can_process()
// Check whether trying to deliver more items than are recorded on the actual purchase order (+ overreceive allowance)
$delivery_qty_too_large = 0;
- foreach ($_SESSION['PO']->line_items as $order_line)
+ foreach ($_SESSION['PO']->line_items as $order_line)
{
- if ($order_line->receive_qty+$order_line->qty_received >
- $order_line->quantity * (1+ (sys_prefs::over_receive_allowance() / 100)))
+ if ($order_line->receive_qty+$order_line->qty_received >
+ $order_line->quantity * (1+ (sys_prefs::over_receive_allowance() / 100)))
{
$delivery_qty_too_large = 1;
break;
@@ -193,7 +202,7 @@ function can_process()
{ /*Then dont bother proceeding cos nothing to do ! */
display_error(_("There is nothing to process. Please enter valid quantities greater than zero."));
return false;
- }
+ }
elseif ($delivery_qty_too_large == 1)
{
display_error(_("Entered quantities cannot be greater than the quantity entered on the purchase order including the allowed over-receive percentage") . " (" . sys_prefs::over_receive_allowance() ."%)."
@@ -209,12 +218,12 @@ function can_process()
function process_receive_po()
{
- global $path_to_root;
+ global $path_to_root, $Ajax;
if (!can_process())
return;
- if (check_po_changed())
+ if (check_po_changed())
{
echo "
" . _("This order has been changed or invoiced since this delivery was started to be actioned. Processing halted. To enter a delivery against this purchase order, it must be re-selected and re-read again to update the changes made by the other user.") . "
";
@@ -223,6 +232,7 @@ function process_receive_po()
unset($_SESSION['PO']->line_items);
unset($_SESSION['PO']);
unset($_POST['ProcessGoodsReceived']);
+ $Ajax->activate('_page_body');
exit;
}
@@ -237,7 +247,7 @@ function process_receive_po()
//--------------------------------------------------------------------------------------------------
-if (isset($_GET['PONumber']) && $_GET['PONumber'] > 0 && !isset($_POST['Update']))
+if (isset($_GET['PONumber']) && $_GET['PONumber'] > 0 && !isset($_POST['Update']))
{
create_new_po();
@@ -248,28 +258,29 @@ if (isset($_GET['PONumber']) && $_GET['PONumber'] > 0 && !isset($_POST['Update']
//--------------------------------------------------------------------------------------------------
-if (isset($_POST['Update']) || isset($_POST['ProcessGoodsReceived']))
+if (isset($_POST['Update']) || isset($_POST['ProcessGoodsReceived']))
{
/* if update quantities button is hit page has been called and ${$line->line_no} would have be
set from the post to the quantity to be received in this receival*/
- foreach ($_SESSION['PO']->line_items as $line)
+ foreach ($_SESSION['PO']->line_items as $line)
{
$_POST[$line->line_no] = max($_POST[$line->line_no], 0);
- if (!is_numeric($_POST[$line->line_no]))
- $_POST[$line->line_no] = 0;
+ if (!check_num($line->line_no))
+ $_POST[$line->line_no] = number_format2(0, get_qty_dec($line->stock_id));
if (!isset($_POST['DefaultReceivedDate']) || $_POST['DefaultReceivedDate'] == "")
$_POST['DefaultReceivedDate'] = Today();
- $_SESSION['PO']->line_items[$line->line_no]->receive_qty = $_POST[$line->line_no];
+ $_SESSION['PO']->line_items[$line->line_no]->receive_qty = input_num($line->line_no);
- if (isset($_POST[$line->stock_id . "Desc"]) && strlen($_POST[$line->stock_id . "Desc"]) > 0)
+ if (isset($_POST[$line->stock_id . "Desc"]) && strlen($_POST[$line->stock_id . "Desc"]) > 0)
{
$_SESSION['PO']->line_items[$line->line_no]->item_description = $_POST[$line->stock_id . "Desc"];
}
}
+ $Ajax->activate('grn_items');
}
//--------------------------------------------------------------------------------------------------
@@ -284,14 +295,12 @@ if (isset($_POST['ProcessGoodsReceived']))
start_form(false, true);
display_grn_summary($_SESSION['PO'], true);
-display_heading2(_("Items to Receive"));
+display_heading(_("Items to Receive"));
display_po_receive_items();
-echo "