-function process_invoice($invoicing=false)
-{
- if ($invoicing)
- {
- read_sales_delivery($_SESSION['Items']->trans_no, $_SESSION['Items']);
- $duedate = get_invoice_duedate($_SESSION['Items']->customer_id, $_SESSION['Items']->delivery_date);
- $invoice_no = add_sales_invoice($_SESSION['Items'],
- $_SESSION['Items']->delivery_date, $duedate,
- $_SESSION['Items']->tax_group_id, $_SESSION['Items']->freight_cost,
- $_SESSION['Items']->Location, $_SESSION['Items']->ship_via,
- $_SESSION['Items']->default_sales_type, references::get_next(10),
- $_SESSION['Items']->memo_);
- }
- else
- {
-
- if (!check_data())
- return;
-
- if (!check_delivery_changed())
- delivery_changed_error();
-
- $invoice_no = add_sales_invoice($_SESSION['Items'],
- $_POST['InvoiceDate'], $_POST['due_date'],
- $_SESSION['Items']->tax_group_id,
- $_POST['ChargeFreightCost'],
- $_SESSION['Items']->Location,
- $_POST['ship_via'], $_POST['sales_type_id'], $_POST['ref'],
- $_POST['InvoiceText']);
- unset($_SESSION['ProcessingDelivery']);
+ $newinvoice= $_SESSION['Items']->trans_no == 0;
+ copy_to_cart();
+ if ($newinvoice) new_doc_date($_SESSION['Items']->document_date);
+
+ $invoice_no = $_SESSION['Items']->write();
+ processing_end();
+
+ if ($newinvoice) {
+ meta_forward($_SERVER['PHP_SELF'], "AddedID=$invoice_no");
+ } else {
+ meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$invoice_no");
+ }
+}
+
+if(list_updated('payment')) {
+ $order = &$_SESSION['Items'];
+ $order->payment = get_post('payment');
+ $order->payment_terms = get_payment_terms($order->payment);
+ $order->due_date = get_invoice_duedate($order->payment, $order->document_date);
+ if ($order->payment_terms['cash_sale']) {
+ $_POST['Location'] = $order->Location = $order->pos['pos_location'];
+ $order->location_name = $order->pos['location_name'];