]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/LedgerTransaction.java
machinery for retrieving transaction journal from hledger-web
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / LedgerTransaction.java
index 51716cd1d1676b1c45ae018ae2a13747a6cd1270..ad456cef740873d4ab7c2f2e5c5a6268292416d9 100644 (file)
@@ -1,20 +1,43 @@
+/*
+ * Copyright © 2018 Damyan Ivanov.
+ * This file is part of Mobile-Ledger.
+ * Mobile-Ledger is free software: you can distribute it and/or modify it
+ * under the term of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your opinion), any later version.
+ *
+ * Mobile-Ledger is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License terms for details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mobile-Ledger. If not, see <https://www.gnu.org/licenses/>.
+ */
+
 package net.ktnx.mobileledger;
 
+import android.database.sqlite.SQLiteDatabase;
+
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
 class LedgerTransaction {
+    private String id;
     private String date;
     private String description;
     private List<LedgerTransactionItem> items;
 
-    LedgerTransaction(String date, String description) {
+    LedgerTransaction(String id, String date, String description) {
+        this.id = id;
         this.date = date;
         this.description = description;
         this.items = new ArrayList<>();
     }
-
+    LedgerTransaction(String date, String description) {
+        this(null, date, description);
+    }
     void add_item(LedgerTransactionItem item) {
         items.add(item);
     }
@@ -49,4 +72,18 @@ class LedgerTransaction {
             }
         };
     }
+    public String getId() {
+        return id;
+    }
+
+    void insertInto(SQLiteDatabase db) {
+        db.execSQL("INSERT INTO transactions(id, date, " + "description) values(?, ?, ?)",
+                new String[]{id, date, description});
+
+        for(LedgerTransactionItem item : items) {
+            db.execSQL("INSERT INTO transaction_accounts(transaction_id, account_name, amount, "
+                    + "currency) values(?, ?, ?, ?)", new Object[]{id, item.getAccountName(),
+                                                                   item.getAmount(), item.getCurrency()});
+        }
+    }
 }