X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=purchasing%2Fpo_entry_items.php;h=961bb5b3a85ac2440d8c027c2e3ca411d733f026;hb=c75b19a492e4b9ad53c9c0a47b87ad0abb687921;hp=d1713d03abf5d82f0c1196f642768ccb76283c47;hpb=f1612b8d1122d4e0d31d618c3143e2c39d12eea7;p=fa-stable.git diff --git a/purchasing/po_entry_items.php b/purchasing/po_entry_items.php index d1713d03..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 = ''; @@ -57,6 +60,9 @@ if (isset($_GET['ModifyOrderNumber']) && is_numeric($_GET['ModifyOrderNumber'])) page($_SESSION['page_title'], false, false, "", $js); +if (isset($_GET['ModifyOrderNumber'])) + check_is_editable(ST_PURCHORDER, $_GET['ModifyOrderNumber']); + //--------------------------------------------------------------------------------------------------- check_db_has_suppliers(_("There are no suppliers defined in the system.")); @@ -327,21 +333,27 @@ function can_commit() set_focus('supplier_id'); return false; } - + if (!is_date($_POST['OrderDate'])) { display_error(_("The entered order date is invalid.")); set_focus('OrderDate'); return false; } - + if (($_SESSION['PO']->trans_type == ST_SUPPRECEIVE || $_SESSION['PO']->trans_type == ST_SUPPINVOICE) + && !is_date_in_fiscalyear($_POST['OrderDate'])) { + display_error(_("The entered date is out of fiscal year or is closed for further data entry.")); + 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'))) @@ -350,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.")); @@ -358,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.")); @@ -377,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; } @@ -444,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,