GnuCash  2.6.99
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
simple_test.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 ## @file
3 # @brief Creates a basic set of accounts and a couple of transactions
4 # @ingroup python_bindings_examples
5 
6 from gnucash import Session, Account, Transaction, Split, GncNumeric
7 
8 FILE_1 = "/tmp/example.gnucash"
9 
10 session = Session("xml://%s" % FILE_1, is_new=True)
11 
12 book = session.book
13 root_acct = Account(book)
14 expenses_acct = Account(book)
15 savings_acct = Account(book)
16 opening_acct = Account(book)
17 trans1 = Transaction(book)
18 trans1.BeginEdit()
19 trans2 = Transaction(book)
20 trans2.BeginEdit()
21 
22 split1 = Split(book)
23 split3 = Split(book)
24 comm_table = book.get_table()
25 cad = comm_table.lookup("CURRENCY", "CAD")
26 
27 num1 = GncNumeric(4, 1)
28 num2 = GncNumeric(100, 1)
29 
30 #Set new root account
31 book.set_root_account(root_acct)
32 
33 #Set up root account and add sub-accounts
34 root_acct.SetName("Root")
35 root_acct.SetType(13) #ACCT_TYPE_ROOT = 13
36 root_acct.append_child(expenses_acct)
37 root_acct.append_child(savings_acct)
38 root_acct.append_child(opening_acct)
39 
40 #Set up Expenses account
41 expenses_acct.SetCommodity(cad)
42 expenses_acct.SetName("Expenses")
43 expenses_acct.SetType(9) #ACCT_TYPE_EXPENSE = 9
44 
45 #Set up Savings account
46 savings_acct.SetCommodity(cad)
47 savings_acct.SetName("Savings")
48 savings_acct.SetType(0) #ACCT_TYPE_BANK = 0
49 
50 #Set up Opening Balance account
51 opening_acct.SetCommodity(cad)
52 opening_acct.SetName("Opening Balance")
53 opening_acct.SetType(10) #ACCT_TYPE_EQUITY = 10
54 
55 split1.SetValue(num1)
56 split1.SetAccount(expenses_acct)
57 split1.SetParent(trans1)
58 
59 split3.SetValue(num2)
60 split3.SetAccount(savings_acct)
61 split3.SetParent(trans2)
62 
63 trans1.SetCurrency(cad)
64 trans1.SetDescription("Groceries")
65 
66 trans2.SetCurrency(cad)
67 trans2.SetDescription("Opening Savings Balance")
68 
69 split2 = Split(book)
70 split2.SetAccount(savings_acct)
71 split2.SetParent(trans1)
72 split2.SetValue(num1.neg())
73 
74 split4 = Split(book)
75 split4.SetAccount(opening_acct)
76 split4.SetParent(trans2)
77 split4.SetValue(num2.neg())
78 
79 
80 trans1.CommitEdit()
81 trans2.CommitEdit()
82 
83 session.save()
84 session.end()
85 session.destroy()
Definition: SplitP.h:71