]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java
somewhat complete profile implementation
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / async / UpdateTransactionsTask.java
index 0509f3531cd887236c7c61778d692635ed4709f5..22511560679e9c9e192f98b3cd1c74df292add00 100644 (file)
@@ -32,6 +32,7 @@ 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<>();
 
@@ -41,27 +42,29 @@ public class UpdateTransactionsTask extends AsyncTask<String, Void, List<LedgerT
             String sql;
             String[] params;
 
-            sql = "SELECT id FROM transactions  ORDER BY date desc, id desc";
-            params = null;
+            sql = "SELECT id FROM transactions WHERE profile=? ORDER BY date desc, id desc";
+            params = new String[]{profile_uuid};
 
             if (hasFilter) {
                 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;
             }
 
-            Log.d("tmp", sql);
-            try (SQLiteDatabase db = MLDB.getReadableDatabase()) {
-                try (Cursor cursor = db.rawQuery(sql, params)) {
-                    while (cursor.moveToNext()) {
-                        if (isCancelled()) return null;
+            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)));
-                    }
-                    Data.transactions.set(newList);
-                    Log.d("transactions", "transaction value updated");
+                    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("UTT", "transaction list value updated");
             }
 
             return newList;