2 * Copyright © 2019 Damyan Ivanov.
3 * This file is part of MoLe.
4 * MoLe is free software: you can distribute it and/or modify it
5 * under the term of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your opinion), any later version.
9 * MoLe is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License terms for details.
14 * You should have received a copy of the GNU General Public License
15 * along with MoLe. If not, see <https://www.gnu.org/licenses/>.
18 package net.ktnx.mobileledger.json.v1_15;
20 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
22 import net.ktnx.mobileledger.model.LedgerTransactionAccount;
24 import java.util.ArrayList;
25 import java.util.List;
27 @JsonIgnoreProperties(ignoreUnknown = true)
28 public class ParsedPosting extends net.ktnx.mobileledger.json.ParsedPosting {
29 private Void pbalanceassertion;
30 private String pstatus = "Unmarked";
31 private String paccount;
32 private List<ParsedAmount> pamount;
33 private String pdate = null;
34 private String pdate2 = null;
35 private String ptype = "RegularPosting";
36 private String pcomment = "";
37 private List<List<String>> ptags = new ArrayList<>();
38 private String poriginal = null;
39 private int ptransaction_;
40 public ParsedPosting() {
42 public static ParsedPosting fromLedgerAccount(LedgerTransactionAccount acc) {
43 ParsedPosting result = new ParsedPosting();
44 result.setPaccount(acc.getAccountName());
46 String comment = acc.getComment();
49 result.setPcomment(comment);
51 ArrayList<ParsedAmount> amounts = new ArrayList<>();
52 ParsedAmount amt = new ParsedAmount();
53 amt.setAcommodity((acc.getCurrency() == null) ? "" : acc.getCurrency());
54 amt.setAismultiplier(false);
55 ParsedQuantity qty = new ParsedQuantity();
56 qty.setDecimalPlaces(2);
57 qty.setDecimalMantissa(Math.round(acc.getAmount() * 100));
58 amt.setAquantity(qty);
59 ParsedStyle style = new ParsedStyle();
60 style.setAscommodityside(getCommoditySide());
61 style.setAscommodityspaced(getCommoditySpaced());
62 style.setAsprecision(2);
63 style.setAsdecimalpoint('.');
65 if (acc.getCurrency() != null)
66 amt.setAcommodity(acc.getCurrency());
68 result.setPamount(amounts);
71 public String getPdate2() {
74 public void setPdate2(String pdate2) {
77 public int getPtransaction_() {
80 public void setPtransaction_(int ptransaction_) {
81 this.ptransaction_ = ptransaction_;
83 public String getPdate() {
86 public void setPdate(String pdate) {
89 public String getPtype() {
92 public void setPtype(String ptype) {
95 public String getPcomment() {
98 public void setPcomment(String pcomment) {
99 this.pcomment = (pcomment == null) ? null : pcomment.trim();
101 public List<List<String>> getPtags() {
104 public void setPtags(List<List<String>> ptags) {
107 public String getPoriginal() {
110 public void setPoriginal(String poriginal) {
111 this.poriginal = poriginal;
113 public String getPstatus() {
116 public void setPstatus(String pstatus) {
117 this.pstatus = pstatus;
119 public Void getPbalanceassertion() {
120 return pbalanceassertion;
122 public void setPbalanceassertion(Void pbalanceassertion) {
123 this.pbalanceassertion = pbalanceassertion;
125 public String getPaccount() {
128 public void setPaccount(String paccount) {
129 this.paccount = paccount;
131 public List<ParsedAmount> getPamount() {
134 public void setPamount(List<ParsedAmount> pamount) {
135 this.pamount = pamount;
137 public LedgerTransactionAccount asLedgerAccount() {
138 ParsedAmount amt = pamount.get(0);
139 return new LedgerTransactionAccount(paccount, amt.getAquantity()
140 .asFloat(), amt.getAcommodity(),