Skip to content

Commit 24e13b8

Browse files
committed
First pass of reducing constants needed
1 parent 494ad26 commit 24e13b8

3 files changed

Lines changed: 28 additions & 47 deletions

File tree

src/main/java/com/hz/mymoney/configuration/AccountConstants.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,18 @@ private AccountConstants() {}
1010
// Income
1111
public static final String INCOME_PREFIX = "Income:";
1212
public static final String EMPLOYMENT_SALARY = "Income:Employment:Salary";
13+
public static final String INTEREST_INCOME = "Income:Cash:Int Paid";
14+
public static final String INVESTMENT_INCOME = "Income:Investment:";
15+
public static final String IMPUTATION_INCOME = "Income:Investment:Imputation:Tax Credit";
16+
1317
public static final String DIVIDEND_INCOME = "Income:Investment:Dividends";
18+
public static final String FRANKED_DIVIDEND = "Income:Investment:Dividends:Franked";
19+
public static final String UNFRANKED_DIVIDEND ="Income:Investment:Dividends:Unfranked";
1420
public static final String DISTRIBUTION_INCOME = "Income:Investment:Distribution";
1521
public static final String REINVESTMENT_INCOME = "Income:Investment:Reinvestment";
1622
public static final String CAPITAL_GAINS_INCOME = "Income:Investment:Capital Gains";
1723
public static final String CAPITAL_LOSSES_INCOME = "Income:Investment:Capital Losses";
1824
public static final String CAPITAL_RETURN_INCOME = "Income:Investment:Capital Return";
19-
public static final String INTEREST_INCOME = "Income:Cash:Int Paid";
20-
public static final String FRANKED_DIVIDEND = "Income:Investment:Dividends:Franked";
21-
public static final String UNFRANKED_DIVIDEND ="Income:Investment:Dividends:Unfranked";
22-
public static final String IMPUTATION_INCOME = "Income:Investment:Imputation:Tax Credit";
2325
public static final String INCOME_OTHER = "Income:Investment:Miscellaneous Income";
2426

2527
// Expenses
@@ -39,7 +41,7 @@ private AccountConstants() {}
3941

4042
public static final String SUPER_CONTRIBUTION_NOTE = "Super Contribution Transfer"; // To identify Super Contributions
4143

42-
// Investments
44+
// Investment Assets
4345
public static final String SHARES = "Assets:Shares:"; // Where shares are tracked
4446
public static final String STOCKBROKER = "Assets:Broker:"; // Where stockbroker accounts are tracked
4547
public static final String FUNDS = "Assets:Fund:"; // Where Fund accounts are tracked

src/main/java/com/hz/mymoney/data/models/internal/ChartOfAccounts.java

Lines changed: 15 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -120,47 +120,14 @@ public LocalDate getNextDistributionDateForCode(String code) {
120120
.collect(Collectors.toCollection(PriorityQueue::new)));
121121
}
122122

123-
public BigDecimal getTotalFrankedDividendsForCode(String code) {
124-
return this.sumAmountForAccountWithCode(FRANKED_DIVIDEND, code);
125-
}
126-
127-
public BigDecimal getTotalUnFrankedDividendsForCode(String code) {
128-
return this.sumAmountForAccountWithCode(UNFRANKED_DIVIDEND, code);
129-
}
130-
131-
public BigDecimal getTotalMiscIncomeForCode(String code) {
132-
return this.sumAmountForAccountWithCode(INCOME_OTHER, code);
133-
}
134-
135-
public BigDecimal getTotalCapitalGainsForCode(String code) {
136-
return this.sumAmountForAccountWithCode(CAPITAL_GAINS_INCOME, code);
137-
}
138-
139-
// None in conversion
140-
public BigDecimal getTotalCapitalLossesForCode(String code) {
141-
return this.sumAmountForAccountWithCode(CAPITAL_LOSSES_INCOME, code);
142-
}
143-
144-
public BigDecimal getTotalCapitalReturnsForCode(String code) {
145-
return this.sumAmountForAccountWithCode(CAPITAL_RETURN_INCOME, code);
146-
}
147-
148-
// Fund type distribution or reinvestment
149-
public BigDecimal getTotalDistributionsForCode(String code) {
150-
return this.sumAmountForAccountWithCode(DISTRIBUTION_INCOME, code)
151-
.add(this.sumAmountForAccountWithCode(REINVESTMENT_INCOME, code));
152-
}
153-
154123
public BigDecimal getTotalInvestmentIncomeForCode(String code) {
155-
return this.getTotalFrankedDividendsForCode(code)
156-
.add(this.getTotalUnFrankedDividendsForCode(code))
157-
.add(this.getTotalMiscIncomeForCode(code))
158-
.add(this.getTotalCapitalGainsForCode(code))
159-
.add(this.getTotalCapitalReturnsForCode(code))
160-
.add(this.getTotalDistributionsForCode(code));
124+
return Arrays.stream(INVESTMENT_INCOME
125+
.split(","))
126+
.map(x -> this.sumAmountForAccountsWithCode(x, code))
127+
.reduce(BigDecimal.ZERO, BigDecimal::add);
161128
}
162129

163-
private BigDecimal sumAmountForAccountWithCode(String accountType, String code) {
130+
private BigDecimal sumAmountForAccountExactWithCode(String accountType, String code) {
164131
return accounts.stream()
165132
.filter(account -> account.getName().equalsIgnoreCase(accountType))
166133
.map(account -> account.getMovementsForCode(code))
@@ -170,6 +137,16 @@ private BigDecimal sumAmountForAccountWithCode(String accountType, String code)
170137
.setScale(2, RoundingMode.HALF_UP);
171138
}
172139

140+
private BigDecimal sumAmountForAccountsWithCode(String accountType, String code) {
141+
return accounts.stream()
142+
.filter(account -> account.getName().toLowerCase().startsWith(accountType.toLowerCase()))
143+
.map(account -> account.getMovementsForCode(code))
144+
.map(this::sum)
145+
.reduce(BigDecimal.ZERO, BigDecimal::add)
146+
.abs()
147+
.setScale(2, RoundingMode.HALF_UP);
148+
}
149+
173150
private BigDecimal sum(Collection<Movement> movements) {
174151
return movements.stream()
175152
.map(Movement::amount)

src/main/java/com/hz/mymoney/ui/models/templates/TaxYear.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,13 @@ List<Transaction> getEarnedIncomeTransactions() {
8383
List<Transaction> getInvestmentIncomeTransactions() {
8484
List<Transaction> result = new ArrayList<>();
8585

86-
result.addAll(this.filter(incomeTransactions, DIVIDEND_INCOME));
87-
result.addAll(this.filter(incomeTransactions, CAPITAL_GAINS_INCOME));
88-
result.addAll(this.filter(incomeTransactions, CAPITAL_RETURN_INCOME));
8986
result.addAll(this.filter(incomeTransactions, INTEREST_INCOME));
90-
result.addAll(this.filter(incomeTransactions, DISTRIBUTION_INCOME));
87+
result.addAll(this.filter(incomeTransactions, INVESTMENT_INCOME));
88+
89+
// result.addAll(this.filter(incomeTransactions, DIVIDEND_INCOME));
90+
// result.addAll(this.filter(incomeTransactions, CAPITAL_GAINS_INCOME));
91+
// result.addAll(this.filter(incomeTransactions, CAPITAL_RETURN_INCOME));
92+
// result.addAll(this.filter(incomeTransactions, DISTRIBUTION_INCOME));
9193

9294
return result;
9395
}

0 commit comments

Comments
 (0)