r18292 - gnucash/trunk/src/optional/python-bindings/example_scripts - Forgot to add new file (python patches)

Phil Longstaff plongstaff at code.gnucash.org
Fri Sep 4 20:33:37 EDT 2009


Author: plongstaff
Date: 2009-09-04 20:33:37 -0400 (Fri, 04 Sep 2009)
New Revision: 18292
Trac: http://svn.gnucash.org/trac/changeset/18292

Added:
   gnucash/trunk/src/optional/python-bindings/example_scripts/change_tax_code.py
Log:
Forgot to add new file (python patches)


Added: gnucash/trunk/src/optional/python-bindings/example_scripts/change_tax_code.py
===================================================================
--- gnucash/trunk/src/optional/python-bindings/example_scripts/change_tax_code.py	                        (rev 0)
+++ gnucash/trunk/src/optional/python-bindings/example_scripts/change_tax_code.py	2009-09-05 00:33:37 UTC (rev 18292)
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+
+from gnucash import Session, Account
+
+# choose the account code to select
+TARGET_ACCOUNT_CODE = '1234'
+
+def mark_account_with_code_as_tax_related(account, target_code):
+    """Looks at account to see if it has the target_account_code, if so
+    set the account tax related flag to True and return True.
+    If not, recursively tries to do the same to all children accounts
+    of account.
+    Returns False when recursion fails to find it.
+    """
+    if account.GetCode() == target_code:
+        account.SetTaxRelated(True)
+        return True
+    else:
+        for child in account.get_children():
+            child = Account(instance=child)
+            if mark_account_with_code_as_tax_related(child, target_code):
+                return True
+        return False
+            
+# Change this path to your own
+gnucash_session = Session("xml:/home/mark/python-bindings-help/test.xac")
+
+mark_account_with_code_as_tax_related(
+    gnucash_session.book.get_root_account(),
+    TARGET_ACCOUNT_CODE)
+
+gnucash_session.save()
+gnucash_session.end()



More information about the gnucash-changes mailing list