diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BusinessInvoicePaymentJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BusinessInvoicePaymentJson.java
index 1d9247c..9fa8310 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BusinessInvoicePaymentJson.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BusinessInvoicePaymentJson.java
@@ -32,6 +32,7 @@ public class BusinessInvoicePaymentJson extends JsonBase {
private final String extSecondPaymentRefId;
private final String accountKey;
private final String invoiceId;
+ private final Integer invoiceNumber;
private final DateTime effectiveDate;
private final BigDecimal amount;
private final String currency;
@@ -52,6 +53,7 @@ public class BusinessInvoicePaymentJson extends JsonBase {
@JsonProperty("extSecondPaymentRefId") final String extSecondPaymentRefId,
@JsonProperty("accountKey") final String accountKey,
@JsonProperty("invoiceId") final String invoiceId,
+ @JsonProperty("invoiceNumber") final Integer invoiceNumber,
@JsonProperty("effectiveDate") final DateTime effectiveDate,
@JsonProperty("amount") final BigDecimal amount,
@JsonProperty("currency") final String currency,
@@ -70,6 +72,7 @@ public class BusinessInvoicePaymentJson extends JsonBase {
this.extSecondPaymentRefId = extSecondPaymentRefId;
this.accountKey = accountKey;
this.invoiceId = invoiceId;
+ this.invoiceNumber = invoiceNumber;
this.effectiveDate = effectiveDate;
this.amount = amount;
this.currency = currency;
@@ -85,12 +88,14 @@ public class BusinessInvoicePaymentJson extends JsonBase {
this.linkedInvoicePaymentId = linkedInvoicePaymentId;
}
- public BusinessInvoicePaymentJson(final BusinessInvoicePayment businessInvoicePayment) {
+ public BusinessInvoicePaymentJson(final BusinessInvoicePayment businessInvoicePayment, final Integer invoiceNumber) {
+ // The bip table doesn't contain the invoice number, but we export it in here for convenience
this(businessInvoicePayment.getPaymentId().toString(),
businessInvoicePayment.getExtFirstPaymentRefId(),
businessInvoicePayment.getExtSecondPaymentRefId(),
businessInvoicePayment.getAccountKey(),
businessInvoicePayment.getInvoiceId().toString(),
+ invoiceNumber,
businessInvoicePayment.getEffectiveDate(),
businessInvoicePayment.getAmount(),
businessInvoicePayment.getCurrency().toString(),
@@ -126,6 +131,10 @@ public class BusinessInvoicePaymentJson extends JsonBase {
return invoiceId;
}
+ public Integer getInvoiceNumber() {
+ return invoiceNumber;
+ }
+
public DateTime getEffectiveDate() {
return effectiveDate;
}
@@ -187,6 +196,7 @@ public class BusinessInvoicePaymentJson extends JsonBase {
sb.append(", extSecondPaymentRefId='").append(extSecondPaymentRefId).append('\'');
sb.append(", accountKey='").append(accountKey).append('\'');
sb.append(", invoiceId='").append(invoiceId).append('\'');
+ sb.append(", invoiceNumber='").append(invoiceNumber).append('\'');
sb.append(", effectiveDate=").append(effectiveDate);
sb.append(", amount=").append(amount);
sb.append(", currency='").append(currency).append('\'');
@@ -242,6 +252,9 @@ public class BusinessInvoicePaymentJson extends JsonBase {
if (invoiceId != null ? !invoiceId.equals(that.invoiceId) : that.invoiceId != null) {
return false;
}
+ if (invoiceNumber != null ? !invoiceNumber.equals(that.invoiceNumber) : that.invoiceNumber != null) {
+ return false;
+ }
if (invoicePaymentType != null ? !invoicePaymentType.equals(that.invoicePaymentType) : that.invoicePaymentType != null) {
return false;
}
@@ -280,6 +293,7 @@ public class BusinessInvoicePaymentJson extends JsonBase {
result = 31 * result + (extSecondPaymentRefId != null ? extSecondPaymentRefId.hashCode() : 0);
result = 31 * result + (accountKey != null ? accountKey.hashCode() : 0);
result = 31 * result + (invoiceId != null ? invoiceId.hashCode() : 0);
+ result = 31 * result + (invoiceNumber != null ? invoiceNumber.hashCode() : 0);
result = 31 * result + (effectiveDate != null ? effectiveDate.hashCode() : 0);
result = 31 * result + (amount != null ? amount.hashCode() : 0);
result = 31 * result + (currency != null ? currency.hashCode() : 0);
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BusinessSnapshotJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BusinessSnapshotJson.java
index 4117a25..dcac483 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BusinessSnapshotJson.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/BusinessSnapshotJson.java
@@ -17,6 +17,9 @@
package com.ning.billing.jaxrs.json;
import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
import javax.annotation.Nullable;
@@ -62,6 +65,8 @@ public class BusinessSnapshotJson extends JsonBase {
}
public BusinessSnapshotJson(final BusinessSnapshot businessSnapshot) {
+ final Map<UUID, Integer> invoiceIdToNumber = new HashMap<UUID, Integer>();
+
this.businessAccount = new BusinessAccountJson(businessSnapshot.getBusinessAccount());
this.businessSubscriptionTransitions = ImmutableList.<BusinessSubscriptionTransitionJson>copyOf(Collections2.transform(businessSnapshot.getBusinessSubscriptionTransitions(), new Function<BusinessSubscriptionTransition, BusinessSubscriptionTransitionJson>() {
@Override
@@ -71,14 +76,15 @@ public class BusinessSnapshotJson extends JsonBase {
}));
this.businessInvoices = ImmutableList.<BusinessInvoiceJson>copyOf(Collections2.transform(businessSnapshot.getBusinessInvoices(), new Function<BusinessInvoice, BusinessInvoiceJson>() {
@Override
- public BusinessInvoiceJson apply(@Nullable final BusinessInvoice input) {
+ public BusinessInvoiceJson apply(final BusinessInvoice input) {
+ invoiceIdToNumber.put(input.getInvoiceId(), input.getInvoiceNumber());
return new BusinessInvoiceJson(input);
}
}));
this.businessInvoicePayments = ImmutableList.<BusinessInvoicePaymentJson>copyOf(Collections2.transform(businessSnapshot.getBusinessInvoicePayments(), new Function<BusinessInvoicePayment, BusinessInvoicePaymentJson>() {
@Override
- public BusinessInvoicePaymentJson apply(@Nullable final BusinessInvoicePayment input) {
- return new BusinessInvoicePaymentJson(input);
+ public BusinessInvoicePaymentJson apply(final BusinessInvoicePayment input) {
+ return new BusinessInvoicePaymentJson(input, invoiceIdToNumber.get(input.getInvoiceId()));
}
}));
this.businessOverdueStatuses = ImmutableList.<BusinessOverdueStatusJson>copyOf(Collections2.transform(businessSnapshot.getBusinessOverdueStatuses(), new Function<BusinessOverdueStatus, BusinessOverdueStatusJson>() {