|
GnuCash 2.4.99
|
00001 #!/usr/bin/env python 00002 ## @file 00003 # @brief Creates a basic set of accounts and a couple of transactions 00004 # @ingroup python_bindings_examples 00005 00006 from gnucash import Session, Account, Transaction, Split, GncNumeric 00007 00008 FILE_1 = "/tmp/example.gnucash" 00009 00010 session = Session("xml://%s" % FILE_1, is_new=True) 00011 00012 book = session.book 00013 root_acct = Account(book) 00014 expenses_acct = Account(book) 00015 savings_acct = Account(book) 00016 opening_acct = Account(book) 00017 trans1 = Transaction(book) 00018 trans1.BeginEdit() 00019 trans2 = Transaction(book) 00020 trans2.BeginEdit() 00021 00022 split1 = Split(book) 00023 split3 = Split(book) 00024 comm_table = book.get_table() 00025 cad = comm_table.lookup("CURRENCY", "CAD") 00026 00027 num1 = GncNumeric(4, 1) 00028 num2 = GncNumeric(100, 1) 00029 00030 #Set new root account 00031 book.set_root_account(root_acct) 00032 00033 #Set up root account and add sub-accounts 00034 root_acct.SetName("Root") 00035 root_acct.SetType(13) #ACCT_TYPE_ROOT = 13 00036 root_acct.append_child(expenses_acct) 00037 root_acct.append_child(savings_acct) 00038 root_acct.append_child(opening_acct) 00039 00040 #Set up Expenses account 00041 expenses_acct.SetCommodity(cad) 00042 expenses_acct.SetName("Expenses") 00043 expenses_acct.SetType(9) #ACCT_TYPE_EXPENSE = 9 00044 00045 #Set up Savings account 00046 savings_acct.SetCommodity(cad) 00047 savings_acct.SetName("Savings") 00048 savings_acct.SetType(0) #ACCT_TYPE_BANK = 0 00049 00050 #Set up Opening Balance account 00051 opening_acct.SetCommodity(cad) 00052 opening_acct.SetName("Opening Balance") 00053 opening_acct.SetType(10) #ACCT_TYPE_EQUITY = 10 00054 00055 split1.SetValue(num1) 00056 split1.SetAccount(expenses_acct) 00057 split1.SetParent(trans1) 00058 00059 split3.SetValue(num2) 00060 split3.SetAccount(savings_acct) 00061 split3.SetParent(trans2) 00062 00063 trans1.SetCurrency(cad) 00064 trans1.SetDescription("Groceries") 00065 00066 trans2.SetCurrency(cad) 00067 trans2.SetDescription("Opening Savings Balance") 00068 00069 split2 = Split(book) 00070 split2.SetAccount(savings_acct) 00071 split2.SetParent(trans1) 00072 split2.SetValue(num1.neg()) 00073 00074 split4 = Split(book) 00075 split4.SetAccount(opening_acct) 00076 split4.SetParent(trans2) 00077 split4.SetValue(num2.neg()) 00078 00079 00080 trans1.CommitEdit() 00081 trans2.CommitEdit() 00082 00083 session.save() 00084 session.end() 00085 session.destroy()
1.7.4