X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=purchasing%2Fpo_entry_items.php;h=961bb5b3a85ac2440d8c027c2e3ca411d733f026;hb=3f3cfa578adbc2b71f4fd9c8d0f5536d26af43d8;hp=294d4be50a57a3236b5a6977f82f4960c2051b48;hpb=ce52a2dd6cb28234935d002d661a2ee3c3d96ccb;p=fa-stable.git diff --git a/purchasing/po_entry_items.php b/purchasing/po_entry_items.php index 294d4be5..961bb5b3 100644 --- a/purchasing/po_entry_items.php +++ b/purchasing/po_entry_items.php @@ -23,8 +23,11 @@ set_page_security( @$_SESSION['PO']->trans_type, ST_SUPPINVOICE => 'SA_SUPPLIERINVOICE'), array( 'NewOrder' => 'SA_PURCHASEORDER', 'ModifyOrderNumber' => 'SA_PURCHASEORDER', + 'AddedID' => 'SA_PURCHASEORDER', 'NewGRN' => 'SA_GRN', - 'NewInvoice' => 'SA_SUPPLIERINVOICE') + 'AddedGRN' => 'SA_GRN', + 'NewInvoice' => 'SA_SUPPLIERINVOICE', + 'AddedPI' => 'SA_SUPPLIERINVOICE') ); $js = ''; @@ -58,7 +61,7 @@ if (isset($_GET['ModifyOrderNumber']) && is_numeric($_GET['ModifyOrderNumber'])) page($_SESSION['page_title'], false, false, "", $js); if (isset($_GET['ModifyOrderNumber'])) - check_is_closed(ST_PURCHORDER, $_GET['ModifyOrderNumber']); + check_is_editable(ST_PURCHORDER, $_GET['ModifyOrderNumber']); //--------------------------------------------------------------------------------------------------- @@ -330,7 +333,7 @@ function can_commit() set_focus('supplier_id'); return false; } - + if (!is_date($_POST['OrderDate'])) { display_error(_("The entered order date is invalid.")); @@ -343,13 +346,14 @@ function can_commit() set_focus('OrderDate'); return false; } + if (($_SESSION['PO']->trans_type==ST_SUPPINVOICE) && !is_date($_POST['due_date'])) { display_error(_("The entered due date is invalid.")); set_focus('due_date'); return false; } - + if (!$_SESSION['PO']->order_no) { if (!$Refs->is_valid(get_post('ref'))) @@ -358,7 +362,7 @@ function can_commit() set_focus('ref'); return false; } - + if (!is_new_reference(get_post('ref'), $_SESSION['PO']->trans_type)) { display_error(_("The entered reference is already in use.")); @@ -366,13 +370,20 @@ function can_commit() return false; } } - + if ($_SESSION['PO']->trans_type == ST_SUPPINVOICE && !$Refs->is_valid(get_post('supp_ref'))) { display_error(_("You must enter a supplier's invoice reference.")); set_focus('supp_ref'); return false; } + if ($_SESSION['PO']->trans_type==ST_SUPPINVOICE + && is_reference_already_there($_SESSION['PO']->supplier_id, get_post('supp_ref'), $_SESSION['PO']->order_no)) + { + display_error(_("This invoice number has already been entered. It cannot be entered again.") . " (" . get_post('supp_ref') . ")"); + set_focus('supp_ref'); + return false; + } if ($_SESSION['PO']->trans_type == ST_PURCHORDER && get_post('delivery_address') == '') { display_error(_("There is no delivery address specified.")); @@ -385,13 +396,20 @@ function can_commit() set_focus('StkLocation'); return false; } - + if (!db_has_currency_rates($_SESSION['PO']->curr_code, $_POST['OrderDate'])) + return false; if ($_SESSION['PO']->order_has_items() == false) { display_error (_("The order cannot be placed because there are no lines entered on this order.")); return false; } - + if (floatcmp(input_num('prep_amount'), $_SESSION['PO']->get_trans_total()) > 0) + { + display_error(_("Required prepayment is greater than total invoice value.")); + set_focus('prep_amount'); + return false; + } + return true; } @@ -420,6 +438,7 @@ function handle_commit_order() } $order_no = add_po($cart); new_doc_date($cart->orig_order_date); + $cart->order_no = $order_no; if ($cart->trans_type == ST_PURCHORDER) { unset($_SESSION['PO']); @@ -451,6 +470,7 @@ function handle_commit_order() $supp = get_supplier($cart->supplier_id); $inv->tax_group_id = $supp['tax_group_id']; $total = 0; + foreach($cart->line_items as $key => $line) { $inv->add_grn_to_trans($line->grn_item_id, $line->po_detail_rec, $line->stock_id, $line->item_description, $line->receive_qty, 0, $line->receive_qty,