killbill-aplcache
Changes
beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationParentInvoice.java 4(+4 -0)
Details
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationParentInvoice.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationParentInvoice.java
index f5c609c..52a41b5 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationParentInvoice.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationParentInvoice.java
@@ -1135,6 +1135,10 @@ public class TestIntegrationParentInvoice extends TestIntegrationBase {
assertEquals(invoiceUserApi.getAccountBalance(childAccount.getId(), callContext).compareTo(new BigDecimal("249.95")), 0);
+ // Verify Invoice apis getParentAccountId/getParentInvoiceId
+ assertEquals(childInvoices.get(1).getParentAccountId(), parentAccount.getId());
+ assertEquals(childInvoices.get(1).getParentInvoiceId(), parentInvoice.getId());
+
try {
final List<PluginProperty> properties = new ArrayList<PluginProperty>();
final PluginProperty prop1 = new PluginProperty(InvoicePaymentControlPluginApi.PROP_IPCD_INVOICE_ID, childInvoices.get(1).getId().toString(), false);
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/model/DefaultInvoice.java b/invoice/src/main/java/org/killbill/billing/invoice/model/DefaultInvoice.java
index fa4b200..4dcd360 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/model/DefaultInvoice.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/model/DefaultInvoice.java
@@ -284,6 +284,11 @@ public class DefaultInvoice extends EntityBase implements Invoice, Cloneable {
@Override
public UUID getParentAccountId() {
+ return parentInvoice != null ? parentInvoice.getAccountId() : null;
+ }
+
+ @Override
+ public UUID getParentInvoiceId() {
return parentInvoice != null ? parentInvoice.getId() : null;
}
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatter.java b/invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
index fbb2af4..f913ce3 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
@@ -352,6 +352,11 @@ public class DefaultInvoiceFormatter implements InvoiceFormatter {
return invoice.getParentAccountId();
}
+ @Override
+ public UUID getParentInvoiceId() {
+ return invoice.getParentInvoiceId();
+ }
+
// Expose the fields for children classes. This is useful for further customization of the invoices
@SuppressWarnings("UnusedDeclaration")
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/InvoiceJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/InvoiceJson.java
index 90373da..36af2b2 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/InvoiceJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/InvoiceJson.java
@@ -56,6 +56,8 @@ public class InvoiceJson extends JsonBase {
private final List<CreditJson> credits;
private final String status;
private final Boolean isParentInvoice;
+ private final String parentInvoiceId;
+ private final String parentAccountId;
@JsonCreator
public InvoiceJson(@JsonProperty("amount") final BigDecimal amount,
@@ -73,6 +75,8 @@ public class InvoiceJson extends JsonBase {
@JsonProperty("credits") final List<CreditJson> credits,
@JsonProperty("items") final List<InvoiceItemJson> items,
@JsonProperty("isParentInvoice") final Boolean isParentInvoice,
+ @JsonProperty("parentInvoiceId") final String parentInvoiceId,
+ @JsonProperty("parentAccountId") final String parentAccountId,
@JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
super(auditLogs);
this.amount = amount;
@@ -90,6 +94,8 @@ public class InvoiceJson extends JsonBase {
this.credits = credits;
this.items = items;
this.isParentInvoice = isParentInvoice;
+ this.parentInvoiceId = parentInvoiceId;
+ this.parentAccountId = parentAccountId;
}
public InvoiceJson(final Invoice input) {
@@ -99,7 +105,10 @@ public class InvoiceJson extends JsonBase {
public InvoiceJson(final Invoice input, final String bundleKeys, final List<CreditJson> credits, final List<AuditLog> auditLogs) {
this(input.getChargedAmount(), input.getCurrency().toString(), input.getStatus().toString(), input.getCreditedAmount(), input.getRefundedAmount(),
input.getId().toString(), input.getInvoiceDate(), input.getTargetDate(), String.valueOf(input.getInvoiceNumber()),
- input.getBalance(), input.getAccountId().toString(), bundleKeys, credits, null, input.isParentInvoice(), toAuditLogJson(auditLogs));
+ input.getBalance(), input.getAccountId().toString(), bundleKeys, credits, null, input.isParentInvoice(),
+ input.getParentInvoiceId() != null ? input.getParentInvoiceId().toString() : null,
+ input.getParentAccountId() != null ? input.getParentAccountId().toString() : null,
+ toAuditLogJson(auditLogs));
}
public InvoiceJson(final Invoice input, final boolean withItems, final List<InvoiceItem> childItems, @Nullable final AccountAuditLogs accountAuditLogs) {
@@ -133,6 +142,9 @@ public class InvoiceJson extends JsonBase {
this.bundleKeys = null;
this.credits = null;
this.isParentInvoice = input.isParentInvoice();
+ this.parentInvoiceId = input.getParentInvoiceId() != null ? input.getParentInvoiceId().toString() : null;
+ this.parentAccountId = input.getParentAccountId() != null ? input.getParentAccountId().toString() : null;
+
}
public BigDecimal getAmount() {
@@ -195,6 +207,14 @@ public class InvoiceJson extends JsonBase {
return isParentInvoice;
}
+ public String getParentInvoiceId() {
+ return parentInvoiceId;
+ }
+
+ public String getParentAccountId() {
+ return parentAccountId;
+ }
+
@Override
public String toString() {
return "InvoiceJson{" +
@@ -213,6 +233,8 @@ public class InvoiceJson extends JsonBase {
", bundleKeys='" + bundleKeys + '\'' +
", credits=" + credits +
", isParentInvoice=" + isParentInvoice +
+ ", parentInvoiceId=" + parentInvoiceId +
+ ", parentAccountId=" + parentAccountId +
'}';
}
@@ -272,7 +294,12 @@ public class InvoiceJson extends JsonBase {
if (isParentInvoice != null ? !isParentInvoice.equals(that.isParentInvoice) : that.isParentInvoice != null) {
return false;
}
-
+ if (parentInvoiceId != null ? !parentInvoiceId.equals(that.parentInvoiceId) : that.parentInvoiceId != null) {
+ return false;
+ }
+ if (parentAccountId != null ? !parentAccountId.equals(that.parentAccountId) : that.parentAccountId != null) {
+ return false;
+ }
return true;
}
@@ -293,6 +320,8 @@ public class InvoiceJson extends JsonBase {
result = 31 * result + (bundleKeys != null ? bundleKeys.hashCode() : 0);
result = 31 * result + (credits != null ? credits.hashCode() : 0);
result = 31 * result + (isParentInvoice != null ? isParentInvoice.hashCode() : 0);
+ result = 31 * result + (parentInvoiceId != null ? parentInvoiceId.hashCode() : 0);
+ result = 31 * result + (parentAccountId != null ? parentAccountId.hashCode() : 0);
return result;
}
}
diff --git a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
index 6b9a29e..5dc7791 100644
--- a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
+++ b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
@@ -54,7 +54,7 @@ public class TestInvoiceJsonWithBundleKeys extends JaxrsTestSuiteNoDB {
final InvoiceJson invoiceJsonSimple = new InvoiceJson(amount, Currency.USD.toString(), InvoiceStatus.COMMITTED.toString(),
creditAdj, refundAdj, invoiceId, invoiceDate,
targetDate, invoiceNumber, balance, accountId, bundleKeys,
- credits, null, false, auditLogs);
+ credits, null, false, null, null, auditLogs);
Assert.assertEquals(invoiceJsonSimple.getAmount(), amount);
Assert.assertEquals(invoiceJsonSimple.getCreditAdj(), creditAdj);
Assert.assertEquals(invoiceJsonSimple.getRefundAdj(), refundAdj);
diff --git a/payment/src/test/java/org/killbill/billing/payment/MockInvoice.java b/payment/src/test/java/org/killbill/billing/payment/MockInvoice.java
index 916e030..eca259b 100644
--- a/payment/src/test/java/org/killbill/billing/payment/MockInvoice.java
+++ b/payment/src/test/java/org/killbill/billing/payment/MockInvoice.java
@@ -227,5 +227,10 @@ public class MockInvoice extends EntityBase implements Invoice {
public UUID getParentAccountId() {
return null;
}
+
+ @Override
+ public UUID getParentInvoiceId() {
+ return null;
+ }
}