X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sales%2Fincludes%2Fdb%2Fsales_invoice_db.inc;h=ec650f302e02ff7d861deed3d4737b55c4b4334a;hb=d8d40a67b517dd35425a1fa0eb02f84c3f9fd843;hp=d4fda212743ccecb616148e1a1b4526f81e1fbde;hpb=95ff74b5722826544743a01daf527aa3c9efe11a;p=fa-stable.git diff --git a/sales/includes/db/sales_invoice_db.inc b/sales/includes/db/sales_invoice_db.inc index d4fda212..ec650f30 100644 --- a/sales/includes/db/sales_invoice_db.inc +++ b/sales/includes/db/sales_invoice_db.inc @@ -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();