summaryrefslogtreecommitdiff
authoralwin <alwin>2004-02-23 00:11:55 (UTC)
committer alwin <alwin>2004-02-23 00:11:55 (UTC)
commitfdf3a6d59f3725bebb923a774d04fb51fb1b0d68 (patch) (unidiff)
treefffc5daec8afe5c339c3fe15988a30b7fe6aca21
parentc1cf5f3efde5a50656a196795fe297ca58ac4334 (diff)
downloadopie-fdf3a6d59f3725bebb923a774d04fb51fb1b0d68.zip
opie-fdf3a6d59f3725bebb923a774d04fb51fb1b0d68.tar.gz
opie-fdf3a6d59f3725bebb923a774d04fb51fb1b0d68.tar.bz2
remove depes to libstdc++
Diffstat (more/less context) (ignore whitespace changes)
-rwxr-xr-xnoncore/apps/qashmoney/account.cpp1
-rwxr-xr-xnoncore/apps/qashmoney/budget.cpp1
-rwxr-xr-xnoncore/apps/qashmoney/qashmoney.cpp1
-rwxr-xr-xnoncore/apps/qashmoney/qashmoney.pro2
-rwxr-xr-xnoncore/apps/qashmoney/transaction.cpp1
-rwxr-xr-xnoncore/apps/qashmoney/transactiondisplay.cpp1
-rwxr-xr-xnoncore/apps/qashmoney/transfer.cpp1
7 files changed, 1 insertions, 7 deletions
diff --git a/noncore/apps/qashmoney/account.cpp b/noncore/apps/qashmoney/account.cpp
index 28f9ba2..181be23 100755
--- a/noncore/apps/qashmoney/account.cpp
+++ b/noncore/apps/qashmoney/account.cpp
@@ -1,200 +1,199 @@
1#include "account.h" 1#include "account.h"
2#include "transaction.h" 2#include "transaction.h"
3#include "transfer.h" 3#include "transfer.h"
4#include "preferences.h" 4#include "preferences.h"
5 5
6#include <qpixmap.h> 6#include <qpixmap.h>
7#include <stdlib.h> 7#include <stdlib.h>
8#include <iostream.h>
9 8
10extern Preferences *preferences; 9extern Preferences *preferences;
11 10
12Account::Account () 11Account::Account ()
13 { 12 {
14 adb = sqlite_open ( "qmaccounts.db", 0, NULL ); 13 adb = sqlite_open ( "qmaccounts.db", 0, NULL );
15 } 14 }
16 15
17Account::~Account () 16Account::~Account ()
18 { 17 {
19 sqlite_close ( adb ); 18 sqlite_close ( adb );
20 } 19 }
21 20
22void Account::addAccount ( QString name, int parentid, float balance, int type, QString description, float creditlimit, 21void Account::addAccount ( QString name, int parentid, float balance, int type, QString description, float creditlimit,
23 int statementyear, int statementmonth, int statementday, float statementbalance, const char *currency ) 22 int statementyear, int statementmonth, int statementday, float statementbalance, const char *currency )
24 { 23 {
25 sqlite_exec_printf ( adb, "insert into accounts2 values ( '%q', %i, %.2f, %i, '%q', %.2f, %i, %i, %i, %.2f, '%q', 0, 0, 0, 0, 0, NULL );", 0, 0, 0, 24 sqlite_exec_printf ( adb, "insert into accounts2 values ( '%q', %i, %.2f, %i, '%q', %.2f, %i, %i, %i, %.2f, '%q', 0, 0, 0, 0, 0, NULL );", 0, 0, 0,
26 (const char *) name, parentid, balance, type, (const char *) description, creditlimit, statementyear, statementmonth, statementday, statementbalance, currency ); 25 (const char *) name, parentid, balance, type, (const char *) description, creditlimit, statementyear, statementmonth, statementday, statementbalance, currency );
27 } 26 }
28 27
29void Account::updateAccount ( QString name, QString description, QString currencycode, int accountid ) 28void Account::updateAccount ( QString name, QString description, QString currencycode, int accountid )
30 { 29 {
31 sqlite_exec_printf ( adb, "update accounts2 set name = '%q', description = '%q', currency = '%q' where accountid = %i;", 0, 0, 0, ( const char * ) name, ( const char * ) description, ( const char * ) currencycode, accountid ); 30 sqlite_exec_printf ( adb, "update accounts2 set name = '%q', description = '%q', currency = '%q' where accountid = %i;", 0, 0, 0, ( const char * ) name, ( const char * ) description, ( const char * ) currencycode, accountid );
32 } 31 }
33 32
34void Account::deleteAccount ( int accountid ) 33void Account::deleteAccount ( int accountid )
35 { 34 {
36 sqlite_exec_printf ( adb, "delete from accounts2 where accountid = %i;", 0, 0, 0, accountid ); 35 sqlite_exec_printf ( adb, "delete from accounts2 where accountid = %i;", 0, 0, 0, accountid );
37 } 36 }
38 37
39void Account::setAccountExpanded ( int expanded, int accountid ) 38void Account::setAccountExpanded ( int expanded, int accountid )
40 { 39 {
41 sqlite_exec_printf ( adb, "update accounts2 set r1 = %i where accountid = %i;", 0, 0, 0, expanded, accountid ); 40 sqlite_exec_printf ( adb, "update accounts2 set r1 = %i where accountid = %i;", 0, 0, 0, expanded, accountid );
42 } 41 }
43 42
44int Account::getAccountExpanded ( int id ) 43int Account::getAccountExpanded ( int id )
45 { 44 {
46 char **results; 45 char **results;
47 sqlite_get_table_printf ( adb, "select r1 from accounts2 where accountid = %i;", &results, 0, 0, 0, id ); 46 sqlite_get_table_printf ( adb, "select r1 from accounts2 where accountid = %i;", &results, 0, 0, 0, id );
48 if ( strlen ( results [1] ) == 0 ) 47 if ( strlen ( results [1] ) == 0 )
49 return 0; 48 return 0;
50 else 49 else
51 return atoi ( results [ 1 ] ); 50 return atoi ( results [ 1 ] );
52 } 51 }
53 52
54int Account::getNumberOfAccounts () 53int Account::getNumberOfAccounts ()
55 { 54 {
56 char **results; 55 char **results;
57 sqlite_get_table ( adb, "select count() from accounts2;", &results, NULL, NULL, NULL ); 56 sqlite_get_table ( adb, "select count() from accounts2;", &results, NULL, NULL, NULL );
58 return atoi ( results [ 1 ] ); 57 return atoi ( results [ 1 ] );
59 } 58 }
60 59
61int Account::getNumberOfChildAccounts ( int id ) 60int Account::getNumberOfChildAccounts ( int id )
62 { 61 {
63 char **results; 62 char **results;
64 sqlite_get_table_printf ( adb, "select count() from accounts2 where parent = %i;", &results, NULL, NULL, NULL, id ); 63 sqlite_get_table_printf ( adb, "select count() from accounts2 where parent = %i;", &results, NULL, NULL, NULL, id );
65 return atoi ( results [ 1 ] ); 64 return atoi ( results [ 1 ] );
66 } 65 }
67 66
68void Account::updateAccountBalance ( int accountid ) 67void Account::updateAccountBalance ( int accountid )
69 { 68 {
70 // Here, we'll get a balance for the transactions in an account 69 // Here, we'll get a balance for the transactions in an account
71 sqlite *tdb = sqlite_open ( "qmtransactions.db", 0, NULL ); 70 sqlite *tdb = sqlite_open ( "qmtransactions.db", 0, NULL );
72 int rows, columns; 71 int rows, columns;
73 char **results; 72 char **results;
74 sqlite_get_table_printf ( tdb, "select sum (amount) from transactions where accountid= %i;", &results, &rows, &columns, NULL, accountid ); 73 sqlite_get_table_printf ( tdb, "select sum (amount) from transactions where accountid= %i;", &results, &rows, &columns, NULL, accountid );
75 float transactionsbalance = strtod ( results [ 1 ], 0 ); 74 float transactionsbalance = strtod ( results [ 1 ], 0 );
76 sqlite_close ( tdb ); 75 sqlite_close ( tdb );
77 76
78 // next, we'll get a balance for all the transfers from the account 77 // next, we'll get a balance for all the transfers from the account
79 sqlite *trdb = sqlite_open ( "qmtransfers.db", 0, NULL ); 78 sqlite *trdb = sqlite_open ( "qmtransfers.db", 0, NULL );
80 rows = 0; 79 rows = 0;
81 columns = 0; 80 columns = 0;
82 char **results2; 81 char **results2;
83 sqlite_get_table_printf ( trdb, "select sum (amount) from transfers where fromaccount = %i;", &results2, &rows, &columns, NULL, accountid ); 82 sqlite_get_table_printf ( trdb, "select sum (amount) from transfers where fromaccount = %i;", &results2, &rows, &columns, NULL, accountid );
84 float fromtransfersbalance = ( strtod ( results2 [ 1 ], 0 ) * -1 ); 83 float fromtransfersbalance = ( strtod ( results2 [ 1 ], 0 ) * -1 );
85 84
86 // finally, we'll get a balance for all the transfers into the account 85 // finally, we'll get a balance for all the transfers into the account
87 rows = 0; 86 rows = 0;
88 columns= 0; 87 columns= 0;
89 char **results3; 88 char **results3;
90 sqlite_get_table_printf ( trdb, "select sum (amount) from transfers where toaccount = %i;", &results3, &rows, &columns, NULL, accountid ); 89 sqlite_get_table_printf ( trdb, "select sum (amount) from transfers where toaccount = %i;", &results3, &rows, &columns, NULL, accountid );
91 float totransfersbalance = strtod ( results3 [ 1 ], 0 ); 90 float totransfersbalance = strtod ( results3 [ 1 ], 0 );
92 91
93 sqlite_close ( trdb ); 92 sqlite_close ( trdb );
94 93
95 // calculate and update new balance 94 // calculate and update new balance
96 sqlite_exec_printf ( adb, "update accounts2 set balance = %.2f where accountid = %i;", 0, 0, 0, 95 sqlite_exec_printf ( adb, "update accounts2 set balance = %.2f where accountid = %i;", 0, 0, 0,
97 ( transactionsbalance + fromtransfersbalance + totransfersbalance + getStatementBalance ( accountid ) ), accountid ); 96 ( transactionsbalance + fromtransfersbalance + totransfersbalance + getStatementBalance ( accountid ) ), accountid );
98 } 97 }
99 98
100void Account::changeParentAccountBalance ( int parentid ) 99void Account::changeParentAccountBalance ( int parentid )
101 { 100 {
102 // select all child balances that share the parent of the current child account 101 // select all child balances that share the parent of the current child account
103 char **results; 102 char **results;
104 int rows; 103 int rows;
105 sqlite_get_table_printf ( adb, "select sum ( balance ) from accounts2 where parent = %i;", &results, &rows, NULL, NULL, parentid ); 104 sqlite_get_table_printf ( adb, "select sum ( balance ) from accounts2 where parent = %i;", &results, &rows, NULL, NULL, parentid );
106 sqlite_exec_printf ( adb, "update accounts2 set balance = %.2f where accountid = %i;", 0, 0, 0, strtod ( results[ 1 ], NULL ), parentid ); 105 sqlite_exec_printf ( adb, "update accounts2 set balance = %.2f where accountid = %i;", 0, 0, 0, strtod ( results[ 1 ], NULL ), parentid );
107 } 106 }
108 107
109int Account::getParentAccountID ( int id ) 108int Account::getParentAccountID ( int id )
110 { 109 {
111 char **results; 110 char **results;
112 sqlite_get_table_printf ( adb, "select parent from accounts2 where accountid = %i;", &results, NULL, NULL, NULL, id ); 111 sqlite_get_table_printf ( adb, "select parent from accounts2 where accountid = %i;", &results, NULL, NULL, NULL, id );
113 return atoi ( results [ 1 ] ); 112 return atoi ( results [ 1 ] );
114 } 113 }
115 114
116int Account::getParentAccountID ( QString accountname ) 115int Account::getParentAccountID ( QString accountname )
117 { 116 {
118 char **results; 117 char **results;
119 sqlite_get_table_printf ( adb, "select parent from accounts2 where name= '%q';", &results, NULL, NULL, NULL, ( const char * ) accountname ); 118 sqlite_get_table_printf ( adb, "select parent from accounts2 where name= '%q';", &results, NULL, NULL, NULL, ( const char * ) accountname );
120 return atoi ( results [ 1 ] ); 119 return atoi ( results [ 1 ] );
121 } 120 }
122 121
123void Account::displayAccounts ( QListView *listview ) 122void Account::displayAccounts ( QListView *listview )
124 { 123 {
125 char **results; 124 char **results;
126 int rows, columns; 125 int rows, columns;
127 sqlite_get_table ( adb, "select name, parent, balance, accountid, currency from accounts2;", &results, &rows, &columns, 0 ); 126 sqlite_get_table ( adb, "select name, parent, balance, accountid, currency from accounts2;", &results, &rows, &columns, 0 );
128 127
129 // determine if we are using currency support 128 // determine if we are using currency support
130 int currency = preferences->getPreference ( 4 ); 129 int currency = preferences->getPreference ( 4 );
131 130
132 // remove all columns from the account display 131 // remove all columns from the account display
133 int counter; 132 int counter;
134 for ( counter = 0; counter <= columns; counter++ ) 133 for ( counter = 0; counter <= columns; counter++ )
135 listview->removeColumn ( 0 ); 134 listview->removeColumn ( 0 );
136 135
137 // add columns to the account display 136 // add columns to the account display
138 listview->addColumn ( "Account", 0 ); 137 listview->addColumn ( "Account", 0 );
139 int columntoalign = 1; 138 int columntoalign = 1;
140 if ( preferences->getPreference ( 4 ) == 1 ) // add the currency column if the user wants it 139 if ( preferences->getPreference ( 4 ) == 1 ) // add the currency column if the user wants it
141 { 140 {
142 listview->addColumn ( "C", 0 ); 141 listview->addColumn ( "C", 0 );
143 columntoalign = 2; 142 columntoalign = 2;
144 } 143 }
145 listview->addColumn ( "Balance", 0 ); 144 listview->addColumn ( "Balance", 0 );
146 listview->addColumn ( "", 0 ); 145 listview->addColumn ( "", 0 );
147 listview->setColumnAlignment ( columntoalign, Qt::AlignRight ); 146 listview->setColumnAlignment ( columntoalign, Qt::AlignRight );
148 counter = 5; 147 counter = 5;
149 int total = ( rows + 1 ) * columns; 148 int total = ( rows + 1 ) * columns;
150 while ( counter < total ) 149 while ( counter < total )
151 { 150 {
152 int accountid = atoi ( results [ counter + 3 ] ); 151 int accountid = atoi ( results [ counter + 3 ] );
153 if ( atoi ( results [ counter + 1 ] ) == -1 ) 152 if ( atoi ( results [ counter + 1 ] ) == -1 )
154 { 153 {
155 QListViewItem *parent = new QListViewItem ( listview ); 154 QListViewItem *parent = new QListViewItem ( listview );
156 parent->setText ( 0, results [ counter ] ); 155 parent->setText ( 0, results [ counter ] );
157 if ( currency == 0 ) 156 if ( currency == 0 )
158 { 157 {
159 parent->setText ( 1, results [ counter + 2 ] ); 158 parent->setText ( 1, results [ counter + 2 ] );
160 parent->setText ( 2, results [ counter + 3 ] ); 159 parent->setText ( 2, results [ counter + 3 ] );
161 } 160 }
162 else 161 else
163 { 162 {
164 if ( getNumberOfChildAccounts ( accountid ) == 0 ) // add the currency flag if this is a parent with no children 163 if ( getNumberOfChildAccounts ( accountid ) == 0 ) // add the currency flag if this is a parent with no children
165 { 164 {
166 // create the string we'll use to set the currency pixmap 165 // create the string we'll use to set the currency pixmap
167 QString filename = "/opt/QtPalmtop/pics/flags/"; 166 QString filename = "/opt/QtPalmtop/pics/flags/";
168 QString flag = results [ counter + 4 ]; 167 QString flag = results [ counter + 4 ];
169 filename.append ( flag ); 168 filename.append ( flag );
170 filename.append ( ".png" ); 169 filename.append ( ".png" );
171 parent->setPixmap ( 1, QPixmap ( filename ) ); 170 parent->setPixmap ( 1, QPixmap ( filename ) );
172 parent->setText ( 1, flag ); 171 parent->setText ( 1, flag );
173 } 172 }
174 parent->setText ( 2, results [ counter + 2 ] ); 173 parent->setText ( 2, results [ counter + 2 ] );
175 parent->setText ( 3, results [ counter + 3 ] ); 174 parent->setText ( 3, results [ counter + 3 ] );
176 } 175 }
177 176
178 if ( getAccountExpanded ( accountid ) == 1 ) 177 if ( getAccountExpanded ( accountid ) == 1 )
179 parent->setOpen ( TRUE ); 178 parent->setOpen ( TRUE );
180 179
181 //Start display child accounts for this parent 180 //Start display child accounts for this parent
182 int childcounter = 5; 181 int childcounter = 5;
183 while ( childcounter < total ) 182 while ( childcounter < total )
184 { 183 {
185 if ( atoi ( results [ childcounter + 1 ] ) == accountid ) 184 if ( atoi ( results [ childcounter + 1 ] ) == accountid )
186 { 185 {
187 if ( currency == 0 ) 186 if ( currency == 0 )
188 QListViewItem *child = new QListViewItem ( parent, results [ childcounter ], results [ childcounter + 2 ], results [ childcounter + 3 ] ); 187 QListViewItem *child = new QListViewItem ( parent, results [ childcounter ], results [ childcounter + 2 ], results [ childcounter + 3 ] );
189 else 188 else
190 { 189 {
191 // create the string we'll use to set the currency pixmap 190 // create the string we'll use to set the currency pixmap
192 QString filename = "/opt/QtPalmtop/pics/flags/"; 191 QString filename = "/opt/QtPalmtop/pics/flags/";
193 QString flag = results [ childcounter + 4 ]; 192 QString flag = results [ childcounter + 4 ];
194 filename.append ( flag ); 193 filename.append ( flag );
195 filename.append ( ".png" ); 194 filename.append ( ".png" );
196 QListViewItem *child = new QListViewItem ( parent, results [ childcounter ], "", results [ childcounter + 2 ], results [ childcounter + 3 ] ); 195 QListViewItem *child = new QListViewItem ( parent, results [ childcounter ], "", results [ childcounter + 2 ], results [ childcounter + 3 ] );
197 child->setPixmap ( 1, QPixmap ( filename ) ); 196 child->setPixmap ( 1, QPixmap ( filename ) );
198 child->setText ( 1, flag ); 197 child->setText ( 1, flag );
199 } 198 }
200 } 199 }
diff --git a/noncore/apps/qashmoney/budget.cpp b/noncore/apps/qashmoney/budget.cpp
index 9f74078..2cec329 100755
--- a/noncore/apps/qashmoney/budget.cpp
+++ b/noncore/apps/qashmoney/budget.cpp
@@ -1,196 +1,195 @@
1#include "budget.h" 1#include "budget.h"
2#include "transaction.h" 2#include "transaction.h"
3#include <stdlib.h> 3#include <stdlib.h>
4#include <iostream.h>
5 4
6extern Transaction *transaction; 5extern Transaction *transaction;
7 6
8Budget::Budget () 7Budget::Budget ()
9 { 8 {
10 bdb = sqlite_open ( "qmbudgets.db", 0, NULL ); 9 bdb = sqlite_open ( "qmbudgets.db", 0, NULL );
11 } 10 }
12 11
13Budget::~Budget () 12Budget::~Budget ()
14 { 13 {
15 sqlite_close ( bdb ); 14 sqlite_close ( bdb );
16 } 15 }
17 16
18int Budget::addBudget ( QString name, int type, QString description, QString currency, int startday, int startmonth, int startyear, int endday, int endmonth, int endyear, int defaultview ) 17int Budget::addBudget ( QString name, int type, QString description, QString currency, int startday, int startmonth, int startyear, int endday, int endmonth, int endyear, int defaultview )
19 { 18 {
20 sqlite_exec_printf ( bdb, "insert into budgets values ( '%q', %i, '%q', '%q', %i, %i, %i, %i, %i, %i, %i, NULL );", 0, 0, 0, ( const char * ) name, type, ( const char * ) description, ( const char * ) currency, startday, startmonth, startyear, endday, endmonth, endyear, defaultview ); 19 sqlite_exec_printf ( bdb, "insert into budgets values ( '%q', %i, '%q', '%q', %i, %i, %i, %i, %i, %i, %i, NULL );", 0, 0, 0, ( const char * ) name, type, ( const char * ) description, ( const char * ) currency, startday, startmonth, startyear, endday, endmonth, endyear, defaultview );
21 char **results; 20 char **results;
22 sqlite_get_table ( bdb, "select last_insert_rowid() from budgets;", &results, NULL, NULL, NULL ); 21 sqlite_get_table ( bdb, "select last_insert_rowid() from budgets;", &results, NULL, NULL, NULL );
23 QString tablename = "table"; 22 QString tablename = "table";
24 tablename.append ( results [ 1 ] ); 23 tablename.append ( results [ 1 ] );
25 sqlite_exec_printf ( bdb, "create table '%q' ( name, lineitemamount, type, lineitemid integer primary key );", 0, 0, 0, ( const char* ) tablename ); 24 sqlite_exec_printf ( bdb, "create table '%q' ( name, lineitemamount, type, lineitemid integer primary key );", 0, 0, 0, ( const char* ) tablename );
26 return atoi ( results [ 1 ] ); 25 return atoi ( results [ 1 ] );
27 } 26 }
28 27
29void Budget::updateBudget ( QString name, QString description, QString currency, int budgetid ) 28void Budget::updateBudget ( QString name, QString description, QString currency, int budgetid )
30 { 29 {
31 sqlite_exec_printf ( bdb, "update budgets set name = '%q', description = '%q', currency = '%q' where budgetid = %i;", 0, 0, 0, ( const char * ) name, ( const char * ) description, ( const char * ) currency, budgetid ); 30 sqlite_exec_printf ( bdb, "update budgets set name = '%q', description = '%q', currency = '%q' where budgetid = %i;", 0, 0, 0, ( const char * ) name, ( const char * ) description, ( const char * ) currency, budgetid );
32 } 31 }
33 32
34void Budget::deleteBudget ( int budgetid ) 33void Budget::deleteBudget ( int budgetid )
35 { 34 {
36 if ( getNumberOfBudgets() != 0 ) 35 if ( getNumberOfBudgets() != 0 )
37 { 36 {
38 QString tablename = "table"; 37 QString tablename = "table";
39 tablename.append ( QString::number ( budgetid ) ); 38 tablename.append ( QString::number ( budgetid ) );
40 sqlite_exec_printf ( bdb, "delete from budgets where budgetid = %i;", 0, 0, 0, budgetid ); 39 sqlite_exec_printf ( bdb, "delete from budgets where budgetid = %i;", 0, 0, 0, budgetid );
41 sqlite_exec_printf ( bdb, "drop table '%q';", 0, 0, 0, ( const char* ) tablename ); 40 sqlite_exec_printf ( bdb, "drop table '%q';", 0, 0, 0, ( const char* ) tablename );
42 } 41 }
43 } 42 }
44 43
45int Budget::getNumberOfBudgets () 44int Budget::getNumberOfBudgets ()
46 { 45 {
47 char **results; 46 char **results;
48 sqlite_get_table ( bdb, "select count() from budgets;", &results, NULL, NULL, NULL ); 47 sqlite_get_table ( bdb, "select count() from budgets;", &results, NULL, NULL, NULL );
49 return atoi ( results [ 1 ] ); 48 return atoi ( results [ 1 ] );
50 } 49 }
51 50
52int Budget::getNumberOfLineItems ( int budgetid ) 51int Budget::getNumberOfLineItems ( int budgetid )
53 { 52 {
54 QString tablename = "table"; 53 QString tablename = "table";
55 tablename.append ( QString::number ( budgetid ) ); 54 tablename.append ( QString::number ( budgetid ) );
56 char **results; 55 char **results;
57 sqlite_get_table_printf ( bdb, "select count() from '%q';", &results, NULL, NULL, NULL, ( const char * ) tablename ); 56 sqlite_get_table_printf ( bdb, "select count() from '%q';", &results, NULL, NULL, NULL, ( const char * ) tablename );
58 return atoi ( results [ 1 ] ); 57 return atoi ( results [ 1 ] );
59 } 58 }
60 59
61QStringList* Budget::getBudgetNames () 60QStringList* Budget::getBudgetNames ()
62 { 61 {
63 QStringList *names = new QStringList (); 62 QStringList *names = new QStringList ();
64 char **results; 63 char **results;
65 int rows, counter; 64 int rows, counter;
66 sqlite_get_table ( bdb, "select name from budgets;", &results, &rows, NULL, NULL ); 65 sqlite_get_table ( bdb, "select name from budgets;", &results, &rows, NULL, NULL );
67 names->append ( "None" ); 66 names->append ( "None" );
68 for ( counter = 0; counter < rows; counter++ ) 67 for ( counter = 0; counter < rows; counter++ )
69 names->append ( results [ counter+1 ] ); 68 names->append ( results [ counter+1 ] );
70 return names; 69 return names;
71 } 70 }
72 71
73QString Budget::getBudgetName ( int budgetid ) 72QString Budget::getBudgetName ( int budgetid )
74 { 73 {
75 char **results; 74 char **results;
76 sqlite_get_table_printf ( bdb, "select name from budgets where budgetid= %i;", &results, NULL, NULL, NULL, budgetid ); 75 sqlite_get_table_printf ( bdb, "select name from budgets where budgetid= %i;", &results, NULL, NULL, NULL, budgetid );
77 return ( QString ) results [ 1 ]; 76 return ( QString ) results [ 1 ];
78 } 77 }
79 78
80QString Budget::getBudgetDescription ( int budgetid ) 79QString Budget::getBudgetDescription ( int budgetid )
81 { 80 {
82 char **results; 81 char **results;
83 sqlite_get_table_printf ( bdb, "select description from budgets where budgetid= %i;", &results, NULL, NULL, NULL, budgetid ); 82 sqlite_get_table_printf ( bdb, "select description from budgets where budgetid= %i;", &results, NULL, NULL, NULL, budgetid );
84 return ( QString ) results [ 1 ]; 83 return ( QString ) results [ 1 ];
85 } 84 }
86 85
87QString Budget::getCurrency ( int budgetid ) 86QString Budget::getCurrency ( int budgetid )
88 { 87 {
89 char **results; 88 char **results;
90 sqlite_get_table_printf ( bdb, "select currency from budgets where budgetid= %i;", &results, NULL, NULL, NULL, budgetid ); 89 sqlite_get_table_printf ( bdb, "select currency from budgets where budgetid= %i;", &results, NULL, NULL, NULL, budgetid );
91 return ( QString ) results [ 1 ]; 90 return ( QString ) results [ 1 ];
92 } 91 }
93 92
94QStringList* Budget::getBudgetIDs () 93QStringList* Budget::getBudgetIDs ()
95 { 94 {
96 QStringList *ids = new QStringList (); 95 QStringList *ids = new QStringList ();
97 char **results; 96 char **results;
98 int rows, counter; 97 int rows, counter;
99 sqlite_get_table ( bdb, "select budgetid from budgets;", &results, &rows, NULL, NULL ); 98 sqlite_get_table ( bdb, "select budgetid from budgets;", &results, &rows, NULL, NULL );
100 for ( counter = 0; counter < rows; counter++ ) 99 for ( counter = 0; counter < rows; counter++ )
101 ids->append ( results [ counter+1 ] ); 100 ids->append ( results [ counter+1 ] );
102 return ids; 101 return ids;
103 } 102 }
104 103
105int Budget::addLineItem ( int budgetid, QString lineitemname, float lineitemamount, int lineitemtype ) 104int Budget::addLineItem ( int budgetid, QString lineitemname, float lineitemamount, int lineitemtype )
106 { 105 {
107 QString tablename = "table"; 106 QString tablename = "table";
108 tablename.append ( QString::number ( budgetid ) ); 107 tablename.append ( QString::number ( budgetid ) );
109 sqlite_exec_printf ( bdb, "insert into '%q' values ( '%q', %.2f, %i, NULL );", 0, 0, 0, ( const char* ) tablename, ( const char* ) lineitemname, lineitemamount, lineitemtype ); 108 sqlite_exec_printf ( bdb, "insert into '%q' values ( '%q', %.2f, %i, NULL );", 0, 0, 0, ( const char* ) tablename, ( const char* ) lineitemname, lineitemamount, lineitemtype );
110 char **results; 109 char **results;
111 sqlite_get_table_printf ( bdb, "select last_insert_rowid() from '%q';", &results, NULL, NULL, NULL, ( const char* ) tablename ); 110 sqlite_get_table_printf ( bdb, "select last_insert_rowid() from '%q';", &results, NULL, NULL, NULL, ( const char* ) tablename );
112 return atoi ( results [ 1 ] ); 111 return atoi ( results [ 1 ] );
113 } 112 }
114 113
115void Budget::updateLineItem ( QString lineitemname, float lineitemamount, int lineitemtype, int budgetid, int lineitemid ) 114void Budget::updateLineItem ( QString lineitemname, float lineitemamount, int lineitemtype, int budgetid, int lineitemid )
116 { 115 {
117 QString tablename = "table"; 116 QString tablename = "table";
118 tablename.append ( QString::number ( budgetid ) ); 117 tablename.append ( QString::number ( budgetid ) );
119 sqlite_exec_printf ( bdb, "update '%q' set name = '%q', lineitemamount = %f, type = %i where lineitemid = %i;", 0, 0, 0, ( const char* ) tablename, ( const char * ) lineitemname, lineitemamount, lineitemtype, lineitemid ); 118 sqlite_exec_printf ( bdb, "update '%q' set name = '%q', lineitemamount = %f, type = %i where lineitemid = %i;", 0, 0, 0, ( const char* ) tablename, ( const char * ) lineitemname, lineitemamount, lineitemtype, lineitemid );
120 } 119 }
121 120
122void Budget::deleteLineItem ( int budgetid, int lineitemid ) 121void Budget::deleteLineItem ( int budgetid, int lineitemid )
123 { 122 {
124 QString tablename = "table"; 123 QString tablename = "table";
125 tablename.append ( QString::number ( budgetid ) ); 124 tablename.append ( QString::number ( budgetid ) );
126 sqlite_exec_printf ( bdb, "delete from '%q' where lineitemid = %i;", 0, 0, 0, ( const char * ) tablename, lineitemid ); 125 sqlite_exec_printf ( bdb, "delete from '%q' where lineitemid = %i;", 0, 0, 0, ( const char * ) tablename, lineitemid );
127 } 126 }
128 127
129void Budget::displayLineItems ( int budgetid, QListView *listview, int month, int year, int viewtype ) 128void Budget::displayLineItems ( int budgetid, QListView *listview, int month, int year, int viewtype )
130 { 129 {
131 QString tablename = "table"; 130 QString tablename = "table";
132 tablename.append ( QString::number ( budgetid ) ); 131 tablename.append ( QString::number ( budgetid ) );
133 char **results; 132 char **results;
134 int rows, columns, counter; 133 int rows, columns, counter;
135 sqlite_get_table_printf ( bdb, "select name, lineitemamount, lineitemid from '%q';", &results, &rows, &columns, NULL, ( const char * ) tablename ); 134 sqlite_get_table_printf ( bdb, "select name, lineitemamount, lineitemid from '%q';", &results, &rows, &columns, NULL, ( const char * ) tablename );
136 int total = ( ( rows + 1 ) * columns ); 135 int total = ( ( rows + 1 ) * columns );
137 for ( counter = 3; counter < total; counter = counter + 3 ) 136 for ( counter = 3; counter < total; counter = counter + 3 )
138 { 137 {
139 float amount = 0; 138 float amount = 0;
140 if ( viewtype == 0 ) 139 if ( viewtype == 0 )
141 { 140 {
142 QString lineitemamount = results [ counter + 1 ]; 141 QString lineitemamount = results [ counter + 1 ];
143 amount = lineitemamount.toFloat() / 12; 142 amount = lineitemamount.toFloat() / 12;
144 } 143 }
145 else 144 else
146 { 145 {
147 QString lineitemamount = results [ counter + 1 ]; 146 QString lineitemamount = results [ counter + 1 ];
148 amount = lineitemamount.toFloat(); 147 amount = lineitemamount.toFloat();
149 } 148 }
150 QListViewItem *item = new QListViewItem ( listview, results [ counter ], QString::number ( amount, 'f', 2 ), transaction->getBudgetTotal ( budgetid, atoi ( results [ counter + 2 ] ), year, month, viewtype ), results [ counter + 2 ] ); 149 QListViewItem *item = new QListViewItem ( listview, results [ counter ], QString::number ( amount, 'f', 2 ), transaction->getBudgetTotal ( budgetid, atoi ( results [ counter + 2 ] ), year, month, viewtype ), results [ counter + 2 ] );
151 } 150 }
152 } 151 }
153 152
154QStringList Budget::getLineItems ( int budgetid ) 153QStringList Budget::getLineItems ( int budgetid )
155 { 154 {
156 QString tablename = "table"; 155 QString tablename = "table";
157 tablename.append ( QString::number ( budgetid ) ); 156 tablename.append ( QString::number ( budgetid ) );
158 QStringList lineitems; 157 QStringList lineitems;
159 char **results; 158 char **results;
160 int rows, counter; 159 int rows, counter;
161 sqlite_get_table_printf ( bdb, "select name from '%q';", &results, &rows, NULL, NULL, (const char*) tablename ); 160 sqlite_get_table_printf ( bdb, "select name from '%q';", &results, &rows, NULL, NULL, (const char*) tablename );
162 for ( counter = 0; counter < rows; counter++ ) 161 for ( counter = 0; counter < rows; counter++ )
163 lineitems.append ( results [ counter + 1 ] ); 162 lineitems.append ( results [ counter + 1 ] );
164 return lineitems; 163 return lineitems;
165 } 164 }
166 165
167QStringList Budget::getLineItemIDs ( int budgetid ) 166QStringList Budget::getLineItemIDs ( int budgetid )
168 { 167 {
169 QString tablename = "table"; 168 QString tablename = "table";
170 tablename.append ( QString::number ( budgetid ) ); 169 tablename.append ( QString::number ( budgetid ) );
171 QStringList lineitemids; 170 QStringList lineitemids;
172 char **results; 171 char **results;
173 int rows, counter; 172 int rows, counter;
174 sqlite_get_table_printf ( bdb, "select lineitemid from '%q';", &results, &rows, NULL, NULL, (const char*) tablename ); 173 sqlite_get_table_printf ( bdb, "select lineitemid from '%q';", &results, &rows, NULL, NULL, (const char*) tablename );
175 for ( counter = 0; counter < rows; counter++ ) 174 for ( counter = 0; counter < rows; counter++ )
176 lineitemids.append ( results [ counter + 1 ] ); 175 lineitemids.append ( results [ counter + 1 ] );
177 return lineitemids; 176 return lineitemids;
178 } 177 }
179 178
180int Budget::getLineItemTime ( int budgetid, int lineitemid ) 179int Budget::getLineItemTime ( int budgetid, int lineitemid )
181 { 180 {
182 QString tablename = "table"; 181 QString tablename = "table";
183 tablename.append ( QString::number ( budgetid ) ); 182 tablename.append ( QString::number ( budgetid ) );
184 char **results; 183 char **results;
185 sqlite_get_table_printf ( bdb, "select type from '%q' where lineitemid= %i;", &results, NULL, NULL, NULL, ( const char * ) tablename, lineitemid ); 184 sqlite_get_table_printf ( bdb, "select type from '%q' where lineitemid= %i;", &results, NULL, NULL, NULL, ( const char * ) tablename, lineitemid );
186 return atoi ( results [ 1 ] ); 185 return atoi ( results [ 1 ] );
187 } 186 }
188 187
189float Budget::getLineItemAmount ( int budgetid, int lineitemid ) 188float Budget::getLineItemAmount ( int budgetid, int lineitemid )
190 { 189 {
191 QString tablename = "table"; 190 QString tablename = "table";
192 tablename.append ( QString::number ( budgetid ) ); 191 tablename.append ( QString::number ( budgetid ) );
193 char **results; 192 char **results;
194 sqlite_get_table_printf ( bdb, "select lineitemamount from '%q' where lineitemid= %i;", &results, NULL, NULL, NULL, ( const char* ) tablename, lineitemid ); 193 sqlite_get_table_printf ( bdb, "select lineitemamount from '%q' where lineitemid= %i;", &results, NULL, NULL, NULL, ( const char* ) tablename, lineitemid );
195 return strtod ( results [ 1 ], 0 ); 194 return strtod ( results [ 1 ], 0 );
196 } 195 }
diff --git a/noncore/apps/qashmoney/qashmoney.cpp b/noncore/apps/qashmoney/qashmoney.cpp
index e985f0b..d4cbc14 100755
--- a/noncore/apps/qashmoney/qashmoney.cpp
+++ b/noncore/apps/qashmoney/qashmoney.cpp
@@ -1,198 +1,197 @@
1#include "qashmoney.h" 1#include "qashmoney.h"
2#include "preferencedialogs.h" 2#include "preferencedialogs.h"
3#include "memorydialog.h" 3#include "memorydialog.h"
4 4
5#include <qheader.h> 5#include <qheader.h>
6#include <iostream.h>
7 6
8Budget *budget = new Budget (); 7Budget *budget = new Budget ();
9Preferences *preferences = new Preferences (); 8Preferences *preferences = new Preferences ();
10Account *account = new Account (); 9Account *account = new Account ();
11Transaction *transaction = new Transaction (); 10Transaction *transaction = new Transaction ();
12Transfer *transfer = new Transfer (); 11Transfer *transfer = new Transfer ();
13Memory *memory = new Memory (); 12Memory *memory = new Memory ();
14 13
15QashMoney::QashMoney () : QWidget () 14QashMoney::QashMoney () : QWidget ()
16 { 15 {
17 preferences->addPreferences (); 16 preferences->addPreferences ();
18 preferences->initializeColumnPreferences (); 17 preferences->initializeColumnPreferences ();
19 preferences->initializeSortingPreferences (); 18 preferences->initializeSortingPreferences ();
20 19
21 // set the text in the upper part of the frame 20 // set the text in the upper part of the frame
22 setCaption ( tr ( "QashMoney" ) ); 21 setCaption ( tr ( "QashMoney" ) );
23 22
24 // Create new menubar for our mainwindow 23 // Create new menubar for our mainwindow
25 // and add menu items 24 // and add menu items
26 mainmenu = new QMenuBar ( this ); 25 mainmenu = new QMenuBar ( this );
27 mainmenu->setFrameStyle ( QFrame::PopupPanel | QFrame::Raised ); 26 mainmenu->setFrameStyle ( QFrame::PopupPanel | QFrame::Raised );
28 preferencesmenu = new QPopupMenu ( this ); 27 preferencesmenu = new QPopupMenu ( this );
29 utilitiesmenu = new QPopupMenu ( this ); 28 utilitiesmenu = new QPopupMenu ( this );
30 mainmenu->insertItem ( "Preferences", preferencesmenu ); 29 mainmenu->insertItem ( "Preferences", preferencesmenu );
31 mainmenu->insertItem ( "Utilities", utilitiesmenu ); 30 mainmenu->insertItem ( "Utilities", utilitiesmenu );
32 preferencesmenu->insertItem ( "Date", this, SLOT ( displayDatePreferencesDialog () ) ); 31 preferencesmenu->insertItem ( "Date", this, SLOT ( displayDatePreferencesDialog () ) );
33 preferencesmenu->insertItem ( "Account", this, SLOT ( displayAccountPreferencesDialog () ) ); 32 preferencesmenu->insertItem ( "Account", this, SLOT ( displayAccountPreferencesDialog () ) );
34 preferencesmenu->insertItem ( "Transaction", this, SLOT ( displayTransactionPreferencesDialog () ) ); 33 preferencesmenu->insertItem ( "Transaction", this, SLOT ( displayTransactionPreferencesDialog () ) );
35 utilitiesmenu->insertItem ( "Memory", this, SLOT ( displayMemoryDialog () ) ); 34 utilitiesmenu->insertItem ( "Memory", this, SLOT ( displayMemoryDialog () ) );
36 35
37 // create the main tabwidget for displaying accounts and transactions 36 // create the main tabwidget for displaying accounts and transactions
38 maintabs = new QTabWidget ( this ); 37 maintabs = new QTabWidget ( this );
39 tab = new QWidget ( this ); 38 tab = new QWidget ( this );
40 tab_2 = new QWidget ( this ); 39 tab_2 = new QWidget ( this );
41 tab_3 = new QWidget ( this ); 40 tab_3 = new QWidget ( this );
42 maintabs->addTab ( tab, "Accounts" ); 41 maintabs->addTab ( tab, "Accounts" );
43 maintabs->addTab ( tab_2, "Transactions" ); 42 maintabs->addTab ( tab_2, "Transactions" );
44 maintabs->addTab ( tab_3, "Budgets" ); 43 maintabs->addTab ( tab_3, "Budgets" );
45 tabheight = tab->height(); 44 tabheight = tab->height();
46 maintabs->setTabEnabled ( tab_2, FALSE ); 45 maintabs->setTabEnabled ( tab_2, FALSE );
47 46
48 // create a new account display object 47 // create a new account display object
49 accountdisplay = new AccountDisplay ( maintabs ); 48 accountdisplay = new AccountDisplay ( maintabs );
50 accountdisplay->setTabs ( tab_2, maintabs ); 49 accountdisplay->setTabs ( tab_2, maintabs );
51 connect ( accountdisplay->listview, SIGNAL ( selectionChanged () ), this, SLOT ( setTransactionTab () ) ); 50 connect ( accountdisplay->listview, SIGNAL ( selectionChanged () ), this, SLOT ( setTransactionTab () ) );
52 51
53 // set the connection to disable the one touch account viewing if we are transfering money 52 // set the connection to disable the one touch account viewing if we are transfering money
54 connect ( accountdisplay->transferbutton, SIGNAL ( toggled ( bool ) ), this, SLOT ( toggleOneTouchViewing ( bool ) ) ); 53 connect ( accountdisplay->transferbutton, SIGNAL ( toggled ( bool ) ), this, SLOT ( toggleOneTouchViewing ( bool ) ) );
55 54
56 // create a new transactiondisplay object 55 // create a new transactiondisplay object
57 transactiondisplay = new TransactionDisplay ( maintabs ); 56 transactiondisplay = new TransactionDisplay ( maintabs );
58 transactiondisplay->hide(); 57 transactiondisplay->hide();
59 58
60 // create new budgetdisplay object 59 // create new budgetdisplay object
61 budgetdisplay = new BudgetDisplay ( maintabs ); 60 budgetdisplay = new BudgetDisplay ( maintabs );
62 budgetdisplay->hide(); 61 budgetdisplay->hide();
63 62
64 tabslayout = new QVBoxLayout ( maintabs, 4, 2 ); 63 tabslayout = new QVBoxLayout ( maintabs, 4, 2 );
65 tabslayout->addSpacing ( tabheight ); 64 tabslayout->addSpacing ( tabheight );
66 tabslayout->addWidget ( accountdisplay ); 65 tabslayout->addWidget ( accountdisplay );
67 tabslayout->addWidget ( transactiondisplay ); 66 tabslayout->addWidget ( transactiondisplay );
68 tabslayout->addWidget ( budgetdisplay ); 67 tabslayout->addWidget ( budgetdisplay );
69 68
70 // connect a change in the maintabs with changing the tab display 69 // connect a change in the maintabs with changing the tab display
71 connect ( maintabs, SIGNAL ( currentChanged ( QWidget * ) ), this, SLOT ( changeTabDisplay () ) ); 70 connect ( maintabs, SIGNAL ( currentChanged ( QWidget * ) ), this, SLOT ( changeTabDisplay () ) );
72 71
73 // create layout that will contain the menubar and the maintabs 72 // create layout that will contain the menubar and the maintabs
74 layout = new QVBoxLayout ( this, 2, 2 ); 73 layout = new QVBoxLayout ( this, 2, 2 );
75 layout->setMenuBar ( mainmenu ); 74 layout->setMenuBar ( mainmenu );
76 layout->addWidget ( maintabs ); 75 layout->addWidget ( maintabs );
77 } 76 }
78 77
79QashMoney::~QashMoney () 78QashMoney::~QashMoney ()
80 { 79 {
81 delete budget; 80 delete budget;
82 delete preferences; 81 delete preferences;
83 delete account; 82 delete account;
84 delete transaction; 83 delete transaction;
85 delete transfer; 84 delete transfer;
86 delete memory; 85 delete memory;
87 } 86 }
88 87
89void QashMoney::changeTabDisplay () 88void QashMoney::changeTabDisplay ()
90 { 89 {
91 // if the user pressed the transactions tab, hide the account display 90 // if the user pressed the transactions tab, hide the account display
92 // object and create a new transaction display 91 // object and create a new transaction display
93 if ( maintabs->currentPageIndex() == 1 ) 92 if ( maintabs->currentPageIndex() == 1 )
94 { 93 {
95 // initialize variables 94 // initialize variables
96 bool children = FALSE; 95 bool children = FALSE;
97 96
98 // hide the account display and define accountid 97 // hide the account display and define accountid
99 int accountid = accountdisplay->listview->selectedItem()->text ( accountdisplay->getIDColumn() ).toInt(); 98 int accountid = accountdisplay->listview->selectedItem()->text ( accountdisplay->getIDColumn() ).toInt();
100 99
101 //remove all the columns from the transactiondisplay 100 //remove all the columns from the transactiondisplay
102 int columns = transactiondisplay->listview->columns(); 101 int columns = transactiondisplay->listview->columns();
103 int counter; 102 int counter;
104 for ( counter = 0; counter <= columns; counter++ ) 103 for ( counter = 0; counter <= columns; counter++ )
105 transactiondisplay->listview->removeColumn ( 0 ); 104 transactiondisplay->listview->removeColumn ( 0 );
106 105
107 // set the account name and account balance 106 // set the account name and account balance
108 QString name = account->getAccountName ( accountid ); 107 QString name = account->getAccountName ( accountid );
109 QString balance = account->getAccountBalance ( accountid ); 108 QString balance = account->getAccountBalance ( accountid );
110 transactiondisplay->name->setText ( name ); 109 transactiondisplay->name->setText ( name );
111 transactiondisplay->balance->setText ( balance ); 110 transactiondisplay->balance->setText ( balance );
112 111
113 // clear the limitbox 112 // clear the limitbox
114 transactiondisplay->limitbox->clear(); 113 transactiondisplay->limitbox->clear();
115 114
116 // get parent account id 115 // get parent account id
117 int parentaccountid = account->getParentAccountID ( accountid ); 116 int parentaccountid = account->getParentAccountID ( accountid );
118 117
119 // add columns based on which account is selected 118 // add columns based on which account is selected
120 // this first if determines if we selected a parent with no children or a child 119 // this first if determines if we selected a parent with no children or a child
121 // in these cases, we add standard three columns for date, transaction, amount 120 // in these cases, we add standard three columns for date, transaction, amount
122 transactiondisplay->listview->addColumn ( "Date", 0 ); 121 transactiondisplay->listview->addColumn ( "Date", 0 );
123 transactiondisplay->listview->addColumn ( "Transaction", 0 ); 122 transactiondisplay->listview->addColumn ( "Transaction", 0 );
124 transactiondisplay->listview->addColumn ( "Amt", 0); 123 transactiondisplay->listview->addColumn ( "Amt", 0);
125 transactiondisplay->listview->setColumnAlignment ( 2, Qt::AlignRight ); 124 transactiondisplay->listview->setColumnAlignment ( 2, Qt::AlignRight );
126 transactiondisplay->listview->addColumn ( "", 0 ); 125 transactiondisplay->listview->addColumn ( "", 0 );
127 126
128 if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 ) // we selected a parent with children 127 if ( accountdisplay->listview->selectedItem()->parent() == 0 && accountdisplay->listview->selectedItem()->childCount() != 0 ) // we selected a parent with children
129 { 128 {
130 // add an extra column for the account name for eac child transaction 129 // add an extra column for the account name for eac child transaction
131 transactiondisplay->listview->addColumn ( "Acct", 0 ); 130 transactiondisplay->listview->addColumn ( "Acct", 0 );
132 children = TRUE; 131 children = TRUE;
133 132
134 // hide the new transaction button 133 // hide the new transaction button
135 transactiondisplay->newtransaction->setEnabled ( FALSE ); 134 transactiondisplay->newtransaction->setEnabled ( FALSE );
136 } 135 }
137 else //we selected a parent without children or a child 136 else //we selected a parent without children or a child
138 transactiondisplay->newtransaction->setEnabled ( TRUE ); 137 transactiondisplay->newtransaction->setEnabled ( TRUE );
139 138
140 // disable the transactionid column so it can't be red 139 // disable the transactionid column so it can't be red
141 transactiondisplay->listview->header()->setResizeEnabled ( FALSE, 3 ); 140 transactiondisplay->listview->header()->setResizeEnabled ( FALSE, 3 );
142 141
143 // set the accountid and children variables 142 // set the accountid and children variables
144 transactiondisplay->setChildren ( children ); 143 transactiondisplay->setChildren ( children );
145 transactiondisplay->setAccountID ( accountid ); 144 transactiondisplay->setAccountID ( accountid );
146 145
147 setTransactionDisplayDate (); 146 setTransactionDisplayDate ();
148 147
149 // display transactions 148 // display transactions
150 transactiondisplay->listview->clear(); 149 transactiondisplay->listview->clear();
151 QString displaytext = "%"; 150 QString displaytext = "%";
152 displaytext.prepend ( transactiondisplay->limitbox->text() ); 151 displaytext.prepend ( transactiondisplay->limitbox->text() );
153 if ( transaction->getNumberOfTransactions() > 0 ) 152 if ( transaction->getNumberOfTransactions() > 0 )
154 transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext, newdate ); 153 transaction->displayTransactions ( transactiondisplay->listview, accountid, children, displaytext, newdate );
155 154
156 // display transfers 155 // display transfers
157 transfer->displayTransfers ( transactiondisplay->listview, accountid, children, newdate ); 156 transfer->displayTransfers ( transactiondisplay->listview, accountid, children, newdate );
158 157
159 // open a new preferences object and resize the transaction display columns 158 // open a new preferences object and resize the transaction display columns
160 // each column will have a different size based on whether we are looking at a child 159 // each column will have a different size based on whether we are looking at a child
161 // account or children through a parent 160 // account or children through a parent
162 if ( parentaccountid != -1 || accountdisplay->listview->selectedItem()->childCount() == 0 ) // a parent with no children or a child - three columns 161 if ( parentaccountid != -1 || accountdisplay->listview->selectedItem()->childCount() == 0 ) // a parent with no children or a child - three columns
163 { 162 {
164 transactiondisplay->listview->setColumnWidth ( 0, preferences->getColumnPreference ( 3 ) ); // normal transaction date width 163 transactiondisplay->listview->setColumnWidth ( 0, preferences->getColumnPreference ( 3 ) ); // normal transaction date width
165 transactiondisplay->listview->setColumnWidthMode ( 0, QListView::Manual ); 164 transactiondisplay->listview->setColumnWidthMode ( 0, QListView::Manual );
166 transactiondisplay->listview->setColumnWidth ( 1, preferences->getColumnPreference ( 4 ) ); // normal transaction name width 165 transactiondisplay->listview->setColumnWidth ( 1, preferences->getColumnPreference ( 4 ) ); // normal transaction name width
167 transactiondisplay->listview->setColumnWidthMode ( 1, QListView::Manual ); 166 transactiondisplay->listview->setColumnWidthMode ( 1, QListView::Manual );
168 transactiondisplay->listview->setColumnWidth ( 2, preferences->getColumnPreference ( 5 ) ); // normal transaction amount width 167 transactiondisplay->listview->setColumnWidth ( 2, preferences->getColumnPreference ( 5 ) ); // normal transaction amount width
169 transactiondisplay->listview->setColumnWidthMode ( 2, QListView::Manual ); 168 transactiondisplay->listview->setColumnWidthMode ( 2, QListView::Manual );
170 } 169 }
171 else 170 else
172 { 171 {
173 transactiondisplay->listview->setColumnWidth ( 0, preferences->getColumnPreference ( 6 ) ); // extended transaction date width 172 transactiondisplay->listview->setColumnWidth ( 0, preferences->getColumnPreference ( 6 ) ); // extended transaction date width
174 transactiondisplay->listview->setColumnWidthMode ( 0, QListView::Manual ); 173 transactiondisplay->listview->setColumnWidthMode ( 0, QListView::Manual );
175 transactiondisplay->listview->setColumnWidth ( 1, preferences->getColumnPreference ( 7 ) ); // extended transaction name width 174 transactiondisplay->listview->setColumnWidth ( 1, preferences->getColumnPreference ( 7 ) ); // extended transaction name width
176 transactiondisplay->listview->setColumnWidthMode ( 1, QListView::Manual ); 175 transactiondisplay->listview->setColumnWidthMode ( 1, QListView::Manual );
177 transactiondisplay->listview->setColumnWidth ( 2, preferences->getColumnPreference ( 8 ) ); // extended transaction amount width 176 transactiondisplay->listview->setColumnWidth ( 2, preferences->getColumnPreference ( 8 ) ); // extended transaction amount width
178 transactiondisplay->listview->setColumnWidthMode ( 2, QListView::Manual ); 177 transactiondisplay->listview->setColumnWidthMode ( 2, QListView::Manual );
179 transactiondisplay->listview->setColumnWidth ( 4, preferences->getColumnPreference ( 9 ) ); // transaction account width 178 transactiondisplay->listview->setColumnWidth ( 4, preferences->getColumnPreference ( 9 ) ); // transaction account width
180 transactiondisplay->listview->setColumnWidthMode ( 4, QListView::Manual ); 179 transactiondisplay->listview->setColumnWidthMode ( 4, QListView::Manual );
181 } 180 }
182 181
183 // pull the column sorting preference from the preferences table, and configure the listview accordingly 182 // pull the column sorting preference from the preferences table, and configure the listview accordingly
184 int column = 0; 183 int column = 0;
185 int direction = 0; 184 int direction = 0;
186 preferences->getSortingPreference ( 2, &column, &direction ); 185 preferences->getSortingPreference ( 2, &column, &direction );
187 transactiondisplay->listview->setSorting ( column, direction ); 186 transactiondisplay->listview->setSorting ( column, direction );
188 187
189 // show the window 188 // show the window
190 transactiondisplay->show(); 189 transactiondisplay->show();
191 // hide the account display and define accountid 190 // hide the account display and define accountid
192 accountdisplay->hide(); 191 accountdisplay->hide();
193 // hide the budget display 192 // hide the budget display
194 budgetdisplay->hide(); 193 budgetdisplay->hide();
195 } 194 }
196 else if ( maintabs->currentPageIndex() == 0 ) 195 else if ( maintabs->currentPageIndex() == 0 )
197 { 196 {
198 disableOneTouchViewing(); 197 disableOneTouchViewing();
diff --git a/noncore/apps/qashmoney/qashmoney.pro b/noncore/apps/qashmoney/qashmoney.pro
index 8b4646a..ec29faa 100755
--- a/noncore/apps/qashmoney/qashmoney.pro
+++ b/noncore/apps/qashmoney/qashmoney.pro
@@ -1,49 +1,49 @@
1TEMPLATE = app 1TEMPLATE = app
2CONFIG = qt warn_on release 2CONFIG = qt warn_on release
3 HEADERS =qashmoney.h \ 3 HEADERS =qashmoney.h \
4 accountdisplay.h \ 4 accountdisplay.h \
5 account.h \ 5 account.h \
6 transaction.h \ 6 transaction.h \
7 transactiondisplay.h \ 7 transactiondisplay.h \
8 newtransaction.h \ 8 newtransaction.h \
9 transfer.h \ 9 transfer.h \
10 transferdialog.h \ 10 transferdialog.h \
11 preferences.h \ 11 preferences.h \
12 preferencedialogs.h \ 12 preferencedialogs.h \
13 memory.h \ 13 memory.h \
14 memorydialog.h \ 14 memorydialog.h \
15 newaccount.h \ 15 newaccount.h \
16 calculator.h \ 16 calculator.h \
17 datepicker.h \ 17 datepicker.h \
18 budget.h \ 18 budget.h \
19 budgetdisplay.h \ 19 budgetdisplay.h \
20 currency.h 20 currency.h
21 SOURCES =qashmoney.cpp \ 21 SOURCES =qashmoney.cpp \
22 accountdisplay.cpp \ 22 accountdisplay.cpp \
23 account.cpp \ 23 account.cpp \
24 transaction.cpp \ 24 transaction.cpp \
25 transactiondisplay.cpp \ 25 transactiondisplay.cpp \
26 newtransaction.cpp \ 26 newtransaction.cpp \
27 transfer.cpp \ 27 transfer.cpp \
28 transferdialog.cpp \ 28 transferdialog.cpp \
29 preferences.cpp \ 29 preferences.cpp \
30 preferencedialogs.cpp \ 30 preferencedialogs.cpp \
31 memory.cpp \ 31 memory.cpp \
32 memorydialog.cpp \ 32 memorydialog.cpp \
33 newaccount.cpp \ 33 newaccount.cpp \
34 calculator.cpp \ 34 calculator.cpp \
35 datepicker.cpp \ 35 datepicker.cpp \
36 main.cpp \ 36 main.cpp \
37 budget.cpp \ 37 budget.cpp \
38 budgetdisplay.cpp \ 38 budgetdisplay.cpp \
39 currency.cpp 39 currency.cpp
40INCLUDEPATH = $(OPIEDIR)/include 40INCLUDEPATH = $(OPIEDIR)/include
41DEPENDPATH = $(OPIEDIR)/include 41DEPENDPATH = $(OPIEDIR)/include
42 42
43DESTDIR = $(OPIEDIR)/bin 43DESTDIR = $(OPIEDIR)/bin
44 44
45unix:LIBS += -lm 45unix:LIBS += -lm
46LIBS += -lqpe -lqte -lstdc++ -lsqlite 46LIBS += -lqpe -lqte -lsqlite
47 47
48include ( $(OPIEDIR)/include.pro ) 48include ( $(OPIEDIR)/include.pro )
49 49
diff --git a/noncore/apps/qashmoney/transaction.cpp b/noncore/apps/qashmoney/transaction.cpp
index dcf46b1..d008a4f 100755
--- a/noncore/apps/qashmoney/transaction.cpp
+++ b/noncore/apps/qashmoney/transaction.cpp
@@ -1,203 +1,202 @@
1// RESERVEDONE COLUMN NAME REPRESENTS THE LINEITEMID AND SHOULD BE CHANGED IN 1// RESERVEDONE COLUMN NAME REPRESENTS THE LINEITEMID AND SHOULD BE CHANGED IN
2// FUTURE VERSIONS OF QASHMONEY 2// FUTURE VERSIONS OF QASHMONEY
3 3
4// RESERVEDTWO REPRESENTS THE TRANSACTION DESCRIPTION 4// RESERVEDTWO REPRESENTS THE TRANSACTION DESCRIPTION
5 5
6#include "transaction.h" 6#include "transaction.h"
7#include "account.h" 7#include "account.h"
8#include "transactiondisplay.h" 8#include "transactiondisplay.h"
9 9
10#include <stdlib.h> 10#include <stdlib.h>
11#include <iostream.h>
12 11
13extern Account *account; 12extern Account *account;
14extern Preferences *preferences; 13extern Preferences *preferences;
15 14
16Transaction::Transaction () 15Transaction::Transaction ()
17 { 16 {
18 tdb = sqlite_open ( "qmtransactions.db", 0, NULL ); 17 tdb = sqlite_open ( "qmtransactions.db", 0, NULL );
19 } 18 }
20 19
21Transaction::~Transaction () 20Transaction::~Transaction ()
22 { 21 {
23 sqlite_close ( tdb ); 22 sqlite_close ( tdb );
24 } 23 }
25 24
26void Transaction::addTransaction ( QString description, QString payee, int accountid, int parentid, int number, int day, int month, int year, float amount, int cleared, int budgetid, int lineitemid ) 25void Transaction::addTransaction ( QString description, QString payee, int accountid, int parentid, int number, int day, int month, int year, float amount, int cleared, int budgetid, int lineitemid )
27 { 26 {
28 sqlite_exec_printf ( tdb, "insert into transactions values ( '%q', %i, %i, %i, %i, %i, %i, %.2f, %i, %i, 0, 0, 0, 0, 0, 0, %i, '%q', 0, " 27 sqlite_exec_printf ( tdb, "insert into transactions values ( '%q', %i, %i, %i, %i, %i, %i, %.2f, %i, %i, 0, 0, 0, 0, 0, 0, %i, '%q', 0, "
29 "0, 0, 0, NULL );", 0, 0, 0, ( const char * ) payee, accountid, parentid, number, day, month, year, amount, cleared, budgetid, lineitemid, ( const char * ) description ); 28 "0, 0, 0, NULL );", 0, 0, 0, ( const char * ) payee, accountid, parentid, number, day, month, year, amount, cleared, budgetid, lineitemid, ( const char * ) description );
30 } 29 }
31 30
32void Transaction::updateTransaction ( QString description, QString payee, int number, int day, int month, int year, float amount, int cleared, int budgetid, int lineitemid, int transactionid ) 31void Transaction::updateTransaction ( QString description, QString payee, int number, int day, int month, int year, float amount, int cleared, int budgetid, int lineitemid, int transactionid )
33 { 32 {
34 sqlite_exec_printf ( tdb, "update transactions set reservedtwo = '%q', payee = '%q', number = %i, day = %i, month = %i, year = %i, amount = %.2f," 33 sqlite_exec_printf ( tdb, "update transactions set reservedtwo = '%q', payee = '%q', number = %i, day = %i, month = %i, year = %i, amount = %.2f,"
35 "cleared = %i, budgetid = %i, reservedone = %i where transid = %i;", 0, 0, 0, ( const char * ) description, ( const char * ) payee, number, day, month, year, 34 "cleared = %i, budgetid = %i, reservedone = %i where transid = %i;", 0, 0, 0, ( const char * ) description, ( const char * ) payee, number, day, month, year,
36 amount, cleared, budgetid, lineitemid, transactionid ); 35 amount, cleared, budgetid, lineitemid, transactionid );
37 } 36 }
38 37
39void Transaction::deleteTransaction ( int transid ) 38void Transaction::deleteTransaction ( int transid )
40 { 39 {
41 sqlite_exec_printf ( tdb, "delete from transactions where transid = %i;", 0, 0, 0, transid ); 40 sqlite_exec_printf ( tdb, "delete from transactions where transid = %i;", 0, 0, 0, transid );
42 } 41 }
43 42
44void Transaction::deleteAllTransactions ( int accountid ) 43void Transaction::deleteAllTransactions ( int accountid )
45 { 44 {
46 sqlite_exec_printf ( tdb, "delete from transactions where accountid = %i;", 0, 0, 0, accountid ); 45 sqlite_exec_printf ( tdb, "delete from transactions where accountid = %i;", 0, 0, 0, accountid );
47 } 46 }
48 47
49int Transaction::getAccountID ( int id ) 48int Transaction::getAccountID ( int id )
50 { 49 {
51 char **results; 50 char **results;
52 sqlite_get_table_printf ( tdb, "select accountid from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 51 sqlite_get_table_printf ( tdb, "select accountid from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
53 return atol ( results [ 1 ] ); 52 return atol ( results [ 1 ] );
54 } 53 }
55 54
56int Transaction::getNumberOfTransactions () 55int Transaction::getNumberOfTransactions ()
57 { 56 {
58 char **results; 57 char **results;
59 sqlite_get_table ( tdb, "select count() from transactions;", &results, NULL, NULL, NULL ); 58 sqlite_get_table ( tdb, "select count() from transactions;", &results, NULL, NULL, NULL );
60 return atoi ( results [ 1 ] ); 59 return atoi ( results [ 1 ] );
61 } 60 }
62 61
63int Transaction::getNumberOfTransactions ( int accountid ) 62int Transaction::getNumberOfTransactions ( int accountid )
64 { 63 {
65 char **results; 64 char **results;
66 sqlite_get_table_printf ( tdb, "select count() from transactions where accountid = %i;", &results, NULL, NULL, NULL, accountid ); 65 sqlite_get_table_printf ( tdb, "select count() from transactions where accountid = %i;", &results, NULL, NULL, NULL, accountid );
67 return atol ( results [ 1 ] ); 66 return atol ( results [ 1 ] );
68 } 67 }
69 68
70QString Transaction::getPayee ( int id ) 69QString Transaction::getPayee ( int id )
71 { 70 {
72 char **results; 71 char **results;
73 sqlite_get_table_printf ( tdb, "select payee from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 72 sqlite_get_table_printf ( tdb, "select payee from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
74 return results [ 1 ]; 73 return results [ 1 ];
75 } 74 }
76 75
77QString Transaction::getTransactionDescription ( int id ) 76QString Transaction::getTransactionDescription ( int id )
78 { 77 {
79 char **results; 78 char **results;
80 sqlite_get_table_printf ( tdb, "select reservedtwo from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 79 sqlite_get_table_printf ( tdb, "select reservedtwo from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
81 return results [ 1 ]; 80 return results [ 1 ];
82 } 81 }
83 82
84QString Transaction::getNumber ( int id ) 83QString Transaction::getNumber ( int id )
85 { 84 {
86 char **results; 85 char **results;
87 sqlite_get_table_printf ( tdb, "select number from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 86 sqlite_get_table_printf ( tdb, "select number from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
88 return results [ 1 ]; 87 return results [ 1 ];
89 } 88 }
90 89
91QString Transaction::getAmount ( int id ) 90QString Transaction::getAmount ( int id )
92 { 91 {
93 char **results; 92 char **results;
94 sqlite_get_table_printf ( tdb, "select amount from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 93 sqlite_get_table_printf ( tdb, "select amount from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
95 return results [ 1 ]; 94 return results [ 1 ];
96 } 95 }
97 96
98QString Transaction::getAbsoluteAmount ( int id ) 97QString Transaction::getAbsoluteAmount ( int id )
99 { 98 {
100 char **results; 99 char **results;
101 sqlite_get_table_printf ( tdb, "select abs ( amount ) from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 100 sqlite_get_table_printf ( tdb, "select abs ( amount ) from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
102 return results [ 1 ]; 101 return results [ 1 ];
103 } 102 }
104 103
105int Transaction::getCleared ( int id ) 104int Transaction::getCleared ( int id )
106 { 105 {
107 char **results; 106 char **results;
108 sqlite_get_table_printf ( tdb, "select cleared from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 107 sqlite_get_table_printf ( tdb, "select cleared from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
109 QString cleared = results [ 1 ]; 108 QString cleared = results [ 1 ];
110 return cleared.toInt(); 109 return cleared.toInt();
111 } 110 }
112 111
113void Transaction::setCleared ( int id, int cleared ) 112void Transaction::setCleared ( int id, int cleared )
114 { 113 {
115 sqlite_exec_printf ( tdb, "update transactions set cleared = %i where transid = %i;", 0, 0, 0, cleared, id ); 114 sqlite_exec_printf ( tdb, "update transactions set cleared = %i where transid = %i;", 0, 0, 0, cleared, id );
116 } 115 }
117 116
118int Transaction::getBudgetID ( int id ) 117int Transaction::getBudgetID ( int id )
119 { 118 {
120 char **results; 119 char **results;
121 sqlite_get_table_printf ( tdb, "select budgetid from transactions where transid = %i;", &results, NULL, NULL, NULL, id ); 120 sqlite_get_table_printf ( tdb, "select budgetid from transactions where transid = %i;", &results, NULL, NULL, NULL, id );
122 QString budgetid = results [ 1 ]; 121 QString budgetid = results [ 1 ];
123 return budgetid.toInt(); 122 return budgetid.toInt();
124 } 123 }
125 124
126int Transaction::getLineItemID ( int id ) 125int Transaction::getLineItemID ( int id )
127 { 126 {
128 char **results; 127 char **results;
129 sqlite_get_table_printf ( tdb, "select reservedone from transactions where transid = %i;", &results, NULL, NULL, NULL, id ); 128 sqlite_get_table_printf ( tdb, "select reservedone from transactions where transid = %i;", &results, NULL, NULL, NULL, id );
130 QString lineitemid = results [ 1 ]; 129 QString lineitemid = results [ 1 ];
131 return lineitemid.toInt(); 130 return lineitemid.toInt();
132 } 131 }
133 132
134int Transaction::getDay ( int id ) 133int Transaction::getDay ( int id )
135 { 134 {
136 char **results; 135 char **results;
137 sqlite_get_table_printf ( tdb, "select day from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 136 sqlite_get_table_printf ( tdb, "select day from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
138 QString daystring = results [ 1 ]; 137 QString daystring = results [ 1 ];
139 return daystring.toInt(); 138 return daystring.toInt();
140 } 139 }
141 140
142int Transaction::getMonth ( int id ) 141int Transaction::getMonth ( int id )
143 { 142 {
144 char **results; 143 char **results;
145 sqlite_get_table_printf ( tdb, "select month from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 144 sqlite_get_table_printf ( tdb, "select month from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
146 QString monthstring = results [ 1 ]; 145 QString monthstring = results [ 1 ];
147 return monthstring.toInt(); 146 return monthstring.toInt();
148 } 147 }
149 148
150int Transaction::getYear ( int id ) 149int Transaction::getYear ( int id )
151 { 150 {
152 char **results; 151 char **results;
153 sqlite_get_table_printf ( tdb, "select year from transactions where transid= %i;", &results, NULL, NULL, NULL, id ); 152 sqlite_get_table_printf ( tdb, "select year from transactions where transid= %i;", &results, NULL, NULL, NULL, id );
154 QString yearstring = results [ 1 ]; 153 QString yearstring = results [ 1 ];
155 return yearstring.toInt(); 154 return yearstring.toInt();
156 } 155 }
157 156
158char ** Transaction::selectAllTransactions ( QDate fromdate, bool children, const char *limit, int id ) 157char ** Transaction::selectAllTransactions ( QDate fromdate, bool children, const char *limit, int id )
159 { 158 {
160 // initialize variables 159 // initialize variables
161 char **results; 160 char **results;
162 int showcleared = preferences->getPreference ( 3 ); 161 int showcleared = preferences->getPreference ( 3 );
163 QDate today = QDate::currentDate(); 162 QDate today = QDate::currentDate();
164 int fromyear = fromdate.year(); 163 int fromyear = fromdate.year();
165 int toyear = today.year(); 164 int toyear = today.year();
166 int frommonth = fromdate.month(); 165 int frommonth = fromdate.month();
167 int tomonth = today.month(); 166 int tomonth = today.month();
168 int fromday = fromdate.day(); 167 int fromday = fromdate.day();
169 168
170 // construct the first part of the string 169 // construct the first part of the string
171 QString query = "select day, month, year, payee, amount, transid, accountid from transactions where"; 170 QString query = "select day, month, year, payee, amount, transid, accountid from transactions where";
172 171
173 if ( frommonth == tomonth && fromyear == toyear ) // our dates cross neither a month nor a year 172 if ( frommonth == tomonth && fromyear == toyear ) // our dates cross neither a month nor a year
174 { 173 {
175 query.append ( " year = " ); 174 query.append ( " year = " );
176 query.append ( QString::number ( toyear ) ); 175 query.append ( QString::number ( toyear ) );
177 query.append ( " and month = " ); 176 query.append ( " and month = " );
178 query.append ( QString::number ( tomonth ) ); 177 query.append ( QString::number ( tomonth ) );
179 query.append ( " and day >= " ); 178 query.append ( " and day >= " );
180 query.append ( QString::number ( fromday ) ); 179 query.append ( QString::number ( fromday ) );
181 query.append ( " and" ); 180 query.append ( " and" );
182 } 181 }
183 else if ( frommonth != tomonth && fromyear == toyear ) // our dates cross a month within the same year 182 else if ( frommonth != tomonth && fromyear == toyear ) // our dates cross a month within the same year
184 { 183 {
185 query.append ( " year = " ); 184 query.append ( " year = " );
186 query.append ( QString::number ( toyear ) ); 185 query.append ( QString::number ( toyear ) );
187 query.append ( " and ( ( month <= " ); 186 query.append ( " and ( ( month <= " );
188 query.append ( QString::number ( tomonth ) ); 187 query.append ( QString::number ( tomonth ) );
189 query.append ( " and month > " ); 188 query.append ( " and month > " );
190 query.append ( QString::number ( frommonth ) ); 189 query.append ( QString::number ( frommonth ) );
191 query.append ( " ) or ( month = " ); 190 query.append ( " ) or ( month = " );
192 query.append ( QString::number ( frommonth ) ); 191 query.append ( QString::number ( frommonth ) );
193 query.append ( " and day >= " ); 192 query.append ( " and day >= " );
194 query.append ( QString::number ( fromday ) ); 193 query.append ( QString::number ( fromday ) );
195 query.append ( " ) ) and " ); 194 query.append ( " ) ) and " );
196 } 195 }
197 else if ( fromyear != toyear && fromyear != 1900 ) // here we are showing transactions from an entire year 196 else if ( fromyear != toyear && fromyear != 1900 ) // here we are showing transactions from an entire year
198 { 197 {
199 // divide this taks into two parts - get the transactions from the prior and then the current year 198 // divide this taks into two parts - get the transactions from the prior and then the current year
200 // current year part 199 // current year part
201 int tmpfrommonth = 1; // set temporary from months and days to Jan. 1 200 int tmpfrommonth = 1; // set temporary from months and days to Jan. 1
202 int tmpfromday = 1; 201 int tmpfromday = 1;
203 query.append ( " ( year >= " ); 202 query.append ( " ( year >= " );
diff --git a/noncore/apps/qashmoney/transactiondisplay.cpp b/noncore/apps/qashmoney/transactiondisplay.cpp
index 1839cd2..78b8a00 100755
--- a/noncore/apps/qashmoney/transactiondisplay.cpp
+++ b/noncore/apps/qashmoney/transactiondisplay.cpp
@@ -1,207 +1,206 @@
1#include "transactiondisplay.h" 1#include "transactiondisplay.h"
2#include "newtransaction.h" 2#include "newtransaction.h"
3#include "account.h" 3#include "account.h"
4#include "budget.h" 4#include "budget.h"
5#include "memory.h" 5#include "memory.h"
6#include "transfer.h" 6#include "transfer.h"
7#include "preferences.h" 7#include "preferences.h"
8#include "calculator.h" 8#include "calculator.h"
9#include "datepicker.h" 9#include "datepicker.h"
10 10
11#include <qdatetime.h> 11#include <qdatetime.h>
12#include <qmessagebox.h> 12#include <qmessagebox.h>
13#include <qheader.h> 13#include <qheader.h>
14#include <qmultilineedit.h> 14#include <qmultilineedit.h>
15#include <iostream.h>
16#include <qdatetime.h> 15#include <qdatetime.h>
17 16
18extern Transaction *transaction; 17extern Transaction *transaction;
19extern Budget *budget; 18extern Budget *budget;
20extern Account *account; 19extern Account *account;
21extern Preferences *preferences; 20extern Preferences *preferences;
22extern Memory *memory; 21extern Memory *memory;
23extern Transfer *transfer; 22extern Transfer *transfer;
24 23
25TransactionDisplay::TransactionDisplay ( QWidget* parent ) : QWidget ( parent ) 24TransactionDisplay::TransactionDisplay ( QWidget* parent ) : QWidget ( parent )
26 { 25 {
27 // set transactiondisplay variables; 26 // set transactiondisplay variables;
28 accountid = 0; 27 accountid = 0;
29 children = TRUE; 28 children = TRUE;
30 29
31 firstline = new QHBox ( this ); 30 firstline = new QHBox ( this );
32 firstline->setSpacing ( 2 ); 31 firstline->setSpacing ( 2 );
33 32
34 newtransaction = new QPushButton ( firstline ); 33 newtransaction = new QPushButton ( firstline );
35 newtransaction->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/new.png") ); 34 newtransaction->setPixmap ( QPixmap ("/opt/QtPalmtop/pics/new.png") );
36 connect ( newtransaction, SIGNAL ( released () ), this, SLOT ( addTransaction () ) ); 35 connect ( newtransaction, SIGNAL ( released () ), this, SLOT ( addTransaction () ) );
37 36
38 edittransaction = new QPushButton ( firstline ); 37 edittransaction = new QPushButton ( firstline );
39 edittransaction->setPixmap( QPixmap ("/opt/QtPalmtop/pics/edit.png") ); 38 edittransaction->setPixmap( QPixmap ("/opt/QtPalmtop/pics/edit.png") );
40 connect ( edittransaction, SIGNAL ( released () ), this, SLOT ( checkListViewEdit () ) ); 39 connect ( edittransaction, SIGNAL ( released () ), this, SLOT ( checkListViewEdit () ) );
41 40
42 deletetransaction = new QPushButton ( firstline ); 41 deletetransaction = new QPushButton ( firstline );
43 deletetransaction->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/delete.png") ); 42 deletetransaction->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/delete.png") );
44 connect ( deletetransaction, SIGNAL ( released () ), this, SLOT ( checkListViewDelete () ) ); 43 connect ( deletetransaction, SIGNAL ( released () ), this, SLOT ( checkListViewDelete () ) );
45 44
46 toggletransaction = new QPushButton ( firstline ); 45 toggletransaction = new QPushButton ( firstline );
47 toggletransaction->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/redo.png") ); 46 toggletransaction->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/redo.png") );
48 connect ( toggletransaction, SIGNAL ( released () ), this, SLOT ( checkListViewToggle () ) ); 47 connect ( toggletransaction, SIGNAL ( released () ), this, SLOT ( checkListViewToggle () ) );
49 48
50 viewtransactionnotes = new QPushButton ( firstline ); 49 viewtransactionnotes = new QPushButton ( firstline );
51 viewtransactionnotes->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/info.png") ); 50 viewtransactionnotes->setPixmap( QPixmap ( "/opt/QtPalmtop/pics/info.png") );
52 connect ( viewtransactionnotes, SIGNAL ( released () ), this, SLOT ( showTransactionNotes () ) ); 51 connect ( viewtransactionnotes, SIGNAL ( released () ), this, SLOT ( showTransactionNotes () ) );
53 52
54 secondline = new QHBox ( this ); 53 secondline = new QHBox ( this );
55 secondline->setSpacing ( 5 ); 54 secondline->setSpacing ( 5 );
56 55
57 name = new QLabel ( secondline ); 56 name = new QLabel ( secondline );
58 balance = new QLabel ( secondline ); 57 balance = new QLabel ( secondline );
59 58
60 QLabel *limit = new QLabel ( "Limit", secondline ); 59 QLabel *limit = new QLabel ( "Limit", secondline );
61 limitbox = new QLineEdit ( secondline ); 60 limitbox = new QLineEdit ( secondline );
62 limitbox->setMinimumWidth ( ( int ) ( this->width() / 6 ) ); 61 limitbox->setMinimumWidth ( ( int ) ( this->width() / 6 ) );
63 connect ( limitbox, SIGNAL ( textChanged ( const QString & ) ), this, SLOT ( limitDisplay ( const QString & ) ) ); 62 connect ( limitbox, SIGNAL ( textChanged ( const QString & ) ), this, SLOT ( limitDisplay ( const QString & ) ) );
64 63
65 listview = new QListView ( this ); 64 listview = new QListView ( this );
66 listview->setAllColumnsShowFocus ( TRUE ); 65 listview->setAllColumnsShowFocus ( TRUE );
67 listview->setShowSortIndicator ( TRUE ); 66 listview->setShowSortIndicator ( TRUE );
68 listview->header()->setTracking ( FALSE ); 67 listview->header()->setTracking ( FALSE );
69 connect ( listview->header(), SIGNAL ( sizeChange ( int, int, int ) ), this, SLOT ( saveColumnSize ( int, int, int ) ) ); 68 connect ( listview->header(), SIGNAL ( sizeChange ( int, int, int ) ), this, SLOT ( saveColumnSize ( int, int, int ) ) );
70 connect ( listview->header(), SIGNAL ( clicked ( int ) ), this, SLOT ( saveSortingPreference ( int ) ) ); 69 connect ( listview->header(), SIGNAL ( clicked ( int ) ), this, SLOT ( saveSortingPreference ( int ) ) );
71 70
72 layout = new QVBoxLayout ( this, 2, 2 ); 71 layout = new QVBoxLayout ( this, 2, 2 );
73 layout->addWidget ( firstline ); 72 layout->addWidget ( firstline );
74 layout->addWidget ( secondline ); 73 layout->addWidget ( secondline );
75 layout->addWidget ( listview ); 74 layout->addWidget ( listview );
76 } 75 }
77 76
78void TransactionDisplay::addTransaction () 77void TransactionDisplay::addTransaction ()
79 { 78 {
80 // create local variables 79 // create local variables
81 int cleared = -1; 80 int cleared = -1;
82 81
83 // create new transaction window 82 // create new transaction window
84 NewTransaction *newtransaction = new NewTransaction ( this ); 83 NewTransaction *newtransaction = new NewTransaction ( this );
85 int width = this->size().width(); 84 int width = this->size().width();
86 newtransaction->transactionname->setMaximumWidth ( ( int ) ( width * 0.45 ) ); 85 newtransaction->transactionname->setMaximumWidth ( ( int ) ( width * 0.45 ) );
87 newtransaction->transactionname->setMinimumWidth ( ( int ) ( width * 0.35 ) ); 86 newtransaction->transactionname->setMinimumWidth ( ( int ) ( width * 0.35 ) );
88 newtransaction->lineitembox->setMaximumWidth ( ( int ) ( width * 0.45 ) ); 87 newtransaction->lineitembox->setMaximumWidth ( ( int ) ( width * 0.45 ) );
89 newtransaction->transactiondatebox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); 88 newtransaction->transactiondatebox->setMaximumWidth ( ( int ) ( width * 0.4 ) );
90 newtransaction->transactionamountbox->setMaximumWidth ( ( int ) ( width * 0.4 ) ); 89 newtransaction->transactionamountbox->setMaximumWidth ( ( int ) ( width * 0.4 ) );
91 newtransaction->transactionnumber->setMaximumWidth ( ( int ) ( width * 0.25 ) ); 90 newtransaction->transactionnumber->setMaximumWidth ( ( int ) ( width * 0.25 ) );
92 91
93 // enter today's date in the date box as defaul 92 // enter today's date in the date box as defaul
94 QDate today = QDate::currentDate (); 93 QDate today = QDate::currentDate ();
95 int defaultday = today.day(); 94 int defaultday = today.day();
96 int defaultmonth = today.month(); 95 int defaultmonth = today.month();
97 int defaultyear = today.year(); 96 int defaultyear = today.year();
98 newtransaction->transactiondate->setText ( preferences->getDate ( defaultyear, defaultmonth, defaultday ) ); 97 newtransaction->transactiondate->setText ( preferences->getDate ( defaultyear, defaultmonth, defaultday ) );
99 98
100 // add memory items to the transactionname combobox 99 // add memory items to the transactionname combobox
101 memory->displayMemoryItems ( newtransaction->transactionname ); 100 memory->displayMemoryItems ( newtransaction->transactionname );
102 newtransaction->transactionname->insertItem ( "", 0 ); 101 newtransaction->transactionname->insertItem ( "", 0 );
103 102
104 if ( newtransaction->exec () == QDialog::Accepted ) 103 if ( newtransaction->exec () == QDialog::Accepted )
105 { 104 {
106 if ( newtransaction->clearedcheckbox->isChecked () == TRUE ) // set a parent id and type for a child transaction 105 if ( newtransaction->clearedcheckbox->isChecked () == TRUE ) // set a parent id and type for a child transaction
107 cleared = 1; 106 cleared = 1;
108 else 107 else
109 cleared = 0; 108 cleared = 0;
110 109
111 float amount = newtransaction->transactionamount->text().toFloat(); 110 float amount = newtransaction->transactionamount->text().toFloat();
112 if ( newtransaction->depositbox->isChecked() == FALSE ) 111 if ( newtransaction->depositbox->isChecked() == FALSE )
113 amount = amount * -1; 112 amount = amount * -1;
114 113
115 // add the transaction name to the memory items 114 // add the transaction name to the memory items
116 memory->addMemoryItem ( newtransaction->transactionname->currentText() ); 115 memory->addMemoryItem ( newtransaction->transactionname->currentText() );
117 116
118 // add the transaction 117 // add the transaction
119 if ( newtransaction->getDateEdited () == TRUE ) 118 if ( newtransaction->getDateEdited () == TRUE )
120 transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ), 119 transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ),
121 newtransaction->transactionnumber->text().toInt(), newtransaction->getDay(), newtransaction->getMonth(), newtransaction->getYear(), amount, cleared, newtransaction->getCurrentBudget(), 120 newtransaction->transactionnumber->text().toInt(), newtransaction->getDay(), newtransaction->getMonth(), newtransaction->getYear(), amount, cleared, newtransaction->getCurrentBudget(),
122 newtransaction->getCurrentLineItem() ); 121 newtransaction->getCurrentLineItem() );
123 else 122 else
124 transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ), 123 transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ),
125 newtransaction->transactionnumber->text().toInt(), defaultday, defaultmonth, defaultyear, amount, cleared, newtransaction->getCurrentBudget(), newtransaction->getCurrentLineItem() ); 124 newtransaction->transactionnumber->text().toInt(), defaultday, defaultmonth, defaultyear, amount, cleared, newtransaction->getCurrentBudget(), newtransaction->getCurrentLineItem() );
126 125
127 // redisplay transactions 126 // redisplay transactions
128 listview->clear(); 127 listview->clear();
129 QString displaytext = "%"; 128 QString displaytext = "%";
130 displaytext.prepend ( limitbox->text() ); 129 displaytext.prepend ( limitbox->text() );
131 setTransactionDisplayDate (); 130 setTransactionDisplayDate ();
132 if ( transaction->getNumberOfTransactions() > 0 ) 131 if ( transaction->getNumberOfTransactions() > 0 )
133 transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate ); 132 transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
134 133
135 // redisplay transfers 134 // redisplay transfers
136 if ( transfer->getNumberOfTransfers() > 0 ) 135 if ( transfer->getNumberOfTransfers() > 0 )
137 transfer->displayTransfers ( listview, accountid, children, displaydate ); 136 transfer->displayTransfers ( listview, accountid, children, displaydate );
138 137
139 // add the transaction amount to the account it's associated with 138 // add the transaction amount to the account it's associated with
140 // and update its parent account balance if necessary 139 // and update its parent account balance if necessary
141 account->updateAccountBalance ( accountid ); 140 account->updateAccountBalance ( accountid );
142 if ( account->getParentAccountID ( accountid ) != -1 ) 141 if ( account->getParentAccountID ( accountid ) != -1 )
143 account->changeParentAccountBalance ( account->getParentAccountID ( accountid ) ); 142 account->changeParentAccountBalance ( account->getParentAccountID ( accountid ) );
144 143
145 // format then reset the account balance 144 // format then reset the account balance
146 redisplayAccountBalance (); 145 redisplayAccountBalance ();
147 } 146 }
148 } 147 }
149 148
150void TransactionDisplay::checkListViewEdit () 149void TransactionDisplay::checkListViewEdit ()
151 { 150 {
152 if ( listview->selectedItem() == 0 ) 151 if ( listview->selectedItem() == 0 )
153 QMessageBox::warning ( this, "QashMoney", "Please select a transaction\nto edit."); 152 QMessageBox::warning ( this, "QashMoney", "Please select a transaction\nto edit.");
154 else if ( listview->currentItem()->text ( getIDColumn() ).toInt() < 0 ) 153 else if ( listview->currentItem()->text ( getIDColumn() ).toInt() < 0 )
155 editTransfer (); 154 editTransfer ();
156 else 155 else
157 editTransaction(); 156 editTransaction();
158 } 157 }
159 158
160void TransactionDisplay::showCalculator () 159void TransactionDisplay::showCalculator ()
161 { 160 {
162 Calculator *calculator = new Calculator ( this ); 161 Calculator *calculator = new Calculator ( this );
163 if ( calculator->exec () == QDialog::Accepted ) 162 if ( calculator->exec () == QDialog::Accepted )
164 amount->setText ( calculator->display->text() ); 163 amount->setText ( calculator->display->text() );
165 } 164 }
166 165
167void TransactionDisplay::showCalendar () 166void TransactionDisplay::showCalendar ()
168 { 167 {
169 QDate newDate = QDate::currentDate (); 168 QDate newDate = QDate::currentDate ();
170 DatePicker *dp = new DatePicker ( newDate ); 169 DatePicker *dp = new DatePicker ( newDate );
171 if ( dp->exec () == QDialog::Accepted ) 170 if ( dp->exec () == QDialog::Accepted )
172 { 171 {
173 year = dp->getYear(); 172 year = dp->getYear();
174 month = dp->getMonth(); 173 month = dp->getMonth();
175 day = dp->getDay(); 174 day = dp->getDay();
176 date->setText ( preferences->getDate ( year, month, day ) ); 175 date->setText ( preferences->getDate ( year, month, day ) );
177 } 176 }
178 } 177 }
179 178
180void TransactionDisplay::editTransfer () 179void TransactionDisplay::editTransfer ()
181 { 180 {
182 transferid = listview->currentItem()->text ( getIDColumn() ).toInt(); 181 transferid = listview->currentItem()->text ( getIDColumn() ).toInt();
183 fromaccount = transfer->getFromAccountID ( transferid ); 182 fromaccount = transfer->getFromAccountID ( transferid );
184 toaccount = transfer->getToAccountID ( transferid ); 183 toaccount = transfer->getToAccountID ( transferid );
185 year = transfer->getYear ( transferid ); 184 year = transfer->getYear ( transferid );
186 month = transfer->getMonth ( transferid ); 185 month = transfer->getMonth ( transferid );
187 day = transfer->getDay ( transferid ); 186 day = transfer->getDay ( transferid );
188 187
189 QDialog *editransfer = new QDialog ( this, "edittransfer", TRUE ); 188 QDialog *editransfer = new QDialog ( this, "edittransfer", TRUE );
190 editransfer->setCaption ( "Transfer" ); 189 editransfer->setCaption ( "Transfer" );
191 190
192 QStringList accountnames = account->getAccountNames(); 191 QStringList accountnames = account->getAccountNames();
193 QStringList accountids = account->getAccountIDs(); 192 QStringList accountids = account->getAccountIDs();
194 193
195 QLabel *fromaccountlabel = new QLabel ( "From Account:", editransfer ); 194 QLabel *fromaccountlabel = new QLabel ( "From Account:", editransfer );
196 QFont f = this->font(); 195 QFont f = this->font();
197 f.setWeight ( QFont::Bold ); 196 f.setWeight ( QFont::Bold );
198 fromaccountlabel->setFont ( f ); 197 fromaccountlabel->setFont ( f );
199 198
200 QComboBox *fromaccountbox = new QComboBox ( editransfer ); 199 QComboBox *fromaccountbox = new QComboBox ( editransfer );
201 fromaccountbox->insertStringList ( accountnames ); 200 fromaccountbox->insertStringList ( accountnames );
202 fromaccountbox->setCurrentItem ( accountids.findIndex ( QString::number ( fromaccount ) ) ); 201 fromaccountbox->setCurrentItem ( accountids.findIndex ( QString::number ( fromaccount ) ) );
203 202
204 QLabel *toaccountlabel = new QLabel ( "To Account:", editransfer ); 203 QLabel *toaccountlabel = new QLabel ( "To Account:", editransfer );
205 toaccountlabel->setFont ( f ); 204 toaccountlabel->setFont ( f );
206 205
207 QComboBox *toaccountbox = new QComboBox ( editransfer ); 206 QComboBox *toaccountbox = new QComboBox ( editransfer );
diff --git a/noncore/apps/qashmoney/transfer.cpp b/noncore/apps/qashmoney/transfer.cpp
index c4bbaf9..ae1b748 100755
--- a/noncore/apps/qashmoney/transfer.cpp
+++ b/noncore/apps/qashmoney/transfer.cpp
@@ -1,197 +1,196 @@
1#include "transfer.h" 1#include "transfer.h"
2#include "account.h" 2#include "account.h"
3#include "transactiondisplay.h" 3#include "transactiondisplay.h"
4#include <stdlib.h> 4#include <stdlib.h>
5#include <iostream.h>
6 5
7extern Account *account; 6extern Account *account;
8extern Preferences *preferences; 7extern Preferences *preferences;
9 8
10Transfer::Transfer () 9Transfer::Transfer ()
11 { 10 {
12 db = sqlite_open ( "qmtransfers.db", 0, 0 ); 11 db = sqlite_open ( "qmtransfers.db", 0, 0 );
13 } 12 }
14 13
15Transfer::~Transfer () 14Transfer::~Transfer ()
16 { 15 {
17 sqlite_close ( db ); 16 sqlite_close ( db );
18 } 17 }
19 18
20void Transfer::addTransfer ( int fromaccount, int fromparent, int toaccount, int toparent, int day, int month, int year, float amount, int cleared ) 19void Transfer::addTransfer ( int fromaccount, int fromparent, int toaccount, int toparent, int day, int month, int year, float amount, int cleared )
21 { 20 {
22 int nextrowid = -1; 21 int nextrowid = -1;
23 char **results; 22 char **results;
24 sqlite_get_table ( db, "select count() from transfers;", &results, 0, 0, 0 ); 23 sqlite_get_table ( db, "select count() from transfers;", &results, 0, 0, 0 );
25 if ( atoi ( results [ 1 ] ) != 0 ) 24 if ( atoi ( results [ 1 ] ) != 0 )
26 { 25 {
27 char **results; 26 char **results;
28 sqlite_get_table ( db, "select min ( rowid ) from transfers;", &results, 0, 0, 0 ); 27 sqlite_get_table ( db, "select min ( rowid ) from transfers;", &results, 0, 0, 0 );
29 nextrowid = ( atoi ( results [ 1 ] ) ) - 1; 28 nextrowid = ( atoi ( results [ 1 ] ) ) - 1;
30 } 29 }
31 sqlite_exec_printf ( db, "insert into transfers values ( %i, %i, %i, %i, %i, %i, %i, 0, 0, %.2f, %i, 0, 0, 0, 0, 0, %i );", 0, 0, 0, fromaccount, fromparent, toaccount, toparent, day, month, year, amount, cleared, nextrowid ); 30 sqlite_exec_printf ( db, "insert into transfers values ( %i, %i, %i, %i, %i, %i, %i, 0, 0, %.2f, %i, 0, 0, 0, 0, 0, %i );", 0, 0, 0, fromaccount, fromparent, toaccount, toparent, day, month, year, amount, cleared, nextrowid );
32 } 31 }
33 32
34void Transfer::updateTransfer ( int fromaccount, int fromparent, int toaccount, int toparent, int day, int month, int year, float amount, int cleared, int transferid ) 33void Transfer::updateTransfer ( int fromaccount, int fromparent, int toaccount, int toparent, int day, int month, int year, float amount, int cleared, int transferid )
35 { 34 {
36 sqlite_exec_printf ( db, "update transfers set fromaccount = %i, fromparent = %i, toaccount = %i, toparent = %i, day = %i, month = %i, year = %i," 35 sqlite_exec_printf ( db, "update transfers set fromaccount = %i, fromparent = %i, toaccount = %i, toparent = %i, day = %i, month = %i, year = %i,"
37 "amount = %.2f, cleared = %i where transferid = %i;", 0, 0, 0, fromaccount, fromparent, toaccount, toparent, day, month, year, amount, cleared, transferid ); 36 "amount = %.2f, cleared = %i where transferid = %i;", 0, 0, 0, fromaccount, fromparent, toaccount, toparent, day, month, year, amount, cleared, transferid );
38 } 37 }
39 38
40void Transfer::deleteTransfer ( int transferid ) 39void Transfer::deleteTransfer ( int transferid )
41 { 40 {
42 sqlite_exec_printf ( db, "delete from transfers where transferid = %i;", 0, 0, 0, transferid ); 41 sqlite_exec_printf ( db, "delete from transfers where transferid = %i;", 0, 0, 0, transferid );
43 } 42 }
44 43
45void Transfer::deleteAllTransfers ( int accountid ) 44void Transfer::deleteAllTransfers ( int accountid )
46 { 45 {
47 sqlite_exec_printf ( db, "delete from transfers where fromaccount = %i;", 0, 0, 0, accountid ); 46 sqlite_exec_printf ( db, "delete from transfers where fromaccount = %i;", 0, 0, 0, accountid );
48 sqlite_exec_printf ( db, "delete from transfers where toaccount = %i;", 0, 0, 0, accountid ); 47 sqlite_exec_printf ( db, "delete from transfers where toaccount = %i;", 0, 0, 0, accountid );
49 } 48 }
50 49
51int Transfer::getNumberOfTransfers () 50int Transfer::getNumberOfTransfers ()
52 { 51 {
53 char **results; 52 char **results;
54 sqlite_get_table ( db, "select count() from transfers;", &results, 0, 0, 0 ); 53 sqlite_get_table ( db, "select count() from transfers;", &results, 0, 0, 0 );
55 return atoi ( results [ 1 ] ); 54 return atoi ( results [ 1 ] );
56 } 55 }
57 56
58int Transfer::getNumberOfTransfers ( int accountid ) 57int Transfer::getNumberOfTransfers ( int accountid )
59 { 58 {
60 char **results; 59 char **results;
61 sqlite_get_table_printf ( db, "select count() from transfers where fromaccount = %i;", &results, 0, 0, 0, accountid ); 60 sqlite_get_table_printf ( db, "select count() from transfers where fromaccount = %i;", &results, 0, 0, 0, accountid );
62 int transfers = atoi ( results [ 1 ] ); 61 int transfers = atoi ( results [ 1 ] );
63 sqlite_get_table_printf ( db, "select count() from transfers where toaccount = %i;", &results, 0, 0, 0, accountid ); 62 sqlite_get_table_printf ( db, "select count() from transfers where toaccount = %i;", &results, 0, 0, 0, accountid );
64 transfers = transfers + atoi ( results [ 1 ] ); 63 transfers = transfers + atoi ( results [ 1 ] );
65 return transfers; 64 return transfers;
66 } 65 }
67 66
68void Transfer::displayTransfers ( QListView *listview, int accountid, bool children, QDate displaydate ) 67void Transfer::displayTransfers ( QListView *listview, int accountid, bool children, QDate displaydate )
69 { 68 {
70 int showcleared = preferences->getPreference ( 3 ); 69 int showcleared = preferences->getPreference ( 3 );
71 70
72 // select the from transfers to display 71 // select the from transfers to display
73 char **results; 72 char **results;
74 int rows, columns; 73 int rows, columns;
75 if ( account->getParentAccountID ( accountid ) == -1 && children == TRUE ) 74 if ( account->getParentAccountID ( accountid ) == -1 && children == TRUE )
76 { 75 {
77 if ( showcleared == 0 ) 76 if ( showcleared == 0 )
78 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where cleared = 0 and toparent = %i;", &results, &rows, &columns, 0, accountid ); 77 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where cleared = 0 and toparent = %i;", &results, &rows, &columns, 0, accountid );
79 else 78 else
80 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where toparent = %i;", &results, &rows, &columns, 0, accountid ); 79 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where toparent = %i;", &results, &rows, &columns, 0, accountid );
81 } 80 }
82 else 81 else
83 { 82 {
84 if ( showcleared == 0 ) 83 if ( showcleared == 0 )
85 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where cleared = 0 and toaccount = %i;", &results, &rows, &columns, 0, accountid ); 84 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where cleared = 0 and toaccount = %i;", &results, &rows, &columns, 0, accountid );
86 else 85 else
87 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where toaccount = %i;", &results, &rows, &columns, 0, accountid ); 86 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where toaccount = %i;", &results, &rows, &columns, 0, accountid );
88 } 87 }
89 88
90 // iterate through the list and display the from items 89 // iterate through the list and display the from items
91 int counter = 7; 90 int counter = 7;
92 int position = 0; 91 int position = 0;
93 while ( counter < ( ( rows + 1 ) * columns ) ) 92 while ( counter < ( ( rows + 1 ) * columns ) )
94 { 93 {
95 // construct the date 94 // construct the date
96 QString daystring = results [ counter ]; 95 QString daystring = results [ counter ];
97 int day = daystring.toInt (); 96 int day = daystring.toInt ();
98 QString monthstring = results [ counter + 1 ]; 97 QString monthstring = results [ counter + 1 ];
99 int month = monthstring.toInt (); 98 int month = monthstring.toInt ();
100 QString yearstring = results [ counter + 2 ]; 99 QString yearstring = results [ counter + 2 ];
101 int year = yearstring.toInt (); 100 int year = yearstring.toInt ();
102 QString date = preferences->getDate ( year, month, day ); 101 QString date = preferences->getDate ( year, month, day );
103 QDate testdate ( year, month, day ); 102 QDate testdate ( year, month, day );
104 103
105 //construct the amount and id strings 104 //construct the amount and id strings
106 QString amount = results [ counter + 3 ]; 105 QString amount = results [ counter + 3 ];
107 QString id = results [ counter + 4 ]; 106 QString id = results [ counter + 4 ];
108 107
109 // construct the transaction name 108 // construct the transaction name
110 QString transactionname = "FROM: "; 109 QString transactionname = "FROM: ";
111 QString temp1 = results [ counter + 5 ]; 110 QString temp1 = results [ counter + 5 ];
112 transactionname.append ( account->getAccountName ( temp1.toInt() ) ); 111 transactionname.append ( account->getAccountName ( temp1.toInt() ) );
113 112
114 QString toaccount = account->getAccountName ( atol ( results [ counter + 6 ] ) ); 113 QString toaccount = account->getAccountName ( atol ( results [ counter + 6 ] ) );
115 114
116 if ( testdate >= displaydate || showcleared == 0 ) 115 if ( testdate >= displaydate || showcleared == 0 )
117 { 116 {
118 // display this transfer 117 // display this transfer
119 if ( account->getParentAccountID ( accountid ) == -1 ) 118 if ( account->getParentAccountID ( accountid ) == -1 )
120 { 119 {
121 if ( showcleared == 1 && getCleared ( id.toInt() ) == 1 ) 120 if ( showcleared == 1 && getCleared ( id.toInt() ) == 1 )
122 ColorListItem *item = new ColorListItem ( listview, date, transactionname, amount, id, toaccount ); 121 ColorListItem *item = new ColorListItem ( listview, date, transactionname, amount, id, toaccount );
123 else 122 else
124 QListViewItem *item = new QListViewItem ( listview, date, transactionname, amount, id, toaccount ); 123 QListViewItem *item = new QListViewItem ( listview, date, transactionname, amount, id, toaccount );
125 } 124 }
126 else 125 else
127 { 126 {
128 if ( showcleared == 1 && getCleared ( id.toInt() ) == 1 ) 127 if ( showcleared == 1 && getCleared ( id.toInt() ) == 1 )
129 ColorListItem *item = new ColorListItem ( listview, date, transactionname, amount, id ); 128 ColorListItem *item = new ColorListItem ( listview, date, transactionname, amount, id );
130 else 129 else
131 QListViewItem *item = new QListViewItem ( listview, date, transactionname, amount, id ); 130 QListViewItem *item = new QListViewItem ( listview, date, transactionname, amount, id );
132 } 131 }
133 } 132 }
134 counter = counter + 7; 133 counter = counter + 7;
135 } 134 }
136 135
137 // select the to transfers to display 136 // select the to transfers to display
138 char **toresults; 137 char **toresults;
139 rows = 0; 138 rows = 0;
140 columns = 0; 139 columns = 0;
141 if ( account->getParentAccountID ( accountid ) == -1 && children == TRUE ) 140 if ( account->getParentAccountID ( accountid ) == -1 && children == TRUE )
142 { 141 {
143 if ( showcleared == 0 ) 142 if ( showcleared == 0 )
144 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where cleared = 0 and fromparent = %i;", &toresults, &rows, &columns, 0, accountid ); 143 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where cleared = 0 and fromparent = %i;", &toresults, &rows, &columns, 0, accountid );
145 else 144 else
146 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where fromparent = %i;", &toresults, &rows, &columns, 0, accountid ); 145 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where fromparent = %i;", &toresults, &rows, &columns, 0, accountid );
147 } 146 }
148 else 147 else
149 { 148 {
150 if ( showcleared == 0 ) 149 if ( showcleared == 0 )
151 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where cleared = 0 and fromaccount = %i;", &toresults, &rows, &columns, 0, accountid ); 150 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where cleared = 0 and fromaccount = %i;", &toresults, &rows, &columns, 0, accountid );
152 else 151 else
153 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where fromaccount = %i;", &toresults, &rows, &columns, 0, accountid ); 152 sqlite_get_table_printf ( db, "select day, month, year, amount, transferid, fromaccount, toaccount from transfers where fromaccount = %i;", &toresults, &rows, &columns, 0, accountid );
154 } 153 }
155 154
156 // iterate through the list and display the from items 155 // iterate through the list and display the from items
157 counter = 7; 156 counter = 7;
158 position = 0; 157 position = 0;
159 while ( counter < ( ( rows + 1 ) * columns ) ) 158 while ( counter < ( ( rows + 1 ) * columns ) )
160 { 159 {
161 // construct the date 160 // construct the date
162 QString daystring = toresults [ counter ]; 161 QString daystring = toresults [ counter ];
163 int day = daystring.toInt (); 162 int day = daystring.toInt ();
164 QString monthstring = toresults [ counter + 1 ]; 163 QString monthstring = toresults [ counter + 1 ];
165 int month = monthstring.toInt (); 164 int month = monthstring.toInt ();
166 QString yearstring = toresults [ counter + 2 ]; 165 QString yearstring = toresults [ counter + 2 ];
167 int year = yearstring.toInt (); 166 int year = yearstring.toInt ();
168 QString date = preferences->getDate ( year, month, day ); 167 QString date = preferences->getDate ( year, month, day );
169 QDate testdate ( year, month, day ); 168 QDate testdate ( year, month, day );
170 169
171 //construct the amount and id strings 170 //construct the amount and id strings
172 QString amount = toresults [ counter + 3 ]; 171 QString amount = toresults [ counter + 3 ];
173 amount.prepend ( "-" ); 172 amount.prepend ( "-" );
174 QString id = toresults [ counter + 4 ]; 173 QString id = toresults [ counter + 4 ];
175 174
176 // construct the transaction name 175 // construct the transaction name
177 QString transactionname = "TO: "; 176 QString transactionname = "TO: ";
178 QString temp1 = toresults [ counter + 6 ]; 177 QString temp1 = toresults [ counter + 6 ];
179 transactionname.append ( account->getAccountName ( temp1.toInt() ) ); 178 transactionname.append ( account->getAccountName ( temp1.toInt() ) );
180 179
181 QString fromaccount = account->getAccountName ( atol ( toresults [ counter + 5 ] ) ); 180 QString fromaccount = account->getAccountName ( atol ( toresults [ counter + 5 ] ) );
182 181
183 if ( testdate >= displaydate || showcleared == 0 ) 182 if ( testdate >= displaydate || showcleared == 0 )
184 { 183 {
185 // display this transfer 184 // display this transfer
186 if ( account->getParentAccountID ( accountid ) == -1 ) 185 if ( account->getParentAccountID ( accountid ) == -1 )
187 { 186 {
188 if ( showcleared == 1 && getCleared ( id.toInt() ) == 1 ) 187 if ( showcleared == 1 && getCleared ( id.toInt() ) == 1 )
189 ColorListItem *item = new ColorListItem ( listview, date, transactionname, amount, id, fromaccount ); 188 ColorListItem *item = new ColorListItem ( listview, date, transactionname, amount, id, fromaccount );
190 else 189 else
191 QListViewItem *item = new QListViewItem ( listview, date, transactionname, amount, id, fromaccount ); 190 QListViewItem *item = new QListViewItem ( listview, date, transactionname, amount, id, fromaccount );
192 } 191 }
193 else 192 else
194 { 193 {
195 if ( showcleared == 1 && getCleared ( id.toInt() ) == 1 ) 194 if ( showcleared == 1 && getCleared ( id.toInt() ) == 1 )
196 ColorListItem *item = new ColorListItem ( listview, date, transactionname, amount, id ); 195 ColorListItem *item = new ColorListItem ( listview, date, transactionname, amount, id );
197 else 196 else