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