submenu_option(_("Enter a &New Direct Invoice"),
"/sales/sales_order_entry.php?NewInvoice=0");
+ submenu_option(_("Add an Attachment"), "/admin/attachments.php?filterType=".ST_SALESINVOICE."&trans_no=$invoice");
+
display_footer_exit();
} else
check_edit_conflicts();
$cart->Comments = $_POST['Comments'];
$cart->document_date = $_POST['OrderDate'];
-// if ($cart->trans_type == ST_SALESINVOICE) {
+
+ $newpayment = false;
if (isset($_POST['payment']) && ($cart->payment != $_POST['payment'])) {
$cart->payment = $_POST['payment'];
$cart->payment_terms = get_payment_terms($_POST['payment']);
+ $newpayment = true;
}
if ($cart->payment_terms['cash_sale']) {
- $cart->due_date = $cart->document_date;
- $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'];
+ if ($newpayment) {
+ $cart->due_date = $cart->document_date;
+ $cart->phone = $cart->cust_ref = $cart->delivery_address = '';
+ $cart->ship_via = 1;
+ $cart->deliver_to = '';
+ }
} else {
$cart->due_date = $_POST['delivery_date'];
$cart->cust_ref = $_POST['cust_ref'];
- $cart->freight_cost = input_num('freight_cost');
$cart->deliver_to = $_POST['deliver_to'];
$cart->delivery_address = $_POST['delivery_address'];
$cart->phone = $_POST['phone'];
- $cart->Location = $_POST['Location'];
$cart->ship_via = $_POST['ship_via'];
}
+ $cart->Location = $_POST['Location'];
+ $cart->freight_cost = input_num('freight_cost');
if (isset($_POST['email']))
$cart->email =$_POST['email'];
else
$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()) {
+if (isset($_POST['update'])) {
copy_to_cart();
+ $Ajax->activate('items_table');
+}
+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);
if (count($messages)) { // abort on failure or error messages are lost
$Ajax->activate('_page_body');
}
}
-if (isset($_POST['update'])) {
- $Ajax->activate('items_table');
-}
-
//--------------------------------------------------------------------------------
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)
}
return true;
}
+ $cost_home = get_standard_cost(get_post('stock_id')); // Added 2011-03-27 Joe Hunt
+ $cost = $cost_home / get_exchange_rate_from_home_currency($_SESSION['Items']->customer_currency, $_SESSION['Items']->document_date);
+ if (input_num('price') < $cost)
+ {
+ $dec = user_price_dec();
+ $curr = $_SESSION['Items']->customer_currency;
+ $price = number_format2(input_num('price'), $dec);
+ if ($cost_home == $cost)
+ $std_cost = number_format2($cost_home, $dec);
+ else
+ {
+ $price = $curr . " " . $price;
+ $std_cost = $curr . " " . number_format2($cost, $dec);
+ }
+ display_warning(sprintf(_("Price %s is below Standard Cost %s"), $price, $std_cost));
+ }
return true;
}
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;
}