6 from gnucash
import Session, Account, Transaction, Split, GncNumeric
8 FILE_1 =
"/tmp/example.gnucash"
10 session = Session(
"xml://%s" % FILE_1, is_new=
True)
24 comm_table = book.get_table()
25 cad = comm_table.lookup(
"CURRENCY",
"CAD")
27 num1 = GncNumeric(4, 1)
28 num2 = GncNumeric(100, 1)
31 book.set_root_account(root_acct)
34 root_acct.SetName(
"Root")
36 root_acct.append_child(expenses_acct)
37 root_acct.append_child(savings_acct)
38 root_acct.append_child(opening_acct)
41 expenses_acct.SetCommodity(cad)
42 expenses_acct.SetName(
"Expenses")
43 expenses_acct.SetType(9)
46 savings_acct.SetCommodity(cad)
47 savings_acct.SetName(
"Savings")
48 savings_acct.SetType(0)
51 opening_acct.SetCommodity(cad)
52 opening_acct.SetName(
"Opening Balance")
53 opening_acct.SetType(10)
56 split1.SetAccount(expenses_acct)
57 split1.SetParent(trans1)
60 split3.SetAccount(savings_acct)
61 split3.SetParent(trans2)
63 trans1.SetCurrency(cad)
64 trans1.SetDescription(
"Groceries")
66 trans2.SetCurrency(cad)
67 trans2.SetDescription(
"Opening Savings Balance")
70 split2.SetAccount(savings_acct)
71 split2.SetParent(trans1)
72 split2.SetValue(num1.neg())
75 split4.SetAccount(opening_acct)
76 split4.SetParent(trans2)
77 split4.SetValue(num2.neg())