]>
Dogcows Code - chaz/homebank/blob - src/hb-transaction.h
1 /* HomeBank -- Free, easy, personal accounting for everyone.
2 * Copyright (C) 1995-2014 Maxime DOYEN
4 * This file is part of HomeBank.
6 * HomeBank is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * HomeBank is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #ifndef __HB_TRANSACTION_H__
21 #define __HB_TRANSACTION_H__
23 #include "hb-archive.h"
25 #define TXN_MAX_SPLIT 10
27 typedef struct _split Split
;
28 typedef struct _transaction Transaction
;
53 guint32 kxfer
; //internal xfer key
56 Split
*splits
[TXN_MAX_SPLIT
+1];
59 GList
*same
; //used for import todo: change this
63 #define OF_VALID (1<<0)
64 #define OF_INCOME (1<<1)
65 #define OF_AUTO (1<<2) //tmp flag scheduled
66 #define OF_ADDED (1<<3) //tmp flag
67 #define OF_CHANGED (1<<4) //tmp flag
68 #define OF_REMIND (1<<5)
69 #define OF_CHEQ2 (1<<6)
70 #define OF_LIMIT (1<<7) //scheduled
71 #define OF_SPLIT (1<<8)
74 Transaction
*da_transaction_malloc(void);
75 Transaction
*da_transaction_copy(Transaction
*src_txn
, Transaction
*dst_txn
);
76 Transaction
*da_transaction_init_from_template(Transaction
*txn
, Archive
*arc
);
77 Transaction
*da_transaction_clone(Transaction
*src_item
);
78 void da_transaction_clean(Transaction
*item
);
79 void da_transaction_free(Transaction
*item
);
81 GList
*da_transaction_new(void);
82 void da_transaction_destroy(GList
*list
);
84 GList
*da_transaction_sort(GList
*list
);
85 gboolean
da_transaction_prepend(Transaction
*item
);
86 gboolean
da_transaction_insert_sorted(Transaction
*item
);
88 guint32
da_transaction_get_max_kxfer(void);
91 ** transaction edit type
96 TRANSACTION_EDIT_INHERIT
,
97 TRANSACTION_EDIT_MODIFY
100 void da_transaction_splits_append(Transaction
*txn
, Split
*split
);
101 void da_transaction_splits_free(Transaction
*txn
);
102 guint
da_transaction_splits_count(Transaction
*txn
);
103 void da_transaction_splits_clone(Transaction
*stxn
, Transaction
*dtxn
);
105 Split
*da_split_new(guint32 kcat
, gdouble amount
, gchar
*memo
);
106 guint
transaction_splits_parse(Transaction
*ope
, gchar
*cats
, gchar
*amounts
, gchar
*memos
);
107 guint
transaction_splits_tostring(Transaction
*ope
, gchar
**cats
, gchar
**amounts
, gchar
**memos
);
109 void transaction_add_treeview(Transaction
*ope
, GtkWidget
*treeview
, guint32 accnum
);
110 void transaction_add(Transaction
*ope
, GtkWidget
*treeview
, guint32 accnum
);
112 Transaction
*transaction_strong_get_child_transfer(Transaction
*src
);
113 GList
*transaction_match_get_child_transfer(Transaction
*src
);
114 Transaction
*ui_dialog_transaction_xfer_select_child(GList
*matchlist
);
115 void transaction_xfer_search_or_add_child(Transaction
*ope
, GtkWidget
*treeview
);
116 void transaction_xfer_create_child(Transaction
*ope
, GtkWidget
*treeview
);
117 void transaction_xfer_change_to_child(Transaction
*ope
, Transaction
*child
);
118 void transaction_xfer_sync_child(Transaction
*ope
, Transaction
*child
);
119 void transaction_xfer_delete_child(Transaction
*src
);
120 Transaction
*transaction_old_get_child_transfer(Transaction
*src
);
122 guint
transaction_tags_count(Transaction
*ope
);
123 guint
transaction_tags_parse(Transaction
*ope
, const gchar
*tagstring
);
124 gchar
*transaction_tags_tostring(Transaction
*ope
);
125 gint
transaction_auto_assign(GList
*ope_list
, guint32 key
);
127 void da_transaction_consistency(Transaction
*item
);
This page took 0.03264 seconds and 4 git commands to generate.