1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.moneywise.lethe.data.analysis.values;
18
19 import io.github.tonywasher.joceanus.oceanus.decimal.OceanusMoney;
20 import io.github.tonywasher.joceanus.moneywise.lethe.data.analysis.base.MoneyWiseAnalysisValues;
21
22 import java.util.Currency;
23
24
25
26
27 public final class MoneyWiseAnalysisTaxBasisValues
28 extends MoneyWiseAnalysisValues<MoneyWiseAnalysisTaxBasisValues, MoneyWiseAnalysisTaxBasisAttr> {
29
30
31
32
33
34 public MoneyWiseAnalysisTaxBasisValues(final Currency pCurrency) {
35
36 super(MoneyWiseAnalysisTaxBasisAttr.class);
37
38
39 super.setValue(MoneyWiseAnalysisTaxBasisAttr.GROSS, new OceanusMoney(pCurrency));
40 super.setValue(MoneyWiseAnalysisTaxBasisAttr.NETT, new OceanusMoney(pCurrency));
41 super.setValue(MoneyWiseAnalysisTaxBasisAttr.TAXCREDIT, new OceanusMoney(pCurrency));
42 }
43
44
45
46
47
48
49
50 private MoneyWiseAnalysisTaxBasisValues(final MoneyWiseAnalysisTaxBasisValues pSource,
51 final boolean pCountersOnly) {
52
53 super(pSource, pCountersOnly);
54 }
55
56 @Override
57 protected MoneyWiseAnalysisTaxBasisValues getCounterSnapShot() {
58 return new MoneyWiseAnalysisTaxBasisValues(this, true);
59 }
60
61 @Override
62 protected MoneyWiseAnalysisTaxBasisValues getFullSnapShot() {
63 return new MoneyWiseAnalysisTaxBasisValues(this, false);
64 }
65
66 @Override
67 public void adjustToBaseValues(final MoneyWiseAnalysisTaxBasisValues pBase) {
68
69 adjustMoneyToBase(pBase, MoneyWiseAnalysisTaxBasisAttr.GROSS);
70 adjustMoneyToBase(pBase, MoneyWiseAnalysisTaxBasisAttr.NETT);
71 adjustMoneyToBase(pBase, MoneyWiseAnalysisTaxBasisAttr.TAXCREDIT);
72 }
73
74 @Override
75 public void resetBaseValues() {
76
77 OceanusMoney myValue = super.getMoneyValue(MoneyWiseAnalysisTaxBasisAttr.GROSS);
78 myValue = new OceanusMoney(myValue);
79 myValue.setZero();
80
81
82 super.setValue(MoneyWiseAnalysisTaxBasisAttr.GROSS, myValue);
83 super.setValue(MoneyWiseAnalysisTaxBasisAttr.NETT, new OceanusMoney(myValue));
84 super.setValue(MoneyWiseAnalysisTaxBasisAttr.TAXCREDIT, new OceanusMoney(myValue));
85 }
86
87
88
89
90
91
92 public boolean isActive() {
93 final OceanusMoney myGross = super.getMoneyValue(MoneyWiseAnalysisTaxBasisAttr.GROSS);
94 final OceanusMoney myNet = super.getMoneyValue(MoneyWiseAnalysisTaxBasisAttr.NETT);
95 final OceanusMoney myTax = super.getMoneyValue(MoneyWiseAnalysisTaxBasisAttr.TAXCREDIT);
96 return myGross.isNonZero() || myNet.isNonZero() || myTax.isNonZero();
97 }
98 }