X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fdao%2FTransactionDAO.java;h=03f43533fa05641d8505f233323614f95613fd6f;hp=c03da12b1649befe77e421e5c7f9e8bb1153cd2c;hb=3a3e22991c6e4666eb5c800bfd49ee7c271b5a32;hpb=68065ad8c5267a82c9d3e024a98e1adb3c3bdfd0 diff --git a/app/src/main/java/net/ktnx/mobileledger/dao/TransactionDAO.java b/app/src/main/java/net/ktnx/mobileledger/dao/TransactionDAO.java index c03da12b..03f43533 100644 --- a/app/src/main/java/net/ktnx/mobileledger/dao/TransactionDAO.java +++ b/app/src/main/java/net/ktnx/mobileledger/dao/TransactionDAO.java @@ -55,13 +55,6 @@ public abstract class TransactionDAO extends BaseDAO { @Delete public abstract void deleteSync(List items); - @Query("SELECT * FROM transactions") - public abstract LiveData> getAll(); - - // not useful for now -// @Transaction -// @Query("SELECT * FROM patterns") -// List getPatternsWithAccounts(); @Query("SELECT * FROM transactions WHERE id = :id") public abstract LiveData getById(long id); @@ -93,11 +86,26 @@ public abstract class TransactionDAO extends BaseDAO { public abstract TransactionWithAccounts getFirstByDescriptionHavingAccountSync( @NonNull String description, @NonNull String accountTerm); - @Query("SELECT * from transactions WHERE profile_id = :profileId") + @Query("SELECT * from transactions WHERE profile_id = :profileId ORDER BY " + + "year desc, month desc, day desc, id desc") public abstract List allForProfileSync(long profileId); @Query("SELECT generation FROM transactions WHERE profile_id = :profileId LIMIT 1") protected abstract TransactionGenerationContainer getGenerationPOJOSync(long profileId); + + @androidx.room.Transaction + @Query("SELECT * FROM transactions WHERE profile_id = :profileId") + public abstract List getAllWithAccountsSync(long profileId); + + @androidx.room.Transaction + @Query("SELECT distinct(tr.id), tr.ledger_id, tr.profile_id, tr.data_hash, tr.year, tr.month," + + " tr.day, tr.description, tr.comment, tr.generation FROM transactions tr JOIN " + + "transaction_accounts ta ON ta.transaction_id=tr.id WHERE ta.account_name LIKE " + + ":accountName||'%' AND ta.amount <> 0 AND tr.profile_id = :profileId ORDER BY tr.year " + + "desc, tr.month desc, tr.day desc, tr.id desc") + public abstract List getAllWithAccountsFilteredSync(long profileId, + String accountName); + public long getGenerationSync(long profileId) { TransactionGenerationContainer result = getGenerationPOJOSync(profileId);