. ***********************************************************************/ //--------------------------------------------------------------------------- // // Entry/Modify free hand Credit Note // $page_security = 3; $path_to_root=".."; include_once($path_to_root . "/sales/includes/cart_class.inc"); include_once($path_to_root . "/includes/session.inc"); include_once($path_to_root . "/includes/data_checks.inc"); include_once($path_to_root . "/sales/includes/sales_db.inc"); include_once($path_to_root . "/sales/includes/sales_ui.inc"); include_once($path_to_root . "/sales/includes/db/sales_types_db.inc"); include_once($path_to_root . "/sales/includes/ui/sales_credit_ui.inc"); include_once($path_to_root . "/sales/includes/ui/sales_order_ui.inc"); include_once($path_to_root . "/reporting/includes/reporting.inc"); $js = ""; if ($use_popup_windows) { $js .= get_js_open_window(900, 500); } if ($use_date_picker) { $js .= get_js_date_picker(); } if(isset($_GET['NewCredit'])) { $_SESSION['page_title'] = _("Customer Credit Note"); handle_new_credit(0); } elseif (isset($_GET['ModifyCredit'])) { $_SESSION['page_title'] = sprintf(_("Modifying Customer Credit Note #%d"), $_GET['ModifyCredit']); handle_new_credit($_GET['ModifyCredit']); $help_page_title = _("Modifying Customer Credit Note"); } page($_SESSION['page_title'],false, false, "", $js); //----------------------------------------------------------------------------- check_db_has_stock_items(_("There are no items defined in the system.")); check_db_has_customer_branches(_("There are no customers, or there are no customers with branches. Please define customers and customer branches.")); //----------------------------------------------------------------------------- if ($ret = context_restore()) { // return from new customer add copy_from_cn(); if(isset($ret['customer_id'])) $_POST['customer_id'] = $ret['customer_id']; if(isset($ret['branch_id'])) $_POST['branch_id'] = $ret['branch_id']; } if (isset($_POST['_customer_id_editor'])) { copy_to_cn(); //store context context_call($path_to_root.'/sales/manage/customers.php?debtor_no='.$_POST['customer_id'], 'Items'); } if (isset($_GET['AddedID'])) { $credit_no = $_GET['AddedID']; $trans_type = 11; display_notification_centered(sprintf(_("Credit Note # %d has been processed"),$credit_no)); display_note(get_customer_trans_view_str($trans_type, $credit_no, _("&View this credit note")), 0, 1); display_note(print_document_link($credit_no, _("&Print This Credit Invoice"), true, 11),0, 1); display_note(get_gl_view_str($trans_type, $credit_no, _("View the GL &Journal Entries for this Credit Note"))); hyperlink_params($_SERVER['PHP_SELF'], _("Enter Another &Credit Note"), "NewCredit=yes"); display_footer_exit(); } else check_edit_conflicts(); //-------------------------------------------------------------------------------- function line_start_focus() { global $Ajax; $Ajax->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']; $cart->dimension_id = $_POST['dimension_id']; $cart->dimension2_id = $_POST['dimension2_id']; } //----------------------------------------------------------------------------- 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; $_POST['dimension_id'] = $cart->dimension_id; $_POST['dimension2_id'] = $cart->dimension2_id; $_POST['cart_id'] = $cart->cart_id; } //----------------------------------------------------------------------------- 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()) { copy_to_cn(); 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']); new_doc_date($_SESSION['Items']->document_date); 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(); hidden('cart_id'); $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($_SESSION['Items']); echo ""; end_table(); } else { display_error($customer_error); } echo "
"; submit_cells('Update', _("Update")); submit_cells('ProcessCredit', _("Process Credit Note"), '', false, 'default'); echo "
"; end_form(); end_page(); ?>