X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=purchasing%2Fpo_receive_items.php;h=bfb8371cc40a93de19563aa1d8be779002e6c0fe;hb=508b54ee5cef13ac64f1532dfedfb7b242aa9077;hp=2e2fa35f4ac27f97f1b3d6c799137c0a50edeb9a;hpb=21c73495ecf326971b53eb1e0418940ed0b58619;p=fa-stable.git diff --git a/purchasing/po_receive_items.php b/purchasing/po_receive_items.php index 2e2fa35f..bfb8371c 100644 --- a/purchasing/po_receive_items.php +++ b/purchasing/po_receive_items.php @@ -1,6 +1,16 @@ . +***********************************************************************/ +$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"); @@ -12,24 +22,22 @@ 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); +page(_($help_context = "Receive Purchase Order Items"), false, false, "", $js); //--------------------------------------------------------------------------------------------------------------- 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"))); + display_note(get_trans_view_str($trans_type, $grn, _("&View this Delivery"))); - //echo "
"; - //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 "
"; - hyperlink_no_params("$path_to_root/purchasing/inquiry/po_search.php", _("Select a different purchase order for receiving items against")); + hyperlink_no_params("$path_to_root/purchasing/inquiry/po_search.php", _("Select a different &purchase order for receiving items against")); display_footer_exit(); } @@ -37,7 +45,6 @@ if (isset($_GET['AddedID'])) //-------------------------------------------------------------------------------------------------- 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.")); } @@ -68,7 +75,7 @@ function display_po_receive_items() $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; } @@ -92,7 +99,7 @@ function display_po_receive_items() else 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(); } @@ -114,9 +121,8 @@ function check_po_changed() // 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); @@ -125,7 +131,6 @@ function check_po_changed() 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) @@ -138,7 +143,7 @@ function check_po_changed() return true; } } - $line_no++; + $line_no++; } /*loop through all line items of the order to ensure none have been invoiced */ return false; @@ -148,6 +153,8 @@ function check_po_changed() 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.")); @@ -161,14 +168,14 @@ function can_process() 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'); @@ -190,7 +197,7 @@ function can_process() 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; @@ -204,7 +211,7 @@ function can_process() } 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() ."%)." . "
" . _("Modify the ordered items on the purchase order if you wish to increase the quantities.")); return false; @@ -224,20 +231,23 @@ function process_receive_po() 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.") . "
"; - - echo "
" . _("Select a different purchase order for receiving goods against") . "
"; - echo "
OrderNumber . "'>" . _("Re-Read the updated purchase order for receiving goods against") . "
"; + 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']); @@ -270,7 +280,7 @@ if (isset($_POST['Update']) || isset($_POST['ProcessGoodsReceived'])) $_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); @@ -292,7 +302,7 @@ if (isset($_POST['ProcessGoodsReceived'])) //-------------------------------------------------------------------------------------------------- -start_form(false, true); +start_form(); display_grn_summary($_SESSION['PO'], true); display_heading(_("Items to Receive")); @@ -300,7 +310,7 @@ display_po_receive_items(); echo '
'; 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();