Added POS name in cash payment memo.
[fa-stable.git] / sales / includes / db / sales_invoice_db.inc
index d4fda212743ccecb616148e1a1b4526f81e1fbde..ec650f302e02ff7d861deed3d4737b55c4b4334a 100644 (file)
@@ -40,6 +40,12 @@ function write_sales_invoice(&$invoice)
 
        if (!$invoice->is_prepaid())
                update_customer_trans_version(get_parent_type(ST_SALESINVOICE), $invoice->src_docs);
+    elseif (count($invoice->prepayments)) {    // partial invoice
+               $last_payment = end($invoice->prepayments);
+               $gl_date = sql2date($last_payment['tran_date']);
+       } else {        // final invoice
+               $gl_date = $invoice->document_date;
+       }
 
        $ov_gst = 0;
        $taxes = $invoice->get_taxes(); // all taxes with freight_tax
@@ -63,12 +69,12 @@ function write_sales_invoice(&$invoice)
                        $sales_order = $sales_order[0]; // assume all crucial SO data are same for every delivery
 
        if ($trans_no) {
-               $allocs = get_payments_for($trans_no, ST_SALESINVOICE);
+               $allocs = get_payments_for($trans_no, ST_SALESINVOICE, $invoice->customer_id);
                delete_comments(ST_SALESINVOICE, $trans_no);
                void_gl_trans(ST_SALESINVOICE, $trans_no, true);
                void_trans_tax_details(ST_SALESINVOICE, $trans_no);
        } else
-               $allocs = get_payments_for($invoice->order_no, ST_SALESORDER);
+               $allocs = get_payments_for($invoice->order_no, ST_SALESORDER, $invoice->customer_id);
 
        if ($invoice->is_prepaid()) // selected prepayment is already in cart
        {
@@ -197,14 +203,14 @@ function write_sales_invoice(&$invoice)
                                $Refs->get_next(ST_CUSTPAYMENT, null, array('customer' => $invoice->customer_id,
                                        'branch' => $invoice->Branch, 'date' => $date_)),
                                $amount-$discount, $discount,
-                               _('Cash invoice').' '.$invoice_no);
+                               $invoice->pos['pos_name'].' #'.$invoice_no);
                        add_cust_allocation($amount, ST_CUSTPAYMENT, $pmtno, ST_SALESINVOICE, $invoice_no, $invoice->customer_id, $date_);
 
                        update_debtor_trans_allocation(ST_SALESINVOICE, $invoice_no, $invoice->customer_id);
                        update_debtor_trans_allocation(ST_CUSTPAYMENT, $pmtno, $invoice->customer_id);
                }
        }
-       reallocate_payments($invoice_no, ST_SALESINVOICE, $date_, $to_allocate, $allocs);
+       reallocate_payments($invoice_no, ST_SALESINVOICE, $date_, $to_allocate, $allocs, $invoice->customer_id);
        hook_db_postwrite($invoice, ST_SALESINVOICE);
 
        commit_transaction();