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_14;
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 {
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());
45 ArrayList<ParsedAmount> amounts = new ArrayList<>();
46 ParsedAmount amt = new ParsedAmount();
47 amt.setAcommodity((acc.getCurrency() == null) ? "" : acc.getCurrency());
48 amt.setAismultiplier(false);
49 ParsedQuantity qty = new ParsedQuantity();
50 qty.setDecimalPlaces(2);
51 qty.setDecimalMantissa(Math.round(acc.getAmount() * 100));
52 amt.setAquantity(qty);
53 ParsedStyle style = new ParsedStyle();
54 style.setAscommodityside('L');
55 style.setAscommodityspaced(false);
56 style.setAsprecision(2);
57 style.setAsdecimalpoint('.');
60 result.setPamount(amounts);
63 public String getPdate2() {
66 public void setPdate2(String pdate2) {
69 public int getPtransaction_() {
72 public void setPtransaction_(int ptransaction_) {
73 this.ptransaction_ = ptransaction_;
75 public String getPdate() {
78 public void setPdate(String pdate) {
81 public String getPtype() {
84 public void setPtype(String ptype) {
87 public String getPcomment() {
90 public void setPcomment(String pcomment) {
91 this.pcomment = pcomment;
93 public List<List<String>> getPtags() {
96 public void setPtags(List<List<String>> ptags) {
99 public String getPoriginal() {
102 public void setPoriginal(String poriginal) {
103 this.poriginal = poriginal;
105 public String getPstatus() {
108 public void setPstatus(String pstatus) {
109 this.pstatus = pstatus;
111 public Void getPbalanceassertion() {
112 return pbalanceassertion;
114 public void setPbalanceassertion(Void pbalanceassertion) {
115 this.pbalanceassertion = pbalanceassertion;
117 public String getPaccount() {
120 public void setPaccount(String paccount) {
121 this.paccount = paccount;
123 public List<ParsedAmount> getPamount() {
126 public void setPamount(List<ParsedAmount> pamount) {
127 this.pamount = pamount;
129 public LedgerTransactionAccount asLedgerAccount() {
130 ParsedAmount amt = pamount.get(0);
131 return new LedgerTransactionAccount(paccount, amt.getAquantity()
132 .asFloat(), amt.getAcommodity());