Skip to content

Commit dc5a365

Browse files
committed
delete all splits and transaction
1 parent db4c848 commit dc5a365

4 files changed

Lines changed: 15 additions & 12 deletions

File tree

app/src/org/gnucash/android/db/AccountsDbAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ public boolean destructiveDeleteAccount(long rowId){
296296
mDb.delete(TransactionEntry.TABLE_NAME,
297297
TransactionEntry.COLUMN_UID + " NOT IN ( SELECT DISTINCT "
298298
+ TransactionEntry.TABLE_NAME + "_" + TransactionEntry.COLUMN_UID
299-
+ " FROM trans_split_acct",
299+
+ " FROM trans_split_acct )",
300300
null);
301301
deleteRecord(AccountEntry.TABLE_NAME, rowId);
302302
mDb.setTransactionSuccessful();

app/src/org/gnucash/android/db/SplitsDbAdapter.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -515,13 +515,19 @@ public long getTransactionID(String transactionUID){
515515
* @param transactionId Database record ID of the transaction
516516
* @return <code>true</code> if at least one split was deleted, <code>false</code> otherwise.
517517
*/
518-
public boolean deleteSplitsForTransaction(long transactionId){
518+
public boolean deleteSplitsForTransaction(long transactionId) {
519519
String trxUID = getTransactionUID(transactionId);
520-
boolean result = mDb.delete(SplitEntry.TABLE_NAME,
521-
SplitEntry.COLUMN_TRANSACTION_UID + "=?",
522-
new String[]{trxUID}) > 0;
523-
result &= deleteTransaction(transactionId);
524-
return result;
520+
mDb.beginTransaction();
521+
try {
522+
mDb.delete(SplitEntry.TABLE_NAME,
523+
SplitEntry.COLUMN_TRANSACTION_UID + "=?",
524+
new String[]{trxUID});
525+
boolean result = deleteTransaction(transactionId);
526+
mDb.setTransactionSuccessful();
527+
return result;
528+
} finally {
529+
mDb.endTransaction();
530+
}
525531
}
526532

527533
/**

app/src/org/gnucash/android/db/TransactionsDbAdapter.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -439,8 +439,7 @@ public String getUID(long transactionId){
439439
@Override
440440
public boolean deleteRecord(long rowId){
441441
Log.d(TAG, "Delete transaction with record Id: " + rowId);
442-
return mSplitsDbAdapter.deleteSplitsForTransaction(rowId) &&
443-
deleteRecord(TransactionEntry.TABLE_NAME, rowId);
442+
return mSplitsDbAdapter.deleteSplitsForTransaction(rowId);
444443
}
445444

446445
/**

app/src/org/gnucash/android/ui/transaction/TransactionsListFragment.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,9 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
117117
return true;
118118

119119
case R.id.context_menu_delete:
120-
SplitsDbAdapter splitsDbAdapter = new SplitsDbAdapter(getActivity());
121120
for (long id : getListView().getCheckedItemIds()) {
122-
splitsDbAdapter.deleteSplitsForTransactionAndAccount(mTransactionsDbAdapter.getUID(id), mAccountUID);
121+
mTransactionsDbAdapter.deleteRecord(id);
123122
}
124-
splitsDbAdapter.close();
125123
refresh();
126124
mode.finish();
127125
WidgetConfigurationActivity.updateAllWidgets(getActivity());

0 commit comments

Comments
 (0)