<?php
-$page_security = 11;
-$path_to_root="..";
+/**********************************************************************
+ Copyright (C) FrontAccounting, LLC.
+ Released under the terms of the GNU General Public License, GPL,
+ 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/gpl-3.0.html>.
+***********************************************************************/
+$page_security = 'SA_GRN';
+$path_to_root = "..";
include_once($path_to_root . "/purchasing/includes/po_class.inc");
include_once($path_to_root . "/includes/session.inc");
if (isset($_GET['AddedID']))
{
$grn = $_GET['AddedID'];
- $trans_type = 25;
+ $trans_type = ST_SUPPRECEIVE;
display_notification_centered(_("Purchase Order Delivery has been processed"));
display_note(get_trans_view_str($trans_type, $grn, _("&View this Delivery")));
- //echo "<BR>";
- //echo get_gl_view_str(25, $grn, _("View the GL &Journal Entries for this Delivery"));
+ hyperlink_params("$path_to_root/purchasing/supplier_invoice.php", _("Entry purchase &invoice for this receival"), "New=1");
-// echo "<br>";
hyperlink_no_params("$path_to_root/purchasing/inquiry/po_search.php", _("Select a different &purchase order for receiving items against"));
display_footer_exit();
//--------------------------------------------------------------------------------------------------
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."));
}
$qty_outstanding = $ln_itm->quantity - $ln_itm->qty_received;
- if ($ln_itm->receive_qty == 0)
+ if (!isset($_POST['Update']) && !isset($_POST['ProcessGoodsReceived']) && $ln_itm->receive_qty == 0)
{ //If no quantites yet input default the balance to be received
$ln_itm->receive_qty = $qty_outstanding;
}
if ($qty_outstanding > 0)
qty_cells(null, $ln_itm->line_no, number_format2($ln_itm->receive_qty, $dec), "align=right", null, $dec);
else
- qty_cells(null, $ln_itm->line_no, number_format2($ln_itm->receive_qty, $dec), "align=right",
- "disabled", $dec);
+ label_cell(number_format2($ln_itm->receive_qty, $dec), "align=right");
- amount_cell($ln_itm->price);
+ amount_decimal_cell($ln_itm->price);
amount_cell($line_total);
end_row();
}
// Otherwise if you try to fullfill item quantities separately will give error.
$sql = "SELECT item_code, quantity_ordered, quantity_received, qty_invoiced
FROM ".TB_PREF."purch_order_details
- WHERE order_no=" . $_SESSION['PO']->order_no . "
- AND (quantity_ordered > quantity_received)
- ORDER BY po_detail_item";
+ WHERE order_no=".db_escape($_SESSION['PO']->order_no)
+ ." ORDER BY po_detail_item";
$result = db_query($sql, "could not query purch order details");
check_db_error("Could not check that the details of the purchase order had not been changed by another user ", $sql);
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)
return true;
}
}
- $line_no++;
+ $line_no++;
} /*loop through all line items of the order to ensure none have been invoiced */
return false;
function can_process()
{
+ global $SysPrefs, $Refs;
+
if (count($_SESSION['PO']->line_items) <= 0)
{
display_error(_("There is nothing to process. Please enter valid quantities greater than zero."));
return false;
}
- if (!references::is_valid($_POST['ref']))
+ if (!$Refs->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'], ST_SUPPRECEIVE))
{
display_error(_("The entered reference is already in use."));
set_focus('ref');
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)))
+ $order_line->quantity * (1+ ($SysPrefs->over_receive_allowance() / 100)))
{
$delivery_qty_too_large = 1;
break;
}
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() ."%)."
+ display_error(_("Entered quantities cannot be greater than the quantity entered on the purchase order including the allowed over-receive percentage") . " (" . $SysPrefs->over_receive_allowance() ."%)."
. "<br>" .
_("Modify the ordered items on the purchase order if you wish to increase the quantities."));
return false;
if (check_po_changed())
{
- echo "<br> " . _("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.") . "<BR>";
-
- echo "<center><a href='$path_to_root/purchasing/inquiry/po_search.php?" . SID . "'>" . _("Select a different purchase order for receiving goods against") . "</a></center>";
- echo "<center><a href='$path_to_root/po_receive_items.php?" . SID . "PONumber=" . $_SESSION['PO']->OrderNumber . "'>" . _("Re-Read the updated purchase order for receiving goods against") . "</a></center>";
+ display_error(_("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."));
+ hyperlink_no_params("$path_to_root/purchasing/inquiry/po_search.php",
+ _("Select a different purchase order for receiving goods against"));
+ hyperlink_params("$path_to_root/purchasing/po_receive_items.php",
+ _("Re-Read the updated purchase order for receiving goods against"),
+ "PONumber=" . $_SESSION['PO']->order_no);
unset($_SESSION['PO']->line_items);
unset($_SESSION['PO']);
unset($_POST['ProcessGoodsReceived']);
$Ajax->activate('_page_body');
- exit;
+ display_footer_exit();
}
$grn = add_grn($_SESSION['PO'], $_POST['DefaultReceivedDate'],
$_POST['ref'], $_POST['Location']);
+ new_doc_date($_POST['DefaultReceivedDate']);
unset($_SESSION['PO']->line_items);
unset($_SESSION['PO']);
set from the post to the quantity to be received in this receival*/
foreach ($_SESSION['PO']->line_items as $line)
{
-
+ if( ($line->quantity - $line->qty_received)>0) {
$_POST[$line->line_no] = max($_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();
+ $_POST['DefaultReceivedDate'] = new_doc_date();
$_SESSION['PO']->line_items[$line->line_no]->receive_qty = input_num($line->line_no);
{
$_SESSION['PO']->line_items[$line->line_no]->item_description = $_POST[$line->stock_id . "Desc"];
}
+ }
}
$Ajax->activate('grn_items');
}
//--------------------------------------------------------------------------------------------------
-start_form(false, true);
+start_form();
display_grn_summary($_SESSION['PO'], true);
display_heading(_("Items to Receive"));
echo '<br>';
submit_center_first('Update', _("Update"), '', true);
-submit_center_last('ProcessGoodsReceived', _("Process Receive Items"), _("Clear all GL entry fields"), true);
+submit_center_last('ProcessGoodsReceived', _("Process Receive Items"), _("Clear all GL entry fields"), 'default');
end_form();