Virgil Dupras avatar Virgil Dupras committed a387397

[#353 state:fixed] Include all entries in QIF exports.

Previously, a transaction doing a transfer between asset/liability account would
only figure once in QIF exports but it would confuse some (lesser) financial
apps at import time.

Comments (0)

Files changed (3)


         return '%1.2f' % amount.value if amount else '0.00'
     accounts = [a for a in accounts if a.is_balance_sheet_account()]
-    txns_seen = set()
     lines = []
     for account in accounts:
         qif_account_type = 'Oth L' if account.type == AccountType.Liability else 'Bank'
         if daterange is not None:
             entries = [e for e in entries if in daterange]
         for entry in entries:
-            if entry.transaction in txns_seen:
-                continue
-            txns_seen.add(entry.transaction)
             lines.append('D%s' % format_date(, 'MM/dd/yyyy'))
             lines.append('T%s' % format_amount_for_qif(entry.amount))
             if entry.description:


     eq_(len(loader.transactions), 1) # the transactions hasn't been doubled.
 def test_export_to_qif(tmpdir):
-    # When there's a transfer between 2 assets, only put an entry in one of the accounts
+    # When there's a transfer between 2 assets, export all entries (otherwise some apps will import
+    # the QIF wrongly)
     app = TestApp()


Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.