summaryrefslogtreecommitdiff
path: root/noncore/apps/qashmoney/transactiondisplay.cpp
Side-by-side diff
Diffstat (limited to 'noncore/apps/qashmoney/transactiondisplay.cpp') (more/less context) (ignore whitespace changes)
-rwxr-xr-xnoncore/apps/qashmoney/transactiondisplay.cpp49
1 files changed, 43 insertions, 6 deletions
diff --git a/noncore/apps/qashmoney/transactiondisplay.cpp b/noncore/apps/qashmoney/transactiondisplay.cpp
index 14f5641..ae6223d 100755
--- a/noncore/apps/qashmoney/transactiondisplay.cpp
+++ b/noncore/apps/qashmoney/transactiondisplay.cpp
@@ -118,26 +118,27 @@ void TransactionDisplay::addTransaction ()
if ( newtransaction->getDateEdited () == TRUE )
transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ),
newtransaction->transactionnumber->text().toInt(), newtransaction->getDay(), newtransaction->getMonth(), newtransaction->getYear(), amount, cleared, newtransaction->getCurrentBudget(),
newtransaction->getCurrentLineItem() );
else
transaction->addTransaction ( newtransaction->getDescription(), newtransaction->transactionname->currentText(), accountid, account->getParentAccountID ( accountid ),
newtransaction->transactionnumber->text().toInt(), defaultday, defaultmonth, defaultyear, amount, cleared, newtransaction->getCurrentBudget(), newtransaction->getCurrentLineItem() );
// redisplay transactions
listview->clear();
QString displaytext = "%";
displaytext.prepend ( limitbox->text() );
+ setTransactionDisplayDate ();
if ( transaction->getNumberOfTransactions() > 0 )
- transaction->displayTransactions ( listview, accountid, children, displaytext );
+ transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
// redisplay transfers
if ( transfer->getNumberOfTransfers() > 0 )
transfer->displayTransfers ( listview, accountid, children );
// add the transaction amount to the account it's associated with
// and update its parent account balance if necessary
account->updateAccountBalance ( accountid );
if ( account->getParentAccountID ( accountid ) != -1 )
account->changeParentAccountBalance ( account->getParentAccountID ( accountid ) );
// format then reset the account balance
@@ -356,26 +357,27 @@ void TransactionDisplay::editTransaction ()
amount, cleared, newtransaction->getCurrentBudget(), newtransaction->getCurrentLineItem(), transactionid );
updateAndDisplay ( transaction->getAccountID ( transactionid ) );
}
}
void TransactionDisplay::updateAndDisplay ( int id )
{
// redisplay transactions
listview->clear();
QString displaytext = "%";
displaytext.prepend ( limitbox->text() );
+ setTransactionDisplayDate ();
if ( transaction->getNumberOfTransactions() > 0 )
- transaction->displayTransactions ( listview, accountid, children, displaytext );
+ transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
// redisplay transfers
if ( transfer->getNumberOfTransfers() > 0 )
transfer->displayTransfers ( listview, accountid, children );
// add the transaction amount to the account it's associated with
// and update its parent account balance if necessary
account->updateAccountBalance ( id );
if ( account->getParentAccountID ( id ) != -1 )
account->changeParentAccountBalance ( account->getParentAccountID ( id ) );
// format then reset the account balance
@@ -400,26 +402,27 @@ void TransactionDisplay::deleteTransaction ()
// in that case we will have to update balances for the parent
// which is represented by accountid and the child account
// which will be represented by childaccountid
int childaccountid = -1;
if ( listview->columns() == 5 )
childaccountid = transaction->getAccountID ( transactionid );
transaction->deleteTransaction ( transactionid );
listview->clear();
QString displaytext = "%";
displaytext.prepend ( limitbox->text() );
+ setTransactionDisplayDate ();
if ( transaction->getNumberOfTransactions() > 0 )
- transaction->displayTransactions ( listview, accountid, children, displaytext );
+ transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
if ( transfer->getNumberOfTransfers() > 0 )
transfer->displayTransfers ( listview, accountid, children );
// if we are viewing different child accounts through the parent account
// ie if there are five columns and the parentid is -1
// update the accountid ( which is the parent ) and update the child account
// balance. Get its accountid from the transactionid
account->updateAccountBalance ( accountid ); // will update either a parent or child
if ( account->getParentAccountID ( accountid ) != -1 ) // update its parent if there is one
account->changeParentAccountBalance ( account->getParentAccountID ( accountid ) );
if ( childaccountid != -1 ) // we've set childaccountid
@@ -431,26 +434,27 @@ void TransactionDisplay::deleteTransaction ()
else // takes care of deleting transfers
{
// get the accountids before we delete the transfer
int fromaccountid = transfer->getFromAccountID ( transactionid );
int toaccountid = transfer->getToAccountID ( transactionid );
// delete the transfer and redisplay transactions
transfer->deleteTransfer ( transactionid );
listview->clear();
QString displaytext = "%";
displaytext.prepend ( limitbox->text() );
+ setTransactionDisplayDate ();
if ( transaction->getNumberOfTransactions() > 0 )
- transaction->displayTransactions ( listview, accountid, children, displaytext );
+ transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
if ( transfer->getNumberOfTransfers() > 0 )
transfer->displayTransfers ( listview, accountid, children );
// for the from account
account->updateAccountBalance ( fromaccountid );
if ( account->getParentAccountID ( fromaccountid ) != -1 )
account->changeParentAccountBalance ( account->getParentAccountID ( fromaccountid ) );
// for the to account
account->updateAccountBalance ( toaccountid );
if ( account->getParentAccountID ( toaccountid ) != -1 )
@@ -483,26 +487,27 @@ void TransactionDisplay::toggleTransaction ()
}
else
{
if ( transfer->getCleared ( transactionid ) == 0 )
transfer->setCleared ( transactionid, 1 );
else
transfer->setCleared ( transactionid, 0 );
}
listview->clear();
QString displaytext = "%";
displaytext.prepend ( limitbox->text() );
+ setTransactionDisplayDate ();
if ( transaction->getNumberOfTransactions() > 0 )
- transaction->displayTransactions ( listview, accountid, children, displaytext );
+ transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
if ( transfer->getNumberOfTransfers() != 0 )
transfer->displayTransfers ( listview, accountid, children );
}
void TransactionDisplay::redisplayAccountBalance ()
{
QString accountbalance = account->getAccountBalance ( accountid );
balance->setText ( accountbalance );
}
void TransactionDisplay::setChildren ( bool c )
@@ -542,25 +547,28 @@ void TransactionDisplay::saveColumnSize ( int column, int oldsize, int newsize )
preferences->changeColumnPreference ( column + 3, newsize );
else if ( listview->columns() == 5 && column != 4 )
preferences->changeColumnPreference ( column + 6, newsize );
else
preferences->changeColumnPreference ( 9, newsize );
}
void TransactionDisplay::limitDisplay ( const QString &text )
{
listview->clear ();
QString displaytext = "%";
displaytext.prepend ( text );
- transaction->displayTransactions ( listview, accountid, children, displaytext );
+ setTransactionDisplayDate ();
+ if ( transaction->getNumberOfTransactions() > 0 )
+ transaction->displayTransactions ( listview, accountid, children, displaytext, displaydate );
+
if ( displaytext.length() == 1 || preferences->getPreference ( 6 ) == 1 )
transfer->displayTransfers ( listview, accountid, children );
}
int TransactionDisplay::getIDColumn ()
{
int counter;
int columns = listview->columns();
for ( counter = 0; counter <= columns; counter++ )
if ( listview->header()->label ( counter ).length() == 0 )
return counter;
}
@@ -575,12 +583,41 @@ void TransactionDisplay::showTransactionNotes ()
QDialog *description = new QDialog ( this, "description", TRUE );
description->setCaption ( "Notes" );
QMultiLineEdit *notes = new QMultiLineEdit ( description );
notes->setFixedSize ( ( int ) (this->width() * 0.75 ), ( int ) ( this->height() * 0.5 ) );
notes->setWrapColumnOrWidth ( ( int ) (this->width() * 0.75 ) );
notes->setWordWrap ( QMultiLineEdit::WidgetWidth );
notes->setEnabled ( FALSE );
notes->setText ( transaction->getTransactionDescription ( transactionid ) );
description->show();
}
}
+void TransactionDisplay::setTransactionDisplayDate ()
+ {
+ // determine how many days of transactions to show
+ int limittype = preferences->getPreference ( 7 );
+ if ( limittype != 5 ) // set today's date if we are not showing all transactions
+ {
+ QDate today = QDate::currentDate ();
+ switch ( limittype ) // if we are not showing all transactions
+ {
+ case 0: // viewing two weeks
+ displaydate = today.addDays ( -14 );
+ break;
+ case 1: // viewing one month
+ displaydate = today.addDays ( -30 );
+ break;
+ case 2: // three months
+ displaydate = today.addDays ( -90 );
+ break;
+ case 3: // six months
+ displaydate = today.addDays ( -180 );
+ break;
+ case 4: // one year
+ displaydate = today.addDays ( -365 );
+ break;
+ }
+ }
+ else
+ displaydate = QDate ( 1, 1, 1000 );
+ }