X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sales%2Fsales_order_entry.php;h=1bb20d1741eb146b0068f703079ff7e572a6d708;hb=649c678c71f2827326c9761b0091bb15196f8878;hp=98cf5411d64c99bd76528fffe5b63f1007f5fe27;hpb=18ce16fd14342f897111c66b40295af4d351ef58;p=fa-stable.git diff --git a/sales/sales_order_entry.php b/sales/sales_order_entry.php index 98cf5411..1bb20d17 100644 --- a/sales/sales_order_entry.php +++ b/sales/sales_order_entry.php @@ -62,12 +62,12 @@ if ($use_date_picker) { if (isset($_GET['NewDelivery']) && is_numeric($_GET['NewDelivery'])) { $_SESSION['page_title'] = _($help_context = "Direct Sales Delivery"); - create_cart(ST_CUSTDELIVERY, 0); + create_cart(ST_CUSTDELIVERY, $_GET['NewDelivery']); } elseif (isset($_GET['NewInvoice']) && is_numeric($_GET['NewInvoice'])) { $_SESSION['page_title'] = _($help_context = "Direct Sales Invoice"); - create_cart(ST_SALESINVOICE, 0); + create_cart(ST_SALESINVOICE, $_GET['NewInvoice']); } elseif (isset($_GET['ModifyOrderNumber']) && is_numeric($_GET['ModifyOrderNumber'])) { @@ -95,6 +95,12 @@ if (isset($_GET['NewDelivery']) && is_numeric($_GET['NewDelivery'])) { } page($_SESSION['page_title'], false, false, "", $js); + +if (isset($_GET['ModifyOrderNumber'])) + check_is_editable(ST_SALESORDER, $_GET['ModifyOrderNumber']); +elseif (isset($_GET['ModifyQuotationNumber'])) + check_is_editable(ST_SALESQUOTE, $_GET['ModifyQuotationNumber']); + //----------------------------------------------------------------------------- if (list_updated('branch_id')) { @@ -261,6 +267,7 @@ function copy_to_cart() $cart->phone = $cart->cust_ref = $cart->delivery_address = ''; $cart->ship_via = 0; $cart->deliver_to = ''; + $cart->prep_amount = 0; } } else { $cart->due_date = $_POST['delivery_date']; @@ -269,6 +276,8 @@ function copy_to_cart() $cart->delivery_address = $_POST['delivery_address']; $cart->phone = $_POST['phone']; $cart->ship_via = $_POST['ship_via']; + if (!$cart->trans_no || ($cart->trans_type == ST_SALESORDER && !$cart->is_started())) + $cart->prep_amount = input_num('prep_amount', 0); } $cart->Location = $_POST['Location']; $cart->freight_cost = input_num('freight_cost'); @@ -284,6 +293,7 @@ function copy_to_cart() $cart->dimension_id = $_POST['dimension_id']; $cart->dimension2_id = $_POST['dimension2_id']; } + $cart->ex_rate = input_num('_ex_rate', null); } //----------------------------------------------------------------------------- @@ -309,14 +319,15 @@ function copy_from_cart() $_POST['branch_id'] = $cart->Branch; $_POST['sales_type'] = $cart->sales_type; + $_POST['prep_amount'] = price_format($cart->prep_amount); // POS $_POST['payment'] = $cart->payment; if ($cart->trans_type!=ST_SALESORDER && $cart->trans_type!=ST_SALESQUOTE) { // 2008-11-12 Joe Hunt $_POST['dimension_id'] = $cart->dimension_id; $_POST['dimension2_id'] = $cart->dimension2_id; - } + } $_POST['cart_id'] = $cart->cart_id; - + $_POST['_ex_rate'] = $cart->ex_rate; } //-------------------------------------------------------------------------------- @@ -351,7 +362,7 @@ function can_process() { return false; } if ($_SESSION['Items']->trans_type!=ST_SALESORDER && $_SESSION['Items']->trans_type!=ST_SALESQUOTE && !is_date_in_fiscalyear($_POST['OrderDate'])) { - 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('OrderDate'); return false; } @@ -361,11 +372,17 @@ function can_process() { return false; } if ($_SESSION['Items']->payment_terms['cash_sale'] == 0) { - if (strlen($_POST['deliver_to']) <= 1) { - display_error(_("You must enter the person or company to whom delivery should be made to.")); - set_focus('deliver_to'); - return false; - } + if (!$_SESSION['Items']->is_started() && ($_SESSION['Items']->payment_terms['days_before_due'] < 0) && ((input_num('prep_amount')<=0) || + input_num('prep_amount')>$_SESSION['Items']->get_trans_total())) { + display_error(_("Pre-payment required have to be positive and less than total amount.")); + set_focus('prep_amount'); + return false; + } + if (strlen($_POST['deliver_to']) <= 1) { + display_error(_("You must enter the person or company to whom delivery should be made to.")); + set_focus('deliver_to'); + return false; + } if ($_SESSION['Items']->trans_type != ST_SALESQUOTE && strlen($_POST['delivery_address']) <= 1) { @@ -586,28 +603,28 @@ function handle_cancel_order() if ($_SESSION['Items']->trans_type == ST_CUSTDELIVERY) { display_notification(_("Direct delivery entry has been cancelled as requested."), 1); submenu_option(_("Enter a New Sales Delivery"), "/sales/sales_order_entry.php?NewDelivery=1"); - } elseif ($_SESSION['Items']->trans_type == ST_SALESINVOICE) { display_notification(_("Direct invoice entry has been cancelled as requested."), 1); submenu_option(_("Enter a New Sales Invoice"), "/sales/sales_order_entry.php?NewInvoice=1"); - } else { + } elseif ($_SESSION['Items']->trans_type == ST_SALESQUOTE) + { + delete_sales_order(key($_SESSION['Items']->trans_no), $_SESSION['Items']->trans_type); + display_notification(_("This sales quotation has been cancelled as requested."), 1); + submenu_option(_("Enter a New Sales Quotation"), "/sales/sales_order_entry.php?NewQuotation=Yes"); + } else { // sales order if ($_SESSION['Items']->trans_no != 0) { - if ($_SESSION['Items']->trans_type == ST_SALESORDER && - sales_order_has_deliveries(key($_SESSION['Items']->trans_no))) - display_error(_("This order cannot be cancelled because some of it has already been invoiced or dispatched. However, the line item quantities may be modified.")); - else { + $order_no = key($_SESSION['Items']->trans_no); + if (sales_order_has_deliveries($order_no)) + { + close_sales_order($order_no); + display_notification(_("Undelivered part of order has been cancelled as requested."), 1); + submenu_option(_("Select Another Sales Order for Edition"), "/sales/inquiry/sales_orders_view.php?type=".ST_SALESORDER); + } else { delete_sales_order(key($_SESSION['Items']->trans_no), $_SESSION['Items']->trans_type); - if ($_SESSION['Items']->trans_type == ST_SALESQUOTE) - { - display_notification(_("This sales quotation has been cancelled as requested."), 1); - submenu_option(_("Enter a New Sales Quotation"), "/sales/sales_order_entry.php?NewQuotation=Yes"); - } - else - { - display_notification(_("This sales order has been cancelled as requested."), 1); - submenu_option(_("Enter a New Sales Order"), "/sales/sales_order_entry.php?NewOrder=Yes"); - } - } + + display_notification(_("This sales order has been cancelled as requested."), 1); + submenu_option(_("Enter a New Sales Order"), "/sales/sales_order_entry.php?NewOrder=Yes"); + } } else { processing_end(); meta_forward($path_to_root.'/index.php','application=orders'); @@ -712,8 +729,7 @@ if ($_SESSION['Items']->trans_type == ST_SALESINVOICE) { start_form(); hidden('cart_id'); -$customer_error = display_order_header($_SESSION['Items'], - ($_SESSION['Items']->any_already_delivered() == 0), $idate); +$customer_error = display_order_header($_SESSION['Items'], !$_SESSION['Items']->is_started(), $idate); if ($customer_error == "") { start_table(TABLESTYLE, "width=80%", 10); @@ -731,6 +747,8 @@ if ($customer_error == "") { _('Check entered data and save document'), 'default'); submit_js_confirm('CancelOrder', _('You are about to void this Document.\nDo you want to continue?')); } else { + if ($_SESSION['Items']->trans_type==ST_SALESORDER) + submit_js_confirm('CancelOrder', _('You are about to cancel undelivered part of this order.\nDo you want to continue?')); submit_center_first('ProcessOrder', $corder, _('Validate changes and update document'), 'default'); }