}
else {
$order_no = $_GET['InvoicePrepayments'];
- $payments = get_payments_for($_GET['InvoicePrepayments'], ST_SALESORDER);
}
processing_start();
- $_SESSION['Items'] = new Cart(ST_SALESORDER, $order_no, ST_SALESINVOICE);
+ $_SESSION['Items'] = new cart(ST_SALESORDER, $order_no, ST_SALESINVOICE);
$_SESSION['Items']->order_no = $order_no;
$_SESSION['Items']->src_docs = array($order_no);
$_SESSION['Items']->trans_no = 0;
$_SESSION['Items']->trans_type = ST_SALESINVOICE;
- $_SESSION['Items']->prepayments = $payments;
+
$_SESSION['Items']->update_payments();
copy_from_cart();
$max = $itm->quantity;
} else {
$min = 0;
- $max = $itm->quantity - $itm->qty_done;
+ // Fixing floating point problem in PHP.
+ $max = round2($itm->quantity - $itm->qty_done, get_qty_dec($itm->stock_id));
}
if (check_num('Line'.$line_no, $min, $max)) {
$_SESSION['Items']->line_items[$line_no]->qty_dispatched =
return false;
}
} else {
- if (($_SESSION['Items']->payment_terms['days_before_due'] < 0) && !count($_SESSION['Items']->prepayments)) {
+ if (($_SESSION['Items']->payment_terms['days_before_due'] == -1) && !count($_SESSION['Items']->prepayments)) {
display_error(_("There is no non-invoiced payments for this order. If you want to issue final invoice, select delayed or cash payment terms."));
return false;
}
if (isset($_POST['process_invoice']) && check_data()) {
$newinvoice= $_SESSION['Items']->trans_no == 0;
copy_to_cart();
+
if ($newinvoice)
new_doc_date($_SESSION['Items']->document_date);
$allocs += $pmt['amt'];
}
}
-
label_row(_("Payments received:"), implode(',', $list));
label_row(_("Invoiced here:"), price_format($_SESSION['Items']->prep_amount), 'class=label');
- label_row(_("Left to be invoiced:"), price_format($_SESSION['Items']->get_trans_total()-max($_SESSION['Items']->prep_amount, $allocs)), 'class=label');
+ label_row($_SESSION['Items']->payment_terms['days_before_due'] == -1 ? _("Left to be invoiced:") : _("Invoiced so far:"),
+ price_format($_SESSION['Items']->get_trans_total()-max($_SESSION['Items']->prep_amount, $allocs)), 'class=label');
}
textarea_row(_("Memo:"), 'Comments', null, 50, 4);