From 16a2a1e4ca390d9ffe169d0e34e8a1670bcde531 Mon Sep 17 00:00:00 2001 From: Joe Hunt Date: Mon, 21 Oct 2019 22:44:07 +0200 Subject: [PATCH] Bug 5013: zero invoices create zero payments and cause db error upon view payment. Fixed. --- sales/includes/db/sales_invoice_db.inc | 31 +++++++++++++------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/sales/includes/db/sales_invoice_db.inc b/sales/includes/db/sales_invoice_db.inc index a0720769..b858652e 100644 --- a/sales/includes/db/sales_invoice_db.inc +++ b/sales/includes/db/sales_invoice_db.inc @@ -193,21 +193,22 @@ function write_sales_invoice(&$invoice) if ($invoice->payment_terms['cash_sale'] && $invoice->pos['pos_account']) { $amount = $items_total + $items_added_tax + $invoice->freight_cost + $freight_added_tax; - - // to use debtors.pmt_discount on cash sale: - // extend invoice entry page with final amount after discount - // and change line below. - $discount = 0; // $invoice->cash_discount*$amount; - $pmtno = write_customer_payment(0, $invoice->customer_id, - $invoice->Branch, $invoice->pos['pos_account'], $date_, - $Refs->get_next(ST_CUSTPAYMENT, null, array('customer' => $invoice->customer_id, - 'branch' => $invoice->Branch, 'date' => $date_)), - $amount-$discount, $discount, - $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); + if ($amount != 0) { + // to use debtors.pmt_discount on cash sale: + // extend invoice entry page with final amount after discount + // and change line below. + $discount = 0; // $invoice->cash_discount*$amount; + $pmtno = write_customer_payment(0, $invoice->customer_id, + $invoice->Branch, $invoice->pos['pos_account'], $date_, + $Refs->get_next(ST_CUSTPAYMENT, null, array('customer' => $invoice->customer_id, + 'branch' => $invoice->Branch, 'date' => $date_)), + $amount-$discount, $discount, + $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, $invoice->customer_id); -- 2.30.2