import net.ktnx.mobileledger.utils.MLDB;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.UUID;
db.endTransaction();
}
}
- public void storeAccount(LedgerAccount acc) {
- SQLiteDatabase db = MLDB.getWritableDatabase();
-
+ public void storeAccount(SQLiteDatabase db, LedgerAccount acc) {
// replace into is a bad idea because it would reset hidden to its default value
// we like the default, but for new accounts only
db.execSQL("update accounts set level = ?, keep = 1 where profile=? and name = ?",
acc.getLevel()
});
}
- public void storeAccountValue(String name, String currency, Float amount) {
- SQLiteDatabase db = MLDB.getWritableDatabase();
+ public void storeAccountValue(SQLiteDatabase db, String name, String currency, Float amount) {
db.execSQL("replace into account_values(profile, account, " +
"currency, value, keep) values(?, ?, ?, ?, 1);",
new Object[]{uuid, name, currency, amount});
}
- public void storeTransaction(LedgerTransaction tr) {
- SQLiteDatabase db = MLDB.getWritableDatabase();
+ public void storeTransaction(SQLiteDatabase db, LedgerTransaction tr) {
tr.fillDataHash();
db.execSQL("DELETE from transactions WHERE profile=? and id=?",
new Object[]{uuid, tr.getId()});
public void setThemeId(Object o) {
setThemeId(Integer.valueOf(String.valueOf(o)).intValue());
}
+ public void markTransactionsAsNotPresent(SQLiteDatabase db) {
+ db.execSQL("UPDATE transactions set keep=0 where profile=?", new String[]{uuid});
+
+ }
+ public void markAccountsAsNotPresent(SQLiteDatabase db) {
+ db.execSQL("update account_values set keep=0 where profile=?;", new String[]{uuid});
+ db.execSQL("update accounts set keep=0 where profile=?;", new String[]{uuid});
+
+ }
+ public void deleteNotPresentAccounts(SQLiteDatabase db) {
+ db.execSQL("delete from account_values where keep=0 and profile=?", new String[]{uuid});
+ db.execSQL("delete from accounts where keep=0 and profile=?", new String[]{uuid});
+ }
+ public void markTransactionAsPresent(SQLiteDatabase db, LedgerTransaction transaction) {
+ db.execSQL("UPDATE transactions SET keep = 1 WHERE profile = ? and id=?",
+ new Object[]{uuid, transaction.getId()
+ });
+ }
+ public void markTransactionsBeforeTransactionAsPresent(SQLiteDatabase db,
+ LedgerTransaction transaction) {
+ db.execSQL("UPDATE transactions SET keep=1 WHERE profile = ? and id < ?",
+ new Object[]{uuid, transaction.getId()
+ });
+
+ }
+ public void deleteNotPresentTransactions(SQLiteDatabase db) {
+ db.execSQL("DELETE FROM transactions WHERE profile=? AND keep = 0", new String[]{uuid});
+ }
+ public void setLastUpdateStamp() {
+ Log.d("db", "Updating transaction value stamp");
+ Date now = new Date();
+ setLongOption(MLDB.OPT_LAST_SCRAPE, now.getTime());
+ Data.lastUpdateDate.set(now);
+ }
}