]> git.ktnx.net Git - mobile-ledger.git/blob - app/src/main/java/net/ktnx/mobileledger/json/v1_15/ParsedPosting.java
TODO: transaction-level comments (displaying and entering)
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / json / v1_15 / ParsedPosting.java
1 /*
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.
8  *
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.
13  *
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/>.
16  */
17
18 package net.ktnx.mobileledger.json.v1_15;
19
20 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
21
22 import net.ktnx.mobileledger.model.LedgerTransactionAccount;
23
24 import java.util.ArrayList;
25 import java.util.List;
26
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() {
41     }
42     public static ParsedPosting fromLedgerAccount(LedgerTransactionAccount acc) {
43         ParsedPosting result = new ParsedPosting();
44         result.setPaccount(acc.getAccountName());
45
46         String comment = acc.getComment();
47         if (comment == null)
48             comment = "";
49         result.setPcomment(comment);
50
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('.');
64         amt.setAstyle(style);
65         if (acc.getCurrency() != null)
66             amt.setAcommodity(acc.getCurrency());
67         amounts.add(amt);
68         result.setPamount(amounts);
69         return result;
70     }
71     public String getPdate2() {
72         return pdate2;
73     }
74     public void setPdate2(String pdate2) {
75         this.pdate2 = pdate2;
76     }
77     public int getPtransaction_() {
78         return ptransaction_;
79     }
80     public void setPtransaction_(int ptransaction_) {
81         this.ptransaction_ = ptransaction_;
82     }
83     public String getPdate() {
84         return pdate;
85     }
86     public void setPdate(String pdate) {
87         this.pdate = pdate;
88     }
89     public String getPtype() {
90         return ptype;
91     }
92     public void setPtype(String ptype) {
93         this.ptype = ptype;
94     }
95     public String getPcomment() {
96         return pcomment;
97     }
98     public void setPcomment(String pcomment) {
99         this.pcomment = (pcomment == null) ? null : pcomment.trim();
100     }
101     public List<List<String>> getPtags() {
102         return ptags;
103     }
104     public void setPtags(List<List<String>> ptags) {
105         this.ptags = ptags;
106     }
107     public String getPoriginal() {
108         return poriginal;
109     }
110     public void setPoriginal(String poriginal) {
111         this.poriginal = poriginal;
112     }
113     public String getPstatus() {
114         return pstatus;
115     }
116     public void setPstatus(String pstatus) {
117         this.pstatus = pstatus;
118     }
119     public Void getPbalanceassertion() {
120         return pbalanceassertion;
121     }
122     public void setPbalanceassertion(Void pbalanceassertion) {
123         this.pbalanceassertion = pbalanceassertion;
124     }
125     public String getPaccount() {
126         return paccount;
127     }
128     public void setPaccount(String paccount) {
129         this.paccount = paccount;
130     }
131     public List<ParsedAmount> getPamount() {
132         return pamount;
133     }
134     public void setPamount(List<ParsedAmount> pamount) {
135         this.pamount = pamount;
136     }
137     public LedgerTransactionAccount asLedgerAccount() {
138         ParsedAmount amt = pamount.get(0);
139         return new LedgerTransactionAccount(paccount, amt.getAquantity()
140                                                          .asFloat(), amt.getAcommodity(),
141                 getPcomment());
142     }
143
144 }