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 = ?",
new Object[]{acc.getLevel(), uuid, acc.getName()});
- db.execSQL("insert into accounts(profile, name, name_upper, parent_name, level) " +
- "select ?,?,?,?,? where (select changes() = 0)",
+ db.execSQL("insert into accounts(profile, name, name_upper, parent_name, level, keep) " +
+ "select ?,?,?,?,?,1 where (select changes() = 0)",
new Object[]{uuid, acc.getName(), acc.getName().toUpperCase(), acc.getParentName(),
acc.getLevel()
});
+// Log.d("accounts", String.format("Stored account '%s' in DB [%s]", acc.getName(), uuid));
}
- 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 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);
+ }
}