mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Bug 797521 - Receivable Aging (beta): omit duplicate invoices
924fee2f3
redux, unfortunately gncInvoiceGetGUID isn't actually
available from scheme so we use the O(N^2) accumulator instead.
This commit is contained in:
parent
924fee2f3e
commit
5e7c295471
@ -345,16 +345,12 @@
|
||||
(gnc:make-gnc-monetary tfr-curr tfr-amt)))))
|
||||
result)))))))))))
|
||||
|
||||
(define (invoice<? a b)
|
||||
(string<? (gncInvoiceGetGUID a) (gncInvoiceGetGUID b)))
|
||||
|
||||
(define (payment-txn->overpayment-and-invoices txn)
|
||||
(let lp ((splits (xaccTransGetAPARAcctSplitList txn #f))
|
||||
(overpayment 0)
|
||||
(invoices '()))
|
||||
(match splits
|
||||
(() (cons (AP-negate overpayment)
|
||||
(sort-and-delete-duplicates invoices invoice<? equal?)))
|
||||
(() (cons (AP-negate overpayment) invoices))
|
||||
((split . rest)
|
||||
(let ((invoice (gncInvoiceGetInvoiceFromLot (xaccSplitGetLot split))))
|
||||
(if (null? invoice)
|
||||
@ -363,7 +359,9 @@
|
||||
invoices)
|
||||
(lp rest
|
||||
overpayment
|
||||
(cons invoice invoices))))))))
|
||||
(if (member invoice invoices)
|
||||
invoices
|
||||
(cons invoice invoices)))))))))
|
||||
|
||||
(define (make-payment->invoices-list txn)
|
||||
(list
|
||||
|
Loading…
Reference in New Issue
Block a user