]> git.ktnx.net Git - mobile-ledger.git/commitdiff
add database support for transaction-level comments
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Sun, 14 Jun 2020 11:25:17 +0000 (14:25 +0300)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Tue, 16 Jun 2020 05:23:36 +0000 (05:23 +0000)
app/src/main/java/net/ktnx/mobileledger/model/LedgerTransaction.java
app/src/main/java/net/ktnx/mobileledger/model/MobileLedgerProfile.java
app/src/main/java/net/ktnx/mobileledger/utils/MobileLedgerDatabase.java
app/src/main/res/raw/create_db.sql
app/src/main/res/raw/sql_33.sql [new file with mode: 0644]

index db5bbc7bf584286c2aac1de0e578e2c7e3771192..096d248f4ccf3ae1926179d4fee397f3811889de 100644 (file)
@@ -170,7 +170,7 @@ public class LedgerTransaction {
             return;
 
         try (Cursor cTr = db.rawQuery(
-                "SELECT date, description from transactions WHERE profile=? AND id=?",
+                "SELECT date, description, comment from transactions WHERE profile=? AND id=?",
                 new String[]{profile, String.valueOf(id)}))
         {
             if (cTr.moveToFirst()) {
@@ -185,6 +185,7 @@ public class LedgerTransaction {
                                     dateString, id));
                 }
                 description = cTr.getString(1);
+                comment = cTr.getString(2);
 
                 try (Cursor cAcc = db.rawQuery(
                         "SELECT account_name, amount, currency, comment FROM " +
index b31ddef396741d50971c2716de52a6e4ab4a5d81..9d417955dbe259040f54995d9441edb791ddfea3 100644 (file)
@@ -292,10 +292,12 @@ public final class MobileLedgerProfile {
         db.execSQL("DELETE from transaction_accounts WHERE profile = ? and transaction_id=?",
                 new Object[]{uuid, tr.getId()});
 
-        db.execSQL("INSERT INTO transactions(profile, id, date, description, data_hash, keep) " +
-                   "values(?,?,?,?,?,1)",
+        db.execSQL(
+                "INSERT INTO transactions(profile, id, date, description, comment, data_hash, " +
+                "keep) " +
+                "values(?,?,?,?,?,?,1)",
                 new Object[]{uuid, tr.getId(), Globals.formatLedgerDate(tr.getDate()),
-                             tr.getDescription(), tr.getDataHash()
+                             tr.getDescription(), tr.getComment(), tr.getDataHash()
                 });
 
         for (LedgerTransactionAccount item : tr.getAccounts()) {
index 85eacb025c3a2a848ba11674a90c96eeb6412ee6..eeb6873e722f00e30c651e269d84549d77663e86 100644 (file)
@@ -34,7 +34,7 @@ import static net.ktnx.mobileledger.utils.Logger.debug;
 
 public class MobileLedgerDatabase extends SQLiteOpenHelper {
     private static final String DB_NAME = "MoLe.db";
-    private static final int LATEST_REVISION = 32;
+    private static final int LATEST_REVISION = 33;
     private static final String CREATE_DB_SQL = "create_db";
 
     private final Application mContext;
index 583e6fc1af0c66f79bd876d4efb0f981970039b7..175d65744b274e0722b0af7f59da7c38b2880abf 100644 (file)
@@ -6,10 +6,10 @@ create table account_values(profile varchar not null, account varchar not null,
 create unique index un_account_values on account_values(profile,account,currency);
 create table description_history(description varchar not null primary key, keep boolean, description_upper varchar);
 create table profiles(uuid varchar not null primary key, name not null, url not null, use_authentication boolean not null, auth_user varchar, auth_password varchar, order_no integer, permit_posting boolean default 0, theme integer default -1, preferred_accounts_filter varchar, future_dates integer, api_version integer, show_commodity_by_default boolean default 0, default_commodity varchar, show_comments_by_default boolean default 1);
-create table transactions(profile varchar not null, id integer not null, data_hash varchar not null, date varchar not null, description varchar not null, keep boolean not null default 0);
+create table transactions(profile varchar not null, id integer not null, data_hash varchar not null, date varchar not null, description varchar not null, comment varchar, keep boolean not null default 0);
 create unique index un_transactions_id on transactions(profile,id);
 create unique index un_transactions_data_hash on transactions(profile,data_hash);
 create index idx_transaction_description on transactions(description);
 create table transaction_accounts(profile varchar not null, transaction_id integer not null, account_name varchar not null, currency varchar not null default '', amount decimal not null, comment varchar, constraint fk_transaction_accounts_acc foreign key(profile,account_name) references accounts(profile,account_name), constraint fk_transaction_accounts_trn foreign key(profile, transaction_id) references transactions(profile,id));
 create table currencies(id integer not null primary key, name varchar not null, position varchar not null, has_gap boolean not null);
--- updated to revision 30
\ No newline at end of file
+-- updated to revision 33
\ No newline at end of file
diff --git a/app/src/main/res/raw/sql_33.sql b/app/src/main/res/raw/sql_33.sql
new file mode 100644 (file)
index 0000000..e6f5249
--- /dev/null
@@ -0,0 +1 @@
+alter table transactions add comment varchar;
\ No newline at end of file