From 93f490466e49839790a5ca2b3469bee1704175a5 Mon Sep 17 00:00:00 2001 From: christopherlam Date: Fri, 10 Feb 2017 15:00:50 +0800 Subject: Update multicolumn.py --- reports/multicolumn.py | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/reports/multicolumn.py b/reports/multicolumn.py index a7e7f42..a169d66 100644 --- a/reports/multicolumn.py +++ b/reports/multicolumn.py @@ -11,40 +11,34 @@ from gnucashxml import from_filename def multicolumn(book, account, date1, date2): mybook = from_filename(book) account = mybook.find_account(account) - if account is None: raise Exception("Cannot find account "+account) - splits = [j for j in account.splits if date1 <= j.transaction.date.date() <= date2] - otheraccountlist = [] for split in splits: # For every transaction in this account for multisplits in split.transaction.splits: # Round up its list of accounts if multisplits.account not in otheraccountlist: # Compare with list of known accounts otheraccountlist.append(multisplits.account) # Add it to list if not known - print("Date",end=",") + print("Date", end=",") for i in otheraccountlist: print(i.fullname(), end=",") print('Description') totals = {} for split in sorted(splits): - print(split.transaction.date.date(),end=",") + print(split.transaction.date.date(), end=",") for j in otheraccountlist: value = sum([i.value for i in split.transaction.splits if j==i.account]) totals[j] = totals.setdefault(j, 0) + value - print(value,end=",") - - print(split.transaction.description) - - print("",end=",") + print(value, end=",") + print(split.transaction.description) + print("", end=",") for i in otheraccountlist: print(totals[i], end=",") print("Total") if __name__ == "__main__": - date1=datetime.date(2000,1,1) - date2=datetime.date(2017,1,1) - + date1=datetime.date(2000, 1, 1) + date2=datetime.date(2017, 1, 1) multicolumn("test.gnucash", "Salary", date1, date2) -- cgit v1.2.3