]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java
restore account name filter in the transaction list
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / async / UpdateTransactionsTask.java
index b3e2e0c519793173b87f3b60dcdb666948a02960..178db99fb473776bf4ad5cfaf71cf45724b58001 100644 (file)
@@ -32,35 +32,38 @@ import java.util.List;
 public class UpdateTransactionsTask extends AsyncTask<String, Void, List<LedgerTransaction>> {
     protected List<LedgerTransaction> doInBackground(String[] filterAccName) {
         Data.backgroundTaskCount.incrementAndGet();
+        String profile_uuid = Data.profile.get().getUuid();
         try {
             ArrayList<LedgerTransaction> 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;