$cart->Comments = $_POST['Comments'];
$cart->document_date = $_POST['OrderDate'];
-// if ($cart->trans_type == ST_SALESINVOICE) {
+
if (isset($_POST['payment']) && ($cart->payment != $_POST['payment'])) {
$cart->payment = $_POST['payment'];
$cart->payment_terms = get_payment_terms($_POST['payment']);
$cart->phone = $cart->cust_ref = $cart->delivery_address = '';
$cart->freight_cost = input_num('freight_cost');
$cart->ship_via = 1;
- $cart->deliver_to = '';//$_POST['deliver_to'];
+ $cart->deliver_to = '';
} else {
$cart->due_date = $_POST['delivery_date'];
$cart->cust_ref = $_POST['cust_ref'];
$cart->customer_id = $_POST['customer_id'];
$cart->Branch = $_POST['branch_id'];
$cart->sales_type = $_POST['sales_type'];
- // POS
+
if ($cart->trans_type!=ST_SALESORDER && $cart->trans_type!=ST_SALESQUOTE) { // 2008-11-12 Joe Hunt
$cart->dimension_id = $_POST['dimension_id'];
$cart->dimension2_id = $_POST['dimension2_id'];
}
- if (strlen($_POST['delivery_address']) <= 1) {
+ if ($_SESSION['Items']->trans_type != ST_SALESQUOTE && strlen($_POST['delivery_address']) <= 1) {
display_error( _("You should enter the street address in the box provided. Orders cannot be accepted without a valid street address."));
set_focus('delivery_address');
return false;
display_error(_("The entered reference is already in use."));
set_focus('ref');
return false;
- }
+ } elseif ($_SESSION['Items']->get_items_total() < 0) {
+ display_error("Invoice total amount cannot be less than zero.");
+ return false;
+ }
return true;
}
if (isset($_POST['ProcessOrder']) && can_process()) {
copy_to_cart();
-
$modified = ($_SESSION['Items']->trans_no != 0);
$so_type = $_SESSION['Items']->so_type;
$_SESSION['Items']->write(1);
function check_item_data()
{
- global $SysPrefs;
+ global $SysPrefs, $allow_negative_prices;
+ $is_inventory_item = is_inventory_item(get_post('stock_id'));
if(!get_post('stock_id_text', true)) {
display_error( _("Item description cannot be empty."));
set_focus('stock_id_edit');
display_error( _("The item could not be updated because you are attempting to set the quantity ordered to less than 0, or the discount percent to more than 100."));
set_focus('qty');
return false;
- } elseif (!check_num('price', 0)) {
- display_error( _("Price for item must be entered and can not be less than 0"));
+ } elseif (!check_num('price', 0) && (!$allow_negative_prices || $is_inventory_item)) {
+ display_error( _("Price for inventory item must be entered and can not be less than 0"));
set_focus('price');
return false;
} elseif (isset($_POST['LineNo']) && isset($_SESSION['Items']->line_items[$_POST['LineNo']])
display_error(_("You attempting to make the quantity ordered a quantity less than has already been delivered. The quantity delivered cannot be modified retrospectively."));
return false;
} // Joe Hunt added 2008-09-22 -------------------------
- elseif ($_SESSION['Items']->trans_type!=ST_SALESORDER && $_SESSION['Items']->trans_type!=ST_SALESQUOTE && !$SysPrefs->allow_negative_stock() &&
- is_inventory_item($_POST['stock_id']))
+ elseif ($is_inventory_item && $_SESSION['Items']->trans_type!=ST_SALESORDER && $_SESSION['Items']->trans_type!=ST_SALESQUOTE
+ && !$SysPrefs->allow_negative_stock())
{
$qoh = get_qoh_on_date($_POST['stock_id'], $_POST['Location'], $_POST['OrderDate']);
if (input_num('qty') > $qoh)
if (isset($_GET['NewQuoteToSalesOrder']))
{
$trans_no = $_GET['NewQuoteToSalesOrder'];
- $doc = new Cart(ST_SALESQUOTE, $trans_no);
- $doc->trans_no = 0;
- $doc->trans_type = ST_SALESORDER;
- $doc->reference = $Refs->get_next($doc->trans_type);
- $doc->document_date = $doc->due_date = new_doc_date();
+ $doc = new Cart(ST_SALESQUOTE, $trans_no, true);
$doc->Comments = _("Sales Quotation") . " # " . $trans_no;
$_SESSION['Items'] = $doc;
}