Skip to content

Commit 18cc6ba

Browse files
authored
Merge pull request #431 from killbilling/tax_details_update
Tax details update
2 parents b49bbbf + 15ff10b commit 18cc6ba

File tree

3 files changed

+99
-1
lines changed

3 files changed

+99
-1
lines changed

src/main/java/com/ning/billing/recurly/model/Invoice.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222

2323
import javax.xml.bind.annotation.XmlElement;
2424
import javax.xml.bind.annotation.XmlElementWrapper;
25+
import javax.xml.bind.annotation.XmlList;
2526
import javax.xml.bind.annotation.XmlRootElement;
2627
import java.math.BigDecimal;
28+
import java.util.List;
2729

2830
@XmlRootElement(name = "invoice")
2931
public class Invoice extends RecurlyObject {
@@ -79,6 +81,10 @@ public class Invoice extends RecurlyObject {
7981
@XmlElement(name = "tax_rate")
8082
private BigDecimal taxRate;
8183

84+
@XmlList
85+
@XmlElementWrapper(name = "tax_details")
86+
private List<TaxDetail> taxDetails;
87+
8288
@XmlElement(name = "created_at")
8389
private DateTime createdAt;
8490

@@ -318,6 +324,14 @@ public String getTaxType() {
318324
return taxType;
319325
}
320326

327+
public List<TaxDetail> getTaxDetails() {
328+
return taxDetails;
329+
}
330+
331+
public void setTaxDetails(final List<TaxDetail> taxDetails) {
332+
this.taxDetails = taxDetails;
333+
}
334+
321335
public DateTime getCreatedAt() {
322336
return createdAt;
323337
}
@@ -539,6 +553,7 @@ public String toString() {
539553
sb.append(", taxRegion=").append(taxRegion);
540554
sb.append(", taxType=").append(taxType);
541555
sb.append(", taxRate=").append(taxRate);
556+
sb.append(", taxDetails=").append(taxDetails);
542557
sb.append(", createdAt=").append(createdAt);
543558
sb.append(", updatedAt=").append(updatedAt);
544559
sb.append(", closedAt=").append(closedAt);
@@ -664,6 +679,9 @@ public boolean equals(final Object o) {
664679
if (taxRate != null ? !taxRate.equals(invoice.taxRate) : invoice.taxRate != null) {
665680
return false;
666681
}
682+
if (taxDetails != null ? !taxDetails.equals(invoice.taxDetails) : invoice.taxDetails != null) {
683+
return false;
684+
}
667685
if (termsAndConditions != null ? !termsAndConditions.equals(invoice.termsAndConditions) : invoice.termsAndConditions != null) {
668686
return false;
669687
}
@@ -720,6 +738,7 @@ public int hashCode() {
720738
taxRegion,
721739
taxType,
722740
taxRate,
741+
taxDetails,
723742
currency,
724743
createdAt,
725744
updatedAt,

src/main/java/com/ning/billing/recurly/model/TaxDetail.java

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,24 @@ public class TaxDetail extends RecurlyObject{
3232
@XmlElement(name = "type")
3333
private String type;
3434

35+
@XmlElement(name = "level")
36+
private String level;
37+
38+
@XmlElement(name = "billable")
39+
private Boolean billable;
40+
3541
@XmlElement(name = "tax_rate")
3642
private BigDecimal taxRate;
3743

3844
@XmlElement(name = "tax_in_cents")
3945
private Integer taxInCents;
4046

47+
@XmlElement(name = "tax_type")
48+
private String taxType;
49+
50+
@XmlElement(name = "tax_region")
51+
private String taxRegion;
52+
4153
public String getName() {
4254
return name;
4355
}
@@ -54,6 +66,22 @@ public void setType(final Object type) {
5466
this.type = stringOrNull(type);
5567
}
5668

69+
public String getLevel() {
70+
return level;
71+
}
72+
73+
public void setLevel(final Object level) {
74+
this.level = stringOrNull(level);
75+
}
76+
77+
public Boolean getBillable() {
78+
return billable;
79+
}
80+
81+
public void setBillable(final Object billable) {
82+
this.billable = booleanOrNull(billable);
83+
}
84+
5785
public BigDecimal getTaxRate() {
5886
return taxRate;
5987
}
@@ -70,14 +98,34 @@ public void setTaxInCents(final Object taxInCents) {
7098
this.taxInCents = integerOrNull(taxInCents);
7199
}
72100

101+
public String getTaxType() {
102+
return taxType;
103+
}
104+
105+
public void setTaxType(final Object taxType) {
106+
this.taxType = stringOrNull(taxType);
107+
}
108+
109+
public String getTaxRegion() {
110+
return taxRegion;
111+
}
112+
113+
public void setTaxRegion(final Object taxRegion) {
114+
this.taxRegion = stringOrNull(taxRegion);
115+
}
116+
73117
@Override
74118
public String toString() {
75119
final StringBuilder sb = new StringBuilder();
76120
sb.append("TaxDetail{");
77121
sb.append("name='").append(name).append('\'');
78122
sb.append(", type='").append(type).append('\'');
123+
sb.append(", level='").append(level).append('\'');
124+
sb.append(", billable=").append(billable);
79125
sb.append(", taxRate=").append(taxRate);
80126
sb.append(", taxInCents=").append(taxInCents);
127+
sb.append(", taxType='").append(taxType).append('\'');
128+
sb.append(", taxRegion='").append(taxRegion).append('\'');
81129
sb.append('}');
82130
return sb.toString();
83131
}
@@ -95,12 +143,24 @@ public boolean equals(Object o) {
95143
if (type != null ? !type.equals(that.type) : that.type != null) {
96144
return false;
97145
}
146+
if (level != null ? !level.equals(that.level) : that.level != null) {
147+
return false;
148+
}
149+
if (billable != null ? !billable.equals(that.billable) : that.billable != null) {
150+
return false;
151+
}
98152
if (taxRate != null ? !taxRate.equals(that.taxRate) : that.taxRate != null) {
99153
return false;
100154
}
101155
if (taxInCents != null ? !taxInCents.equals(that.taxInCents) : that.taxInCents != null) {
102156
return false;
103157
}
158+
if (taxType != null ? !taxType.equals(that.taxType) : that.taxType != null) {
159+
return false;
160+
}
161+
if (taxRegion != null ? !taxRegion.equals(that.taxRegion) : that.taxRegion != null) {
162+
return false;
163+
}
104164
return true;
105165
}
106166

@@ -109,8 +169,12 @@ public int hashCode() {
109169
return Objects.hashCode(
110170
name,
111171
type,
172+
level,
173+
billable,
112174
taxRate,
113-
taxInCents
175+
taxInCents,
176+
taxType,
177+
taxRegion
114178
);
115179
}
116180

src/test/java/com/ning/billing/recurly/model/TestInvoice.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,14 @@ public void testDeserialization() throws Exception {
5454
+ " <tax_type>usst</tax_type>\n"
5555
+ " <tax_region>CA</tax_region>\n"
5656
+ " <tax_rate type=\"float\">0.0875</tax_rate>\n"
57+
+ " <tax_details type=\"array\">\n"
58+
+ " <tax_detail>\n"
59+
+ " <tax_type>GST</tax_type>\n"
60+
+ " <tax_region>CA</tax_region>\n"
61+
+ " <tax_rate type=\"float\">0.05</tax_rate>\n"
62+
+ " <tax_in_cents type=\"integer\">20</tax_in_cents>\n"
63+
+ " </tax_detail>\n"
64+
+ " </tax_details>\n"
5765
+ " <surcharge_in_cents type=\"integer\">100</surcharge_in_cents>\n"
5866
+ " <created_at type=\"dateTime\">2011-08-25T12:00:00Z</created_at>\n"
5967
+ " <updated_at type=\"dateTime\">2011-08-25T12:00:00Z</updated_at>\n"
@@ -140,6 +148,13 @@ public void testDeserialization() throws Exception {
140148
Assert.assertEquals(invoice.getId(), "FR1402");
141149
Assert.assertEquals(invoice.getSurchargeInCents(), new Integer(100));
142150

151+
Assert.assertEquals(invoice.getTaxDetails().size(), 1);
152+
TaxDetail taxDetail = invoice.getTaxDetails().get(0);
153+
Assert.assertEquals(taxDetail.getTaxRate(), new BigDecimal("0.05"));
154+
Assert.assertEquals((int) taxDetail.getTaxInCents(), 20);
155+
Assert.assertEquals(taxDetail.getTaxRegion(), "CA");
156+
Assert.assertEquals(taxDetail.getTaxType(), "GST");
157+
143158
final Adjustment adjustment = invoice.getLineItems().get(0);
144159
Assert.assertEquals(adjustment.getDescription(), "Charge for extra bandwidth");
145160
Assert.assertEquals((int) adjustment.getTotalInCents(), 5000);

0 commit comments

Comments
 (0)