Credit note can be posted without customer selected when search customer List is...
[fa-stable.git] / sales / customer_invoice.php
index 6a8e82bf041a1674f6f4afb2772613e769892e0a..35cdc5baca42e319cd4e6e849c165f9e8b310885 100644 (file)
@@ -160,16 +160,15 @@ if ( (isset($_GET['DeliveryNumber']) && ($_GET['DeliveryNumber'] > 0) )
        }
        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();
@@ -205,7 +204,8 @@ function check_quantities()
                                $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_unit_dec($itm->stock_id));
                        }
                        if (check_num('Line'.$line_no, $min, $max)) {
                                $_SESSION['Items']->line_items[$line_no]->qty_dispatched =
@@ -650,10 +650,10 @@ if ($prepaid)
                        $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);