]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/model/LedgerAmount.java
more pronounced day/month delimiters in the transaction list
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / model / LedgerAmount.java
index 6aebdb50f7fb70dbf99cb8a5c43cf7b99cf21443..4e3cb8d21d34d4068dc007df6ab3da79bcaf0e4f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2019 Damyan Ivanov.
+ * Copyright © 2021 Damyan Ivanov.
  * This file is part of MoLe.
  * MoLe is free software: you can distribute it and/or modify it
  * under the term of the GNU General Public License as published by
 package net.ktnx.mobileledger.model;
 
 import android.annotation.SuppressLint;
+
 import androidx.annotation.NonNull;
 
+import net.ktnx.mobileledger.dao.AccountValueDAO;
+import net.ktnx.mobileledger.db.Account;
+import net.ktnx.mobileledger.db.AccountValue;
+import net.ktnx.mobileledger.db.DB;
+
 public class LedgerAmount {
-    private String currency;
-    private float amount;
+    private final String currency;
+    private final float amount;
+    private long dbId;
 
-    public
-    LedgerAmount(float amount, @NonNull String currency) {
+    public LedgerAmount(float amount, @NonNull String currency) {
         this.currency = currency;
         this.amount = amount;
     }
-
-    public
-    LedgerAmount(float amount) {
+    public LedgerAmount(float amount) {
         this.amount = amount;
         this.currency = null;
     }
+    static public LedgerAmount fromDBO(AccountValue dbo) {
+        final LedgerAmount ledgerAmount = new LedgerAmount(dbo.getValue(), dbo.getCurrency());
+        ledgerAmount.dbId = dbo.getId();
+        return ledgerAmount;
+    }
+    public AccountValue toDBO(Account account) {
+        final AccountValueDAO dao = DB.get()
+                                      .getAccountValueDAO();
+        AccountValue obj = new AccountValue();
+        obj.setId(dbId);
+        obj.setAccountId(account.getId());
+
+        obj.setCurrency(currency);
+        obj.setValue(amount);
 
+        return obj;
+    }
     @SuppressLint("DefaultLocale")
     @NonNull
     public String toString() {
-        if (currency == null) return String.format("%,1.2f", amount);
-        else return String.format("%s %,1.2f", currency, amount);
+        if (currency == null)
+            return String.format("%,1.2f", amount);
+        else
+            return String.format("%s %,1.2f", currency, amount);
+    }
+    public void propagateToAccount(@NonNull LedgerAccount acc) {
+        if (currency != null)
+            acc.addAmount(amount, currency);
+        else
+            acc.addAmount(amount);
+    }
+    public String getCurrency() {
+        return currency;
+    }
+    public float getAmount() {
+        return amount;
     }
 }