· 5 years ago · May 18, 2020, 03:56 PM
1package com.erpic_recon.webapp.entity;
2
3import java.math.BigDecimal;
4import java.util.List;
5
6import javax.persistence.Column;
7import javax.persistence.Entity;
8import javax.persistence.Id;
9import javax.persistence.OneToMany;
10import javax.persistence.Table;
11import javax.validation.constraints.NotNull;
12
13@Entity
14@Table(name = "table_balance")
15public class TrialBalance {
16
17
18 @Id
19 @NotNull
20 @Column(name = "main_account_balance")
21 @OneToMany(mappedBy="trialBalance")
22 private List<Subledger> subledger;
23
24 @Column(name = "name")
25 private String name;
26
27 @Column(name = "opening_balance")
28 private BigDecimal openingBalance;
29
30 @Column(name = "debit")
31 private BigDecimal debit;
32
33 @Column(name = "credit")
34 private BigDecimal credit;
35
36 @Column(name = "closing_balance")
37 private BigDecimal closingBalance;
38
39 @Column(name = "tb_Movement")
40 private BigDecimal tbMovement;
41 // no-arg and parameterized constructors
42
43 public TrialBalance() {
44 }
45
46 public TrialBalance(String name, String openingBalance, String debit, String credit, String closingBalance) {
47 this.name = name;
48 this.openingBalance = calculateValue(openingBalance);
49 this.debit = calculateValue(debit);
50 this.credit = calculateValue(credit);
51 this.closingBalance = calculateValue(closingBalance);
52 }
53
54 // getters and setters
55
56 public List<Subledger> getMainAccount() {
57 return subledger;
58 }
59
60 public void setMainAccount(List <Subledger> subledger) {
61 this.subledger = subledger;
62 }
63
64 public String getName() {
65 return name;
66 }
67
68 public void setName(String name) {
69 this.name = name;
70 }
71
72 public BigDecimal getOpeningBalance() {
73 return openingBalance;
74 }
75
76 public void setOpeningBalance(String openingBalance) {
77 this.openingBalance = calculateValue(openingBalance);
78 }
79
80 public BigDecimal getDebit() {
81 return debit;
82 }
83
84 public void setDebit(String debit) {
85 this.debit = calculateValue(debit);
86 }
87
88 public BigDecimal getCredit() {
89 return credit;
90 }
91
92 public void setCredit(String credit) {
93 this.credit = calculateValue(credit);
94 }
95
96 public BigDecimal getClosingBalance() {
97 return closingBalance;
98 }
99
100 public void setClosingBalance(String closingBalance) {
101 this.closingBalance = calculateValue(closingBalance);
102 }
103
104 public BigDecimal getTbMovement() {
105 return tbMovement;
106 }
107
108 public void setTbMovement(BigDecimal tbMovement) {
109 this.tbMovement = tbMovement;
110 }
111
112 // toString to display the values
113 @Override
114 public String toString() {
115 return "TrialBalance [mainAccount=" + subledger + ", name=" + name + ", openingBalance=" + openingBalance
116 + ", debit=" + debit + ", credit=" + credit + ", closingBalance=" + closingBalance + ", tbMovement="
117 + tbMovement + "]";
118 }
119
120 // let us calculate all the values here
121 public static BigDecimal calculateValue(String value) {
122
123 // initialize variable
124 BigDecimal bi2 = null;
125
126 if (value.contains("\\s") || value.contains(",")) {
127
128 if (value.isEmpty()) {
129
130 value = "0";
131 }
132 // removing all the white spaces
133 String removeSpace = value.replaceAll("\\s", "");
134
135 // replacing all the commas with full stops
136 bi2 = new BigDecimal(removeSpace.replace(',', '.'));
137
138 } else {
139
140 if (value.isEmpty()) {
141
142 value = "0";
143 }
144 // if the file doesn't have special characters let us continue
145 bi2 = new BigDecimal(value.toString());
146
147 }
148
149 // rounding up the decimals to being two
150 BigDecimal rounded = bi2.setScale(2, BigDecimal.ROUND_HALF_UP);
151
152 // returning the value
153 return rounded;
154 }
155}
156
157/*subledger entity here*/
158package com.erpic_recon.webapp.entity;
159
160import java.math.BigDecimal;
161
162import javax.persistence.CascadeType;
163import javax.persistence.Column;
164import javax.persistence.Entity;
165import javax.persistence.GeneratedValue;
166import javax.persistence.GenerationType;
167import javax.persistence.Id;
168import javax.persistence.JoinColumn;
169import javax.persistence.ManyToOne;
170import javax.persistence.Table;
171import javax.validation.constraints.NotNull;
172
173
174@Entity
175@Table(name = "table_subledger")
176public class Subledger {
177
178 @Id
179 @GeneratedValue(strategy = GenerationType.IDENTITY)
180 @NotNull
181 @Column(name = "sub_id")
182 private int subId;
183
184 @Column(name = "date")
185 private String date;
186
187 @Column(name = "account_id")
188 private String accountId;
189
190 @ManyToOne(cascade = {CascadeType.DETACH,CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH})
191 @JoinColumn(name="main_account")
192 private TrialBalance trialBalance;
193
194 @Column(name = "amount")
195 private BigDecimal amount;
196
197 @Column(name = "account_type")
198 private String accountType;
199
200 // constructors
201 public Subledger() {
202 }
203
204 // parameterized constructor
205 public Subledger(String date, String accountId,
206 BigDecimal amount, String accountType) {
207 this.date = date;
208 this.accountId = accountId;
209 this.amount = amount;
210 this.accountType = accountType;
211 }
212
213 public void setDate(String date) {
214
215 this.date = date;
216 }
217
218 public String getAccountId() {
219 return accountId;
220 }
221
222 public void setAccountId(String accountId) {
223 this.accountId = accountId;
224 }
225
226 public String getDate() {
227 return date;
228 }
229
230 public int getSubId() {
231 return subId;
232 }
233
234 public void setSubId(int subId) {
235 this.subId = subId;
236 }
237
238 public TrialBalance getTrialBalance() {
239 return trialBalance;
240 }
241
242 public void setTrialBalance(TrialBalance trialBalance) {
243 this.trialBalance = trialBalance;
244 }
245
246 public BigDecimal getAmount() {
247 return amount;
248 }
249
250 public void setAmount(String amount) {
251 this.amount = calculateValue(amount);
252 }
253
254 public String getAccountType() {
255 return accountType;
256 }
257
258 public void setAccountType(String accountType) {
259 this.accountType = accountType;
260 }
261
262 // toString
263 @Override
264 public String toString() {
265 return "Subledger [subId=" + subId + ", date=" + date + ", accountId=" + accountId + ", TrialBalance="
266 + trialBalance + ", amount=" + amount + ", accountType=" + accountType + "]";
267 }
268
269 // let us calculate all the values here
270 public static BigDecimal calculateValue(String value) {
271
272 // initialize variable
273 BigDecimal bi2 = null;
274
275 if (value.contains("\\s") || value.contains(",")) {
276
277 if (value.isEmpty()) {
278
279 value = "0";
280 }
281 // removing all the white spaces
282 String removeSpace = value.replaceAll("\\s", "");
283
284 // replacing all the commas with full stops
285 bi2 = new BigDecimal(removeSpace.replace(',', '.'));
286
287 } else {
288
289 if (value.isEmpty()) {
290
291 value = "0";
292 }
293 // if the file doesn't have special characters let us continue
294 bi2 = new BigDecimal(value.toString());
295
296 }
297
298 // rounding up the decimals to being two
299 BigDecimal rounded = bi2.setScale(2, BigDecimal.ROUND_HALF_UP);
300
301 // returning the value
302 return rounded;
303 }
304
305}
306/*My SQL database*/
307CREATE TABLE IF NOT EXISTS `table_configuration` (
308 `main_account` INT(50) NOT NULL ,
309 `name` VARCHAR(255) DEFAULT NULL,
310 `account_type` VARCHAR(255) DEFAULT NULL,
311 PRIMARY KEY (`main_account`)
312);
313CREATE TABLE IF NOT EXISTS `table_balance` (
314 `main_account_balance` INT(50) UNIQUE NOT NULL,
315 `name` VARCHAR(255) NOT NULL,
316 `opening_balance` DECIMAL(30,2) DEFAULT 0.00,
317 `debit` DECIMAL(30,2) DEFAULT 0.00,
318 `credit` DECIMAL(30,2) DEFAULT 0.00,
319 `closing_balance` DECIMAL(30,2) DEFAULT 0.00,
320 `tb_Movement` DECIMAL(30,2) DEFAULT 0.00,
321 primary key(`main_account_balance`),
322 CONSTRAINT `FK_TABLE_BALANCE` FOREIGN KEY (`main_account_balance`)
323 REFERENCES `table_configuration` (`main_account`)
324);
325CREATE TABLE IF NOT EXISTS `table_subledger` (
326 `sub_id` INT(50) NOT NULL AUTO_INCREMENT,
327 `date` DATETIME NOT NULL,
328 `account_id` VARCHAR(255) DEFAULT NULL,
329 `main_account` INT(50) UNIQUE NOT NULL,
330 `amount` DECIMAL(30,2) DEFAULT 0.00,
331 `account_type` VARCHAR(255) DEFAULT NULL,
332 primary key(`sub_id`),
333 unique Key `account_unique` (`account_id`),
334 CONSTRAINT `FK_TABLE_SUBLEDGER` FOREIGN KEY (`main_account`)
335 REFERENCES `table_balance` (`main_account_balance`) ON DELETE NO ACTION ON UPDATE NO ACTION
336)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;