From c38740fcd942a655ef30002bc46609c3d95294cf Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Wed, 19 Aug 2020 20:19:13 +0800 Subject: [PATCH] [report-utilities] more dump data functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: Comm Type n Split 5dd1c0a9: 05/11/19 Amt<$200.00> $200.00 Desc Memo n Split f9cb052f: 05/11/19 Amt<$20.00> $20.00 Desc Memo n Split daafc64b: 05/11/19 Amt<$69.00> $69.00 Desc Memo n Split 5e6af9fe: 14/11/19 Amt<$86.00> $86.00 Desc Memo n Split 6d636ea2: 14/11/19 Amt<$46.00> $46.00 Desc n Split e618644b: 14/12/19 Amt<-$100.00> -$100.00 Desc n Split 8be19fbd: 25/12/19 Amt<-$46.00> -$46.00 Desc Memo n Split ee4fe250: 01/04/20 Amt<$32.00> $32.00 Desc n Split 2cb02dac: 09/05/20 Amt<-$307.00> -$307.00 Balance: $0.00 Cleared: $0.00 Reconciled: $0.00 Account 6f39f557: Comm Type n Split 13916652: 09/05/20 Amt<$307.00> $307.00 Balance: $307.00 Cleared: $0.00 Reconciled: $0.00 Account fa6507e1: Comm Type 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 n Split d12f74b2: 12/07/19 Acc Amt<£120.00> £120.00 Desc Memo n Split 3880e99c: 12/07/19 Acc Amt<-£20.00> -£20.00 Desc Memo n Split 6bd9c7e4: 12/07/19 Acc Amt<-£100.00> -£100.00 Desc Memo Trans 60344bab: 09/10/19 Curr GBP Desc n Split aaca8ee0: 09/10/19 Acc Amt<£225.00> £225.00 Desc Memo n Split ee49bde8: 09/10/19 Acc Amt<-£20.00> -£20.00 Desc Memo n Split e989e863: 09/10/19 Acc Amt<-£5.00> -£5.00 Desc Memo n Split 91d6cadd: 09/10/19 Acc Amt<-£200.00> -£200.00 Desc Memo ~a~a~a\n" + (format #t "~a Split ~a: ~a~a Amt<~a> Val<~a> ~a~a~a\n" (xaccSplitGetReconcile s) (string-take (gncSplitGetGUID s) 8) (qof-print-date (xaccTransGetDate txn)) @@ -1220,10 +1220,12 @@ query instead.") (xaccTransGetCurrency txn) (xaccSplitGetValue s))) (maybe-str 'Desc (xaccTransGetDescription txn)) + (maybe-str 'Action (xaccSplitGetAction s)) (maybe-str 'Memo (xaccSplitGetMemo s)))) (define-public (gnc:dump-all-transactions) (define query (qof-query-create-for-splits)) + (define (split-has-no-account? split) (null? (xaccSplitGetAccount split))) (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) '() '()) @@ -1232,6 +1234,7 @@ query instead.") (newline) (match splits (() (qof-query-destroy query)) + (((? split-has-no-account?) . rest) (lp rest)) ((split . rest) (let ((trans (xaccSplitGetParent split))) (format #t " Trans ~a: ~a Curr ~a ~a~a\n"