X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=purchasing%2Fsupplier_invoice.php;h=7e3ca5df811f8a5743fddfa35e829e3908f2198b;hb=9a98bb3bc7a94f1a8e47f8dab45a87c8b4212080;hp=b4c7b89e636aa9c022490e4f6f422307b4415567;hpb=3097d7ef2533710c60b634abd4b543e39e45272b;p=fa-stable.git diff --git a/purchasing/supplier_invoice.php b/purchasing/supplier_invoice.php index b4c7b89e..7e3ca5df 100644 --- a/purchasing/supplier_invoice.php +++ b/purchasing/supplier_invoice.php @@ -25,12 +25,34 @@ if ($use_popup_windows) $js .= get_js_open_window(900, 500); if ($use_date_picker) $js .= get_js_date_picker(); -page(_($help_context = "Enter Supplier Invoice"), false, false, "", $js); - //---------------------------------------------------------------------------------------- check_db_has_suppliers(_("There are no suppliers defined in the system.")); +if (isset($_GET['ModifyInvoice'])) + check_is_closed(ST_SUPPINVOICE, $_GET['ModifyInvoice']); + +//-------------------------------------------------------------------------------------------------- + +if (isset($_GET['New'])) +{ + if (isset( $_SESSION['supp_trans'])) + { + unset ($_SESSION['supp_trans']->grn_items); + unset ($_SESSION['supp_trans']->gl_codes); + unset ($_SESSION['supp_trans']); + } + $help_context = "Enter Supplier Invoice"; + $_SESSION['page_title'] = _("Enter Supplier Invoice"); + + $_SESSION['supp_trans'] = new supp_trans(ST_SUPPINVOICE); +} else if(isset($_GET['ModifyInvoice'])) { + $help_context = 'Modifying Purchase Invoice'; + $_SESSION['page_title'] = sprintf( _("Modifying Purchase Invoice # %d"), $_GET['ModifyInvoice']); + $_SESSION['supp_trans'] = new supp_trans(ST_SUPPINVOICE, $_GET['ModifyInvoice']); +} + +page($_SESSION['page_title'], false, false, "", $js); //--------------------------------------------------------------------------------------------------------------- if (isset($_GET['AddedID'])) @@ -66,6 +88,8 @@ if (isset($_GET['New'])) } $_SESSION['supp_trans'] = new supp_trans(ST_SUPPINVOICE); +} else if(isset($_GET['ModifyInvoice'])) { + $_SESSION['supp_trans'] = new supp_trans(ST_SUPPINVOICE, $_GET['ModifyInvoice']); } //-------------------------------------------------------------------------------------------------- @@ -149,7 +173,7 @@ function check_data() return false; } - if (!is_new_reference($_SESSION['supp_trans']->reference, ST_SUPPINVOICE)) + if (!is_new_reference($_SESSION['supp_trans']->reference, ST_SUPPINVOICE, $_SESSION['supp_trans']->trans_no)) { display_error(_("The entered reference is already in use.")); set_focus('reference'); @@ -171,7 +195,7 @@ function check_data() } elseif (!is_date_in_fiscalyear($_SESSION['supp_trans']->tran_date)) { - display_error(_("The entered date is not in fiscal year.")); + display_error(_("The entered date is out of fiscal year or is closed for further data entry.")); set_focus('trans_date'); return false; } @@ -182,7 +206,7 @@ function check_data() return false; } - if (is_reference_already_there($_SESSION['supp_trans']->supplier_id, $_POST['supp_reference'])) + if (is_reference_already_there($_SESSION['supp_trans']->supplier_id, $_POST['supp_reference'], $_SESSION['supp_trans']->trans_no)) { /*Transaction reference already entered */ display_error(_("This invoice number has already been entered. It cannot be entered again.") . " (" . $_POST['supp_reference'] . ")"); return false; @@ -199,8 +223,12 @@ function handle_commit_invoice() if (!check_data()) return; + $inv = $_SESSION['supp_trans']; + $invoice_no = add_supp_invoice($inv); - $invoice_no = add_supp_invoice($_SESSION['supp_trans']); + // presume supplier data need correction + if ($inv->stored_algorithm != $inv->tax_algorithm) + update_supp_tax_algorithm($inv->supplier_id, $inv->tax_algorithm); $_SESSION['supp_trans']->clear_items(); unset($_SESSION['supp_trans']); @@ -219,6 +247,7 @@ function check_item_data($n) { global $check_price_charged_vs_order_price, $check_qty_charged_vs_del_qty, $SysPrefs; + if (!check_num('this_quantity_inv'.$n, 0) || input_num('this_quantity_inv'.$n)==0) { display_error( _("The quantity to invoice must be numeric and greater than zero.")); @@ -268,10 +297,19 @@ function commit_item_data($n) { if (check_item_data($n)) { + if (input_num('this_quantity_inv'.$n) >= ($_POST['qty_recd'.$n] - $_POST['prev_quantity_inv'.$n])) + { + $complete = true; + } + else + { + $complete = false; + } + $_SESSION['supp_trans']->add_grn_to_trans($n, $_POST['po_detail_item'.$n], $_POST['item_code'.$n], $_POST['item_description'.$n], $_POST['qty_recd'.$n], $_POST['prev_quantity_inv'.$n], input_num('this_quantity_inv'.$n), - $_POST['order_price'.$n], input_num('ChgPrice'.$n), + $_POST['order_price'.$n], input_num('ChgPrice'.$n), $complete, $_POST['std_cost_unit'.$n], ""); } }