X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fmodel%2FLedgerTransactionAccount.java;h=89d6a83a5d3c935ce98b0dcaa65c8d82fa0b6410;hp=6f8c3b4476a5136dcb787ec2f25f4ae05f8380d5;hb=54002a662d97289a739d3cdb9888bbab58a8064f;hpb=d7feaff3ca4490495ca721b29b77c1646591a34c diff --git a/app/src/main/java/net/ktnx/mobileledger/model/LedgerTransactionAccount.java b/app/src/main/java/net/ktnx/mobileledger/model/LedgerTransactionAccount.java index 6f8c3b44..89d6a83a 100644 --- a/app/src/main/java/net/ktnx/mobileledger/model/LedgerTransactionAccount.java +++ b/app/src/main/java/net/ktnx/mobileledger/model/LedgerTransactionAccount.java @@ -17,20 +17,13 @@ package net.ktnx.mobileledger.model; -import net.ktnx.mobileledger.json.ParsedAmount; -import net.ktnx.mobileledger.json.ParsedPosting; -import net.ktnx.mobileledger.json.ParsedQuantity; -import net.ktnx.mobileledger.json.ParsedStyle; - -import java.util.ArrayList; - import androidx.annotation.NonNull; public class LedgerTransactionAccount { private String accountName; private String shortAccountName; private float amount; - private boolean amountSet; + private boolean amountSet = false; private String currency; public LedgerTransactionAccount(String accountName, float amount) { @@ -46,20 +39,27 @@ public class LedgerTransactionAccount { public LedgerTransactionAccount(String accountName) { this.accountName = accountName; } + public LedgerTransactionAccount(LedgerTransactionAccount origin) { + // copy constructor + setAccountName(origin.getAccountName()); + if (origin.isAmountSet()) + setAmount(origin.getAmount()); + currency = origin.getCurrency(); + } public String getAccountName() { return accountName; } - public String getShortAccountName() { - return shortAccountName; - } public void setAccountName(String accountName) { this.accountName = accountName; shortAccountName = accountName.replaceAll("(?<=^|:)(.)[^:]+(?=:)", "$1"); } - + public String getShortAccountName() { + return shortAccountName; + } public float getAmount() { - if (!amountSet) throw new IllegalStateException("Account amount is not set"); + if (!amountSet) + throw new IllegalStateException("Account amount is not set"); return amount; } @@ -81,7 +81,8 @@ public class LedgerTransactionAccount { } @NonNull public String toString() { - if (!amountSet) return ""; + if (!amountSet) + return ""; StringBuilder sb = new StringBuilder(); if (currency != null) { @@ -92,25 +93,4 @@ public class LedgerTransactionAccount { return sb.toString(); } - public ParsedPosting asParsedPosting() { - ParsedPosting result = new ParsedPosting(); - result.setPaccount(accountName); - ArrayList amounts = new ArrayList<>(); - ParsedAmount amt = new ParsedAmount(); - amt.setAcommodity((currency == null) ? "" : currency); - amt.setAismultiplier(false); - ParsedQuantity qty = new ParsedQuantity(); - qty.setDecimalPlaces(2); - qty.setDecimalMantissa(Math.round(amount * 100)); - amt.setAquantity(qty); - ParsedStyle style = new ParsedStyle(); - style.setAscommodityside('L'); - style.setAscommodityspaced(false); - style.setAsprecision(2); - style.setAsdecimalpoint('.'); - amt.setAstyle(style); - amounts.add(amt); - result.setPamount(amounts); - return result; - } }