mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
[report-utilities] more dump data functions
Two API to dump splits in whole book: * gnc:dump-book - splits grouped by account * gnc:dump-all-transactions - splits grouped by transaction * gnc:dump-split - dumps single split Example output -- note (gnc:dump-book) dumps each account followed by its splits, then account balance. (gnc:dump-all-transactions) dumps all transactions in date order, each followed by its splits. (gnc:dump-book) Account 8e56ef54: <Expense> Comm<USD> Type<Expense> n Split 5dd1c0a9: 05/11/19 Amt<$200.00> $200.00 Desc<vend1> Memo<AP> n Split f9cb052f: 05/11/19 Amt<$20.00> $20.00 Desc<emp1> Memo<vouch1> n Split daafc64b: 05/11/19 Amt<$69.00> $69.00 Desc<vend1> Memo<job-bill> n Split 5e6af9fe: 14/11/19 Amt<$86.00> $86.00 Desc<emp1> Memo<emp-voucher> n Split 6d636ea2: 14/11/19 Amt<$46.00> $46.00 Desc<vend1> n Split e618644b: 14/12/19 Amt<-$100.00> -$100.00 Desc<Vend-USD> n Split 8be19fbd: 25/12/19 Amt<-$46.00> -$46.00 Desc<Vend-USD> Memo<CN$100-desc> n Split ee4fe250: 01/04/20 Amt<$32.00> $32.00 Desc<Cell phone> n Split 2cb02dac: 09/05/20 Amt<-$307.00> -$307.00 Balance: $0.00 Cleared: $0.00 Reconciled: $0.00 Account 6f39f557: <Closing> Comm<USD> Type<Equity> n Split 13916652: 09/05/20 Amt<$307.00> $307.00 Balance: $307.00 Cleared: $0.00 Reconciled: $0.00 Account fa6507e1: <Closing:GBP> Comm<GBP> Type<Equity> n Split 34ce3c03: 09/05/20 Amt<-£1,293.00> -£1,293.00 Balance: -£1,293.00 Cleared: £0.00 Reconciled: £0.00 (gnc:dump-all-transactions) Trans cfbbc2a4: 12/07/19 Curr GBP Desc<Customer-GBP> n Split d12f74b2: 12/07/19 Acc<AR-GBP> Amt<£120.00> £120.00 Desc<Customer-GBP> Memo<due 91+> n Split 3880e99c: 12/07/19 Acc<Standard Sales> Amt<-£20.00> -£20.00 Desc<Customer-GBP> Memo<due 91+> n Split 6bd9c7e4: 12/07/19 Acc<Income-GBP> Amt<-£100.00> -£100.00 Desc<Customer-GBP> Memo<due 91+> Trans 60344bab: 09/10/19 Curr GBP Desc<Customer-GBP> n Split aaca8ee0: 09/10/19 Acc<AR-GBP> Amt<£225.00> £225.00 Desc<Customer-GBP> Memo<due 2-3 months ago> n Split ee49bde8: 09/10/19 Acc<Standard Sales> Amt<-£20.00> -£20.00 Desc<Customer-GBP> Memo<due 2-3 months ago> n Split e989e863: 09/10/19 Acc<Reduced Sales> Amt<-£5.00> -£5.00 Desc<Customer-GBP> Memo<due 2-3 months ago> n Split 91d6cadd: 09/10/19 Acc<Income-GBP> Amt<-£200.00> -£200.00 Desc<Customer-GBP> Memo<due 2-3 months ago
This commit is contained in:
parent
c210ceb3cb
commit
3b312e7548
@ -17,6 +17,7 @@
|
||||
;; 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
|
||||
;; Boston, MA 02110-1301, USA gnu@gnu.org
|
||||
|
||||
(use-modules (srfi srfi-26))
|
||||
(use-modules (srfi srfi-13))
|
||||
(use-modules (ice-9 format))
|
||||
(use-modules (ice-9 match))
|
||||
@ -1089,36 +1090,63 @@
|
||||
(newline)
|
||||
(last args))))
|
||||
|
||||
(define (maybe-str name str)
|
||||
(match str
|
||||
((or "" #f) "")
|
||||
(_ (format #f " ~a<~a>" name str))))
|
||||
|
||||
(define-public (gnc:dump-split s show-acc?)
|
||||
(define txn (xaccSplitGetParent s))
|
||||
(format #t "~a Split ~a: ~a~a Amt<~a> ~a~a~a\n"
|
||||
(xaccSplitGetReconcile s)
|
||||
(string-take (gncSplitGetGUID s) 8)
|
||||
(qof-print-date (xaccTransGetDate txn))
|
||||
(maybe-str 'Acc (and show-acc? (xaccAccountGetName (xaccSplitGetAccount s))))
|
||||
(gnc:monetary->string
|
||||
(gnc:make-gnc-monetary
|
||||
(xaccAccountGetCommodity (xaccSplitGetAccount s))
|
||||
(xaccSplitGetAmount s)))
|
||||
(gnc:monetary->string
|
||||
(gnc:make-gnc-monetary
|
||||
(xaccTransGetCurrency txn)
|
||||
(xaccSplitGetValue s)))
|
||||
(maybe-str 'Desc (xaccTransGetDescription txn))
|
||||
(maybe-str 'Memo (xaccSplitGetMemo s))))
|
||||
|
||||
(define-public (gnc:dump-all-transactions)
|
||||
(define query (qof-query-create-for-splits))
|
||||
(display "\n(gnc:dump-all-transactions)\n")
|
||||
(qof-query-set-book query (gnc-get-current-book))
|
||||
(qof-query-set-sort-order query (list SPLIT-TRANS TRANS-DATE-POSTED) '() '())
|
||||
(qof-query-set-sort-increasing query #t #t #t)
|
||||
(let lp ((splits (xaccQueryGetSplitsUniqueTrans query)))
|
||||
(newline)
|
||||
(match splits
|
||||
(() (qof-query-destroy query))
|
||||
((split . rest)
|
||||
(let ((trans (xaccSplitGetParent split)))
|
||||
(format #t " Trans ~a: ~a Curr ~a ~a~a\n"
|
||||
(string-take (gncTransGetGUID trans) 8)
|
||||
(qof-print-date (xaccTransGetDate trans))
|
||||
(gnc-commodity-get-mnemonic (xaccTransGetCurrency trans))
|
||||
(maybe-str 'Desc (xaccTransGetDescription trans))
|
||||
(maybe-str 'Notes (xaccTransGetNotes trans)))
|
||||
(for-each (cut gnc:dump-split <> #t) (xaccTransGetSplitList trans))
|
||||
(lp rest))))))
|
||||
|
||||
;; utility function for testing. dumps the whole book contents to
|
||||
;; console.
|
||||
(define (gnc:dump-book)
|
||||
(display "\n(gnc:dump-book)\n")
|
||||
(for-each
|
||||
(lambda (acc)
|
||||
(format #t "\nAccount: <~a> Comm<~a> Type<~a>\n"
|
||||
(format #t "\nAccount ~a: ~a Comm<~a> Type<~a>\n"
|
||||
(string-take (gncAccountGetGUID acc) 8)
|
||||
(gnc-account-get-full-name acc)
|
||||
(gnc-commodity-get-mnemonic
|
||||
(xaccAccountGetCommodity acc))
|
||||
(xaccAccountGetTypeStr
|
||||
(xaccAccountGetType acc)))
|
||||
(for-each
|
||||
(lambda (s)
|
||||
(let ((txn (xaccSplitGetParent s)))
|
||||
(format #t "~a Split: ~a Amt<~a> Val<~a> Desc<~a> Memo<~a>\n"
|
||||
(xaccSplitGetReconcile s)
|
||||
(qof-print-date (xaccTransGetDate txn))
|
||||
(gnc:monetary->string
|
||||
(gnc:make-gnc-monetary
|
||||
(xaccAccountGetCommodity acc)
|
||||
(xaccSplitGetAmount s)))
|
||||
(gnc:monetary->string
|
||||
(gnc:make-gnc-monetary
|
||||
(xaccTransGetCurrency txn)
|
||||
(xaccSplitGetValue s)))
|
||||
(xaccTransGetDescription txn)
|
||||
(xaccSplitGetMemo s))))
|
||||
(xaccAccountGetSplitList acc))
|
||||
(format #t "Balance: ~a Cleared: ~a Reconciled: ~a\n"
|
||||
(gnc-commodity-get-mnemonic (xaccAccountGetCommodity acc))
|
||||
(xaccAccountGetTypeStr (xaccAccountGetType acc)))
|
||||
(for-each (cut gnc:dump-split <> #f) (xaccAccountGetSplitList acc))
|
||||
(format #t " Balance: ~a Cleared: ~a Reconciled: ~a\n"
|
||||
(gnc:monetary->string
|
||||
(gnc:make-gnc-monetary
|
||||
(xaccAccountGetCommodity acc)
|
||||
|
Loading…
Reference in New Issue
Block a user