killbill-aplcache
Changes
beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoiceWithRepairLogic.java 2(+1 -1)
invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatter.java 2(+1 -1)
invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java 15(+9 -6)
Details
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationBase.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationBase.java
index fef40bc..4018728 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationBase.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationBase.java
@@ -673,7 +673,7 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB {
public Void apply(@Nullable final Void input) {
try {
invoiceUserApi.insertCreditForInvoice(account.getId(), invoice.getId(), invoice.getBalance(), invoice.getInvoiceDate(),
- account.getCurrency(), callContext);
+ account.getCurrency(), null, callContext);
} catch (final InvoiceApiException e) {
fail(e.toString());
}
@@ -688,7 +688,7 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB {
public Void apply(@Nullable final Void input) {
try {
invoiceUserApi.insertInvoiceItemAdjustment(account.getId(), invoice.getId(), invoice.getInvoiceItems().get(itemNb - 1).getId(),
- invoice.getInvoiceDate(), callContext);
+ invoice.getInvoiceDate(), null, callContext);
} catch (final InvoiceApiException e) {
fail(e.toString());
}
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoice.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoice.java
index cfb35ce..f383f99 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoice.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoice.java
@@ -245,7 +245,8 @@ public class TestIntegrationInvoice extends TestIntegrationBase {
assertTrue(accountBalance1.compareTo(new BigDecimal("249.95")) == 0);
busHandler.pushExpectedEvents(NextEvent.INVOICE_ADJUSTMENT);
- invoiceUserApi.insertCredit(account.getId(), new BigDecimal("300"), new LocalDate(clock.getUTCNow(), account.getTimeZone()), account.getCurrency(), callContext);
+ invoiceUserApi.insertCredit(account.getId(), new BigDecimal("300"), new LocalDate(clock.getUTCNow(), account.getTimeZone()),
+ account.getCurrency(), null, callContext);
assertListenerStatus();
final BigDecimal accountBalance2 = invoiceUserApi.getAccountBalance(account.getId(), callContext);
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoiceWithRepairLogic.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoiceWithRepairLogic.java
index e90cf77..e6dcd92 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoiceWithRepairLogic.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationInvoiceWithRepairLogic.java
@@ -107,7 +107,7 @@ public class TestIntegrationInvoiceWithRepairLogic extends TestIntegrationBase {
//
busHandler.pushExpectedEvents(NextEvent.INVOICE_ADJUSTMENT);
invoiceUserApi.insertInvoiceItemAdjustment(account.getId(), invoices.get(1).getId(), invoices.get(1).getInvoiceItems().get(0).getId(), clock.getUTCToday(),
- BigDecimal.TEN, account.getCurrency(), callContext);
+ BigDecimal.TEN, account.getCurrency(), null, callContext);
assertListenerStatus();
invoices = invoiceUserApi.getInvoicesByAccount(account.getId(), callContext);
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/api/InvoiceApiHelper.java b/invoice/src/main/java/org/killbill/billing/invoice/api/InvoiceApiHelper.java
index 8a5933b..dd29cd1 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/api/InvoiceApiHelper.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/api/InvoiceApiHelper.java
@@ -127,6 +127,7 @@ public class InvoiceApiHelper {
@Nullable final BigDecimal positiveAdjAmount,
@Nullable final Currency currency,
final LocalDate effectiveDate,
+ final String description,
final InternalCallContext context) throws InvoiceApiException {
final InvoiceItem invoiceItemToBeAdjusted = Iterables.<InvoiceItem>tryFind(invoiceToBeAdjusted.getInvoiceItems(),
new Predicate<InvoiceItem>() {
@@ -159,7 +160,7 @@ public class InvoiceApiHelper {
invoiceItemToBeAdjusted.getInvoiceId(),
invoiceItemToBeAdjusted.getAccountId(),
effectiveDate,
- null,
+ description,
amountToAdjust,
currencyForAdjustment,
invoiceItemToBeAdjusted.getId());
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/api/user/DefaultInvoiceUserApi.java b/invoice/src/main/java/org/killbill/billing/invoice/api/user/DefaultInvoiceUserApi.java
index 9e1cd9d..8b5b0ac 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/api/user/DefaultInvoiceUserApi.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/api/user/DefaultInvoiceUserApi.java
@@ -322,18 +322,18 @@ public class DefaultInvoiceUserApi implements InvoiceUserApi {
}
return new CreditAdjInvoiceItem(creditItem.getId(), creditItem.getCreatedDate(), creditItem.getInvoiceId(), creditItem.getAccountId(),
- creditItem.getStartDate(), creditItem.getAmount().negate(), creditItem.getCurrency());
+ creditItem.getStartDate(), creditItem.getDescription(), creditItem.getAmount().negate(), creditItem.getCurrency());
}
@Override
public InvoiceItem insertCredit(final UUID accountId, final BigDecimal amount, final LocalDate effectiveDate,
- final Currency currency, final CallContext context) throws InvoiceApiException {
- return insertCreditForInvoice(accountId, null, amount, effectiveDate, currency, context);
+ final Currency currency, final String description, final CallContext context) throws InvoiceApiException {
+ return insertCreditForInvoice(accountId, null, amount, effectiveDate, currency, description, context);
}
@Override
public InvoiceItem insertCreditForInvoice(final UUID accountId, final UUID invoiceId, final BigDecimal amount,
- final LocalDate effectiveDate, final Currency currency, final CallContext context) throws InvoiceApiException {
+ final LocalDate effectiveDate, final Currency currency, final String description, final CallContext context) throws InvoiceApiException {
if (amount == null || amount.compareTo(BigDecimal.ZERO) <= 0) {
throw new InvoiceApiException(ErrorCode.CREDIT_AMOUNT_INVALID, amount);
}
@@ -358,6 +358,7 @@ public class DefaultInvoiceUserApi implements InvoiceUserApi {
invoiceForCredit.getId(),
accountId,
effectiveDate,
+ description,
// Note! The amount is negated here!
amount.negate(),
currency);
@@ -381,14 +382,14 @@ public class DefaultInvoiceUserApi implements InvoiceUserApi {
@Override
public InvoiceItem insertInvoiceItemAdjustment(final UUID accountId, final UUID invoiceId, final UUID invoiceItemId,
- final LocalDate effectiveDate, final CallContext context) throws InvoiceApiException {
- return insertInvoiceItemAdjustment(accountId, invoiceId, invoiceItemId, effectiveDate, null, null, context);
+ final LocalDate effectiveDate, final String description, final CallContext context) throws InvoiceApiException {
+ return insertInvoiceItemAdjustment(accountId, invoiceId, invoiceItemId, effectiveDate, null, null, description, context);
}
@Override
public InvoiceItem insertInvoiceItemAdjustment(final UUID accountId, final UUID invoiceId, final UUID invoiceItemId,
final LocalDate effectiveDate, @Nullable final BigDecimal amount,
- @Nullable final Currency currency, final CallContext context) throws InvoiceApiException {
+ @Nullable final Currency currency, final String description, final CallContext context) throws InvoiceApiException {
if (amount != null && amount.compareTo(BigDecimal.ZERO) <= 0) {
throw new InvoiceApiException(ErrorCode.INVOICE_ITEM_ADJUSTMENT_AMOUNT_SHOULD_BE_POSITIVE, amount);
}
@@ -402,6 +403,7 @@ public class DefaultInvoiceUserApi implements InvoiceUserApi {
amount,
currency,
effectiveDate,
+ description,
internalCallContextFactory.createInternalCallContext(accountId, context));
invoice.addInvoiceItem(adjustmentItem);
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/model/CreditAdjInvoiceItem.java b/invoice/src/main/java/org/killbill/billing/invoice/model/CreditAdjInvoiceItem.java
index aa9938a..597c4a1 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/model/CreditAdjInvoiceItem.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/model/CreditAdjInvoiceItem.java
@@ -29,19 +29,15 @@ import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.invoice.api.InvoiceItemType;
import org.killbill.billing.util.UUIDs;
-import com.google.common.base.Objects;
+import com.google.common.base.MoreObjects;
public class CreditAdjInvoiceItem extends AdjInvoiceItem {
public CreditAdjInvoiceItem(final UUID invoiceId, final UUID accountId, final LocalDate date,
- final BigDecimal amount, final Currency currency) {
- this(UUIDs.randomUUID(), null, invoiceId, accountId, date, amount, currency);
+ @Nullable final String description, final BigDecimal amount, final Currency currency) {
+ this(UUIDs.randomUUID(), null, invoiceId, accountId, date, description, amount, currency);
}
- public CreditAdjInvoiceItem(final UUID id, @Nullable final DateTime createdDate, final UUID invoiceId, final UUID accountId, final LocalDate date,
- final BigDecimal amount, final Currency currency) {
- this(id, createdDate, invoiceId, accountId, date, null, amount, currency);
- }
public CreditAdjInvoiceItem(final UUID id, @Nullable final DateTime createdDate, final UUID invoiceId, final UUID accountId, final LocalDate date,
@Nullable final String description, final BigDecimal amount, final Currency currency) {
@@ -55,6 +51,6 @@ public class CreditAdjInvoiceItem extends AdjInvoiceItem {
@Override
public String getDescription() {
- return Objects.firstNonNull(description, "Invoice adjustment");
+ return MoreObjects.firstNonNull(description, "Invoice adjustment");
}
}
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/model/ItemAdjInvoiceItem.java b/invoice/src/main/java/org/killbill/billing/invoice/model/ItemAdjInvoiceItem.java
index ff2387a..13656ed 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/model/ItemAdjInvoiceItem.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/model/ItemAdjInvoiceItem.java
@@ -34,16 +34,12 @@ import com.google.common.base.Objects;
public class ItemAdjInvoiceItem extends AdjInvoiceItem {
- public ItemAdjInvoiceItem(final InvoiceItem invoiceItem, final LocalDate effectiveDate,
+ public ItemAdjInvoiceItem(final InvoiceItem linkedInvoiceItem, final LocalDate effectiveDate,
final BigDecimal amount, final Currency currency) {
- this(UUIDs.randomUUID(), invoiceItem.getInvoiceId(), invoiceItem.getAccountId(), effectiveDate,
- amount, currency, invoiceItem.getId());
+ this(UUIDs.randomUUID(), null, linkedInvoiceItem.getInvoiceId(), linkedInvoiceItem.getAccountId(), effectiveDate,
+ linkedInvoiceItem.getDescription(), amount, currency, linkedInvoiceItem.getId());
}
- public ItemAdjInvoiceItem(final UUID id, final UUID invoiceId, final UUID accountId, final LocalDate startDate,
- final BigDecimal amount, final Currency currency, final UUID linkedItemId) {
- this(id, null, invoiceId, accountId, startDate, null, amount, currency, linkedItemId);
- }
public ItemAdjInvoiceItem(final UUID id, @Nullable final DateTime createdDate, final UUID invoiceId, final UUID accountId, final LocalDate startDate,
@Nullable final String description, final BigDecimal amount, final Currency currency, final UUID linkedItemId) {
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 7ebb8d2..42ccbc7 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
@@ -149,7 +149,7 @@ public class DefaultInvoiceFormatter implements InvoiceFormatter {
if (!mergedInvoiceAdjustment.getCurrency().equals(item.getCurrency())) {
invoiceItems.add(item);
} else {
- mergedInvoiceAdjustment = new CreditAdjInvoiceItem(invoice.getId(), invoice.getAccountId(), invoice.getInvoiceDate(),
+ mergedInvoiceAdjustment = new CreditAdjInvoiceItem(invoice.getId(), invoice.getAccountId(), invoice.getInvoiceDate(), mergedInvoiceAdjustment.getDescription(),
mergedInvoiceAdjustment.getAmount().add(item.getAmount()), mergedInvoiceAdjustment.getCurrency());
}
}
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java b/invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
index 2fd989a..2ff479d 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
@@ -201,12 +201,13 @@ public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
// Adjust the invoice for the full amount
final InvoiceItem creditInvoiceItem = invoiceUserApi.insertCreditForInvoice(accountId, invoiceId, invoiceBalance,
- clock.getUTCToday(), accountCurrency, callContext);
+ clock.getUTCToday(), accountCurrency, "some description", callContext);
Assert.assertEquals(creditInvoiceItem.getInvoiceId(), invoiceId);
Assert.assertEquals(creditInvoiceItem.getInvoiceItemType(), InvoiceItemType.CREDIT_ADJ);
Assert.assertEquals(creditInvoiceItem.getAccountId(), accountId);
Assert.assertEquals(creditInvoiceItem.getAmount().compareTo(invoiceBalance.negate()), 0);
Assert.assertEquals(creditInvoiceItem.getCurrency(), accountCurrency);
+ Assert.assertEquals(creditInvoiceItem.getDescription(), "some description");
Assert.assertNull(creditInvoiceItem.getLinkedItemId());
// Verify the adjusted invoice balance
@@ -231,7 +232,8 @@ public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
// Adjust the invoice for a fraction of the balance
final BigDecimal creditAmount = invoiceBalance.divide(BigDecimal.TEN);
final InvoiceItem creditInvoiceItem = invoiceUserApi.insertCreditForInvoice(accountId, invoiceId, creditAmount,
- clock.getUTCToday(), accountCurrency, callContext);
+ clock.getUTCToday(), accountCurrency,
+ null, callContext);
Assert.assertEquals(creditInvoiceItem.getInvoiceId(), invoiceId);
Assert.assertEquals(creditInvoiceItem.getInvoiceItemType(), InvoiceItemType.CREDIT_ADJ);
Assert.assertEquals(creditInvoiceItem.getAccountId(), accountId);
@@ -251,7 +253,8 @@ public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
@Test(groups = "slow")
public void testCantAdjustInvoiceWithNegativeAmount() throws Exception {
try {
- invoiceUserApi.insertCreditForInvoice(accountId, invoiceId, BigDecimal.TEN.negate(), clock.getUTCToday(), accountCurrency, callContext);
+ invoiceUserApi.insertCreditForInvoice(accountId, invoiceId, BigDecimal.TEN.negate(), clock.getUTCToday(), accountCurrency,
+ null, callContext);
Assert.fail("Should not have been able to adjust an invoice with a negative amount");
} catch (InvoiceApiException e) {
Assert.assertEquals(e.getCode(), ErrorCode.CREDIT_AMOUNT_INVALID.getCode());
@@ -274,7 +277,7 @@ public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
// Adjust the invoice for the full amount
final InvoiceItem adjInvoiceItem = invoiceUserApi.insertInvoiceItemAdjustment(accountId, invoiceId, invoiceItem.getId(),
- clock.getUTCToday(), callContext);
+ clock.getUTCToday(), null, callContext);
Assert.assertEquals(adjInvoiceItem.getInvoiceId(), invoiceId);
Assert.assertEquals(adjInvoiceItem.getInvoiceItemType(), InvoiceItemType.ITEM_ADJ);
Assert.assertEquals(adjInvoiceItem.getAccountId(), accountId);
@@ -309,7 +312,7 @@ public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
final BigDecimal adjAmount = invoiceItem.getAmount().divide(BigDecimal.TEN);
final InvoiceItem adjInvoiceItem = invoiceUserApi.insertInvoiceItemAdjustment(accountId, invoiceId, invoiceItem.getId(),
clock.getUTCToday(), adjAmount, accountCurrency,
- callContext);
+ null, callContext);
Assert.assertEquals(adjInvoiceItem.getInvoiceId(), invoiceId);
Assert.assertEquals(adjInvoiceItem.getInvoiceItemType(), InvoiceItemType.ITEM_ADJ);
Assert.assertEquals(adjInvoiceItem.getAccountId(), accountId);
@@ -332,7 +335,7 @@ public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
try {
invoiceUserApi.insertInvoiceItemAdjustment(accountId, invoiceId, invoiceItem.getId(), clock.getUTCToday(),
- BigDecimal.TEN.negate(), accountCurrency, callContext);
+ BigDecimal.TEN.negate(), accountCurrency, null, callContext);
Assert.fail("Should not have been able to adjust an item with a negative amount");
} catch (InvoiceApiException e) {
Assert.assertEquals(e.getCode(), ErrorCode.INVOICE_ITEM_ADJUSTMENT_AMOUNT_SHOULD_BE_POSITIVE.getCode());
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/dao/TestInvoiceDao.java b/invoice/src/test/java/org/killbill/billing/invoice/dao/TestInvoiceDao.java
index 6a16b88..4859577 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/dao/TestInvoiceDao.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/dao/TestInvoiceDao.java
@@ -546,7 +546,7 @@ public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
endDate, rate1, rate1, Currency.USD);
invoiceUtil.createInvoiceItem(item1, context);
- final CreditAdjInvoiceItem creditItem = new CreditAdjInvoiceItem(invoice1.getId(), accountId, new LocalDate(), rate1.negate(), Currency.USD);
+ final CreditAdjInvoiceItem creditItem = new CreditAdjInvoiceItem(invoice1.getId(), accountId, new LocalDate(), null, rate1.negate(), Currency.USD);
invoiceUtil.createInvoiceItem(creditItem, context);
final BigDecimal balance = invoiceDao.getAccountBalance(accountId, context);
@@ -921,7 +921,7 @@ public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
assertEquals(cba.compareTo(new BigDecimal("0.00")), 0);
// FINALLY ISSUE A CREDIT ADJ
- final CreditAdjInvoiceItem creditItem = new CreditAdjInvoiceItem(invoice2.getId(), accountId, new LocalDate(), rate2.negate(), Currency.USD);
+ final CreditAdjInvoiceItem creditItem = new CreditAdjInvoiceItem(invoice2.getId(), accountId, new LocalDate(), null, rate2.negate(), Currency.USD);
invoiceUtil.createInvoiceItem(creditItem, context);
balance = invoiceDao.getAccountBalance(accountId, context);
assertEquals(balance.compareTo(new BigDecimal("0.00")), 0);
@@ -1669,6 +1669,7 @@ public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
invoiceModelDao.getId(),
accountId,
effectiveDate,
+ null,
// Note! The amount is negated here!
creditAmount.negate(),
invoiceModelDao.getCurrency());
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/model/TestItemAdjInvoiceItem.java b/invoice/src/test/java/org/killbill/billing/invoice/model/TestItemAdjInvoiceItem.java
index eccdb7f..a8f7d68 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/model/TestItemAdjInvoiceItem.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/model/TestItemAdjInvoiceItem.java
@@ -32,8 +32,8 @@ public class TestItemAdjInvoiceItem extends InvoiceTestSuiteNoDB {
@Test(groups = "fast")
public void testType() throws Exception {
- final InvoiceItem invoiceItem = new ItemAdjInvoiceItem(UUID.randomUUID(), UUID.randomUUID(), UUID.randomUUID(),
- new LocalDate(2010, 1, 1), new BigDecimal("7.00"), Currency.USD,
+ final InvoiceItem invoiceItem = new ItemAdjInvoiceItem(UUID.randomUUID(), null, UUID.randomUUID(), UUID.randomUUID(),
+ new LocalDate(2010, 1, 1), null, new BigDecimal("7.00"), Currency.USD,
UUID.randomUUID());
Assert.assertEquals(invoiceItem.getInvoiceItemType(), InvoiceItemType.ITEM_ADJ);
}
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java b/invoice/src/test/java/org/killbill/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java
index 725d6d7..611b684 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java
@@ -121,7 +121,7 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
fixedItem.getStartDate(), fixedItem.getAmount(),
fixedItem.getCurrency());
final CreditAdjInvoiceItem creditAdjInvoiceItem = new CreditAdjInvoiceItem(fixedItem.getInvoiceId(), fixedItem.getAccountId(),
- fixedItem.getStartDate(), BigDecimal.ONE.negate(), fixedItem.getCurrency());
+ fixedItem.getStartDate(), null, BigDecimal.ONE.negate(), fixedItem.getCurrency());
final CreditBalanceAdjInvoiceItem creditBalanceAdjInvoiceItem2 = new CreditBalanceAdjInvoiceItem(fixedItem.getInvoiceId(), fixedItem.getAccountId(),
fixedItem.getStartDate(), creditAdjInvoiceItem.getAmount().negate(),
fixedItem.getCurrency());
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CreditJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CreditJson.java
index 5819a22..b3fd236 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CreditJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CreditJson.java
@@ -40,6 +40,8 @@ public class CreditJson extends JsonBase {
private final LocalDate effectiveDate;
@ApiModelProperty(dataType = "java.util.UUID", required = true)
private final String accountId;
+ private final String description;
+
@JsonCreator
public CreditJson(@JsonProperty("creditAmount") final BigDecimal creditAmount,
@@ -47,12 +49,14 @@ public class CreditJson extends JsonBase {
@JsonProperty("invoiceNumber") final String invoiceNumber,
@JsonProperty("effectiveDate") final LocalDate effectiveDate,
@JsonProperty("accountId") final String accountId,
+ @JsonProperty("description") final String description,
@JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
super(auditLogs);
this.creditAmount = creditAmount;
this.invoiceId = invoiceId;
this.invoiceNumber = invoiceNumber;
this.effectiveDate = effectiveDate;
+ this.description = description;
this.accountId = accountId;
}
@@ -63,6 +67,7 @@ public class CreditJson extends JsonBase {
this.invoiceId = toString(credit.getInvoiceId());
this.invoiceNumber = invoice.getInvoiceNumber().toString();
this.effectiveDate = credit.getStartDate();
+ this.description = credit.getDescription();
}
public CreditJson(final Invoice invoice, final InvoiceItem credit) {
@@ -89,6 +94,10 @@ public class CreditJson extends JsonBase {
return accountId;
}
+ public String getDescription() {
+ return description;
+ }
+
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
@@ -97,6 +106,7 @@ public class CreditJson extends JsonBase {
sb.append(", invoiceId=").append(invoiceId);
sb.append(", invoiceNumber='").append(invoiceNumber).append('\'');
sb.append(", effectiveDate=").append(effectiveDate);
+ sb.append(", description=").append(description);
sb.append(", accountId=").append(accountId);
sb.append('}');
return sb.toString();
@@ -123,6 +133,9 @@ public class CreditJson extends JsonBase {
if (invoiceNumber != null ? !invoiceNumber.equals(that.invoiceNumber) : that.invoiceNumber != null) {
return false;
}
+ if (description != null ? !description.equals(that.description) : that.description != null) {
+ return false;
+ }
if (!((effectiveDate == null && that.effectiveDate == null) ||
(effectiveDate != null && that.effectiveDate != null && effectiveDate.compareTo(that.effectiveDate) == 0))) {
return false;
@@ -135,6 +148,7 @@ public class CreditJson extends JsonBase {
public int hashCode() {
int result = creditAmount != null ? creditAmount.hashCode() : 0;
result = 31 * result + (invoiceId != null ? invoiceId.hashCode() : 0);
+ result = 31 * result + (description != null ? description.hashCode() : 0);
result = 31 * result + (invoiceNumber != null ? invoiceNumber.hashCode() : 0);
result = 31 * result + (effectiveDate != null ? effectiveDate.hashCode() : 0);
return result;
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
index 3a83f47..9412cdd 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
@@ -689,7 +689,7 @@ public class AccountResource extends JaxRsResourceBase {
// then we apply some credit on the account.
//
if (externalPayment && remainingRequestPayment.compareTo(BigDecimal.ZERO) > 0) {
- invoiceApi.insertCredit(account.getId(), remainingRequestPayment, clock.getUTCToday(), account.getCurrency(), callContext);
+ invoiceApi.insertCredit(account.getId(), remainingRequestPayment, clock.getUTCToday(), account.getCurrency(), "pay all invoices", callContext);
}
return Response.status(Status.OK).build();
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CreditResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CreditResource.java
index bfad1b1..2d46215 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CreditResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CreditResource.java
@@ -121,11 +121,11 @@ public class CreditResource extends JaxRsResourceBase {
if (json.getInvoiceId() != null) {
// Apply an invoice level credit
credit = invoiceUserApi.insertCreditForInvoice(account.getId(), UUID.fromString(json.getInvoiceId()), json.getCreditAmount(),
- effectiveDate, account.getCurrency(), callContext);
+ effectiveDate, account.getCurrency(), json.getDescription(), callContext);
} else {
// Apply a account level credit
credit = invoiceUserApi.insertCredit(account.getId(), json.getCreditAmount(), effectiveDate,
- account.getCurrency(), callContext);
+ account.getCurrency(), json.getDescription(), callContext);
}
return uriBuilder.buildResponse(uriInfo, CreditResource.class, "getCredit", credit.getId());
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
index 845bfd0..95d58a7 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
@@ -433,6 +433,7 @@ public class InvoiceResource extends JaxRsResourceBase {
UUID.fromString(invoiceId),
UUID.fromString(json.getInvoiceItemId()),
requestedDate,
+ json.getDescription(),
callContext);
} else {
adjustmentItem = invoiceApi.insertInvoiceItemAdjustment(accountId,
@@ -441,6 +442,7 @@ public class InvoiceResource extends JaxRsResourceBase {
requestedDate,
json.getAmount(),
json.getCurrency(),
+ json.getDescription(),
callContext);
}
diff --git a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestCreditJson.java b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestCreditJson.java
index c86a648..e698ec6 100644
--- a/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestCreditJson.java
+++ b/jaxrs/src/test/java/org/killbill/billing/jaxrs/json/TestCreditJson.java
@@ -40,7 +40,7 @@ public class TestCreditJson extends JaxrsTestSuiteNoDB {
final String accountId = UUID.randomUUID().toString();
final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
final CreditJson creditJson = new CreditJson(creditAmount, invoiceId, invoiceNumber, effectiveDate,
- accountId, auditLogs);
+ accountId, null, auditLogs);
Assert.assertEquals(creditJson.getEffectiveDate(), effectiveDate);
Assert.assertEquals(creditJson.getCreditAmount(), creditAmount);
Assert.assertEquals(creditJson.getInvoiceId(), invoiceId);
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 2a38928..89f1074 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
@@ -110,6 +110,6 @@ public class TestInvoiceJsonWithBundleKeys extends JaxrsTestSuiteNoDB {
final String invoiceNumber = UUID.randomUUID().toString();
final LocalDate effectiveDate = clock.getUTCToday();
final String accountId = UUID.randomUUID().toString();
- return new CreditJson(creditAmount, invoiceId, invoiceNumber, effectiveDate, accountId, null);
+ return new CreditJson(creditAmount, invoiceId, invoiceNumber, effectiveDate, accountId, null, null);
}
}
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestCredit.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestCredit.java
index 5bc85f0..f2b0191 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestCredit.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestCredit.java
@@ -53,6 +53,7 @@ public class TestCredit extends TestJaxrsBase {
credit.setAccountId(accountJson.getAccountId());
credit.setInvoiceId(invoice.getInvoiceId());
credit.setCreditAmount(creditAmount);
+ credit.setDescription("description");
final Credit objFromJson = killBillClient.createCredit(credit, createdBy, reason, comment);
// We can't just compare the object via .equals() due e.g. to the invoice id
@@ -60,6 +61,7 @@ public class TestCredit extends TestJaxrsBase {
assertEquals(objFromJson.getInvoiceId(), invoice.getInvoiceId());
assertEquals(objFromJson.getCreditAmount().compareTo(creditAmount), 0);
assertEquals(objFromJson.getEffectiveDate().compareTo(effectiveDate.toLocalDate()), 0);
+ assertEquals(objFromJson.getDescription().compareTo("description"), 0);
}
@Test(groups = "slow", description = "Cannot add a credit if the account doesn't exist")