X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fasync%2FUpdateTransactionsTask.java;h=178db99fb473776bf4ad5cfaf71cf45724b58001;hp=b3e2e0c519793173b87f3b60dcdb666948a02960;hb=2e6d7c5f759986f89a867ee5b9162496019d5130;hpb=1aadcdeec93fc8892a8323735334890cd8859c80 diff --git a/app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java b/app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java index b3e2e0c5..178db99f 100644 --- a/app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java +++ b/app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java @@ -32,35 +32,38 @@ import java.util.List; public class UpdateTransactionsTask extends AsyncTask> { protected List doInBackground(String[] filterAccName) { Data.backgroundTaskCount.incrementAndGet(); + String profile_uuid = Data.profile.get().getUuid(); try { ArrayList newList = new ArrayList<>(); - boolean hasFilter = (filterAccName != null) && (filterAccName.length > 0) && - (filterAccName[0] != null) && !filterAccName[0].isEmpty(); - String sql; String[] params; - sql = "SELECT id FROM transactions ORDER BY date desc, id desc"; - params = null; + if (filterAccName[0] == null) { + sql = "SELECT id FROM transactions WHERE profile=? ORDER BY date desc, id desc"; + params = new String[]{profile_uuid}; - if (hasFilter) { + } + else { sql = "SELECT distinct tr.id from transactions tr JOIN transaction_accounts ta " + - "ON ta.transaction_id=tr.id WHERE ta.account_name LIKE ?||'%' AND ta" + + "ON ta.transaction_id=tr.id AND ta.profile=tr.profile WHERE tr.profile=? " + + "and ta.account_name LIKE ?||'%' AND ta" + ".amount <> 0 ORDER BY tr.date desc, tr.id desc"; - params = filterAccName; + params = new String[]{profile_uuid, filterAccName[0]}; } - Log.d("tmp", sql); + Log.d("UTT", sql); SQLiteDatabase db = MLDB.getReadableDatabase(); try (Cursor cursor = db.rawQuery(sql, params)) { while (cursor.moveToNext()) { if (isCancelled()) return null; - newList.add(new LedgerTransaction(cursor.getInt(0))); + int transaction_id = cursor.getInt(0); + newList.add(new LedgerTransaction(transaction_id)); +// Log.d("UTT", String.format("got transaction %d", transaction_id)); } Data.transactions.set(newList); - Log.d("transactions", "transaction value updated"); + Log.d("UTT", "transaction list value updated"); } return newList;