activate('items_table'); set_focus('_stock_id_edit'); } //----------------------------------------------------------------------------- function copy_to_cn() { $cart = &$_SESSION['Items']; $cart->Comments = $_POST['CreditText']; $cart->document_date = $_POST['OrderDate']; $cart->freight_cost = input_num('ChargeFreightCost'); $cart->Location = $_POST["Location"]; $cart->sales_type = $_POST['sales_type_id']; $cart->reference = $_POST['ref']; $cart->ship_via = $_POST['ShipperID']; } //----------------------------------------------------------------------------- function copy_from_cn() { $cart = &$_SESSION['Items']; $_POST['CreditText'] = $cart->Comments; $_POST['OrderDate'] = $cart->document_date; $_POST['ChargeFreightCost'] = price_format($cart->freight_cost); $_POST['Location'] = $cart->Location; $_POST['sales_type_id'] = $cart->sales_type; $_POST['ref'] = $cart->reference; $_POST['ShipperID'] = $cart->ship_via; } //----------------------------------------------------------------------------- function handle_new_credit($trans_no) { processing_start(); $_SESSION['Items'] = new Cart(11,$trans_no); copy_from_cn(); } //----------------------------------------------------------------------------- function can_process() { $input_error = 0; if ($_SESSION['Items']->count_items() == 0 && (!check_num('ChargeFreightCost',0))) return false; if($_SESSION['Items']->trans_no == 0) { if (!references::is_valid($_POST['ref'])) { display_error( _("You must enter a reference.")); set_focus('ref'); $input_error = 1; } elseif (!is_new_reference($_POST['ref'], 11)) { display_error( _("The entered reference is already in use.")); set_focus('ref'); $input_error = 1; } } if (!is_date($_POST['OrderDate'])) { display_error(_("The entered date for the credit note is invalid.")); set_focus('OrderDate'); $input_error = 1; } elseif (!is_date_in_fiscalyear($_POST['OrderDate'])) { display_error(_("The entered date is not in fiscal year.")); set_focus('OrderDate'); $input_error = 1; } return ($input_error == 0); } //----------------------------------------------------------------------------- if (isset($_POST['ProcessCredit']) && can_process()) { if ($_POST['CreditType'] == "WriteOff" && (!isset($_POST['WriteOffGLCode']) || $_POST['WriteOffGLCode'] == '')) { display_note(_("For credit notes created to write off the stock, a general ledger account is required to be selected."), 1, 0); display_note(_("Please select an account to write the cost of the stock off to, then click on Process again."), 1, 0); exit; } if (!isset($_POST['WriteOffGLCode'])) { $_POST['WriteOffGLCode'] = 0; } copy_to_cn(); $credit_no = $_SESSION['Items']->write($_POST['WriteOffGLCode']); processing_end(); meta_forward($_SERVER['PHP_SELF'], "AddedID=$credit_no"); } /*end of process credit note */ //----------------------------------------------------------------------------- function check_item_data() { if (!check_num('qty',0)) { display_error(_("The quantity must be greater than zero.")); set_focus('qty'); return false; } if (!check_num('price',0)) { display_error(_("The entered price is negative or invalid.")); set_focus('price'); return false; } if (!check_num('Disc', 0, 100)) { display_error(_("The entered discount percent is negative, greater than 100 or invalid.")); set_focus('Disc'); return false; } return true; } //----------------------------------------------------------------------------- function handle_update_item() { if ($_POST['UpdateItem'] != "" && check_item_data()) { $_SESSION['Items']->update_cart_item($_POST['line_no'], input_num('qty'), input_num('price'), input_num('Disc') / 100); } line_start_focus(); } //----------------------------------------------------------------------------- function handle_delete_item($line_no) { $_SESSION['Items']->remove_from_cart($line_no); line_start_focus(); } //----------------------------------------------------------------------------- function handle_new_item() { if (!check_item_data()) return; add_to_order($_SESSION['Items'], $_POST['stock_id'], input_num('qty'), input_num('price'), input_num('Disc') / 100); line_start_focus(); } //----------------------------------------------------------------------------- $id = find_submit('Delete'); if ($id!=-1) handle_delete_item($id); if (isset($_POST['AddItem'])) handle_new_item(); if (isset($_POST['UpdateItem'])) handle_update_item(); if (isset($_POST['CancelItemChanges'])) line_start_focus(); //----------------------------------------------------------------------------- if (!processing_active()) { handle_new_credit(); } //----------------------------------------------------------------------------- start_form(false, true); $customer_error = display_credit_header($_SESSION['Items']); if ($customer_error == "") { start_table("$table_style width=80%", 10); echo ""; display_credit_items(_("Credit Note Items"), $_SESSION['Items']); credit_options_controls(); echo ""; end_table(); } else { display_error($customer_error); } echo "
"; submit_cells('Update', _("Update")); submit_cells('ProcessCredit', _("Process Credit Note")); echo "
"; end_form(); end_page(); ?>