killbill-aplcache
Changes
invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java 18(+4 -14)
invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGeneratorUnit.java 1(+0 -1)
invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java 15(+9 -6)
Details
diff --git a/analytics/src/main/java/com/ning/billing/analytics/model/BusinessInvoiceModelDao.java b/analytics/src/main/java/com/ning/billing/analytics/model/BusinessInvoiceModelDao.java
index ad28afa..dae7887 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/model/BusinessInvoiceModelDao.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/model/BusinessInvoiceModelDao.java
@@ -60,7 +60,7 @@ public class BusinessInvoiceModelDao extends EntityBase {
}
public BusinessInvoiceModelDao(final String accountKey, final Invoice invoice) {
- this(invoice.getAccountId(), accountKey, invoice.getChargedAmount(), invoice.getCreditAdjAmount(), invoice.getPaidAmount(), invoice.getBalance(),
+ this(invoice.getAccountId(), accountKey, invoice.getChargedAmount(), invoice.getCreditedAmount(), invoice.getPaidAmount(), invoice.getBalance(),
invoice.getCreatedDate(), invoice.getCurrency(), invoice.getInvoiceDate(), invoice.getId(), invoice.getInvoiceNumber(), invoice.getTargetDate(),
invoice.getUpdatedDate());
}
diff --git a/api/src/main/java/com/ning/billing/invoice/api/Invoice.java b/api/src/main/java/com/ning/billing/invoice/api/Invoice.java
index 402ad8d..c6526a4 100644
--- a/api/src/main/java/com/ning/billing/invoice/api/Invoice.java
+++ b/api/src/main/java/com/ning/billing/invoice/api/Invoice.java
@@ -29,73 +29,62 @@ import com.ning.billing.util.entity.Entity;
public interface Invoice extends Entity {
/**
- *
* @param item the invoice ietm to add
* @return true if successful
*/
boolean addInvoiceItem(InvoiceItem item);
/**
- *
* @param items the list of ietms to add
* @return true is successful
*/
boolean addInvoiceItems(Collection<InvoiceItem> items);
/**
- *
* @return the list of items on that invoice
*/
List<InvoiceItem> getInvoiceItems();
/**
- *
* @param clazz the filter class for the items
* @param <T> a InvoiceItem type
- * @return the list of invoice ietms on that invoice for that type
+ * @return the list of invoice ietms on that invoice for that type
*/
public <T extends InvoiceItem> List<InvoiceItem> getInvoiceItems(Class<T> clazz);
/**
- *
* @return the number of items on that invoice
*/
int getNumberOfItems();
/**
- *
* @param payment the successful payment for that invoice
- * @return true if we were able to add the payment
+ * @return true if we were able to add the payment
*/
boolean addPayment(InvoicePayment payment);
/**
- *
- * @param payments the list of payments to add on that invoice
- * @return true if we were able to add the payments
+ * @param payments the list of payments to add on that invoice
+ * @return true if we were able to add the payments
*/
boolean addPayments(Collection<InvoicePayment> payments);
/**
- *
* @return the list of payments associated with that invoice
*/
List<InvoicePayment> getPayments();
/**
- *
* @return the number of payments on that invoice
*/
int getNumberOfPayments();
/**
- *
* @return the accountId
*/
UUID getAccountId();
/**
- *
* @return the invoice number
*/
Integer getInvoiceNumber();
@@ -113,61 +102,41 @@ public interface Invoice extends Entity {
LocalDate getTargetDate();
/**
- *
* @return the currency associated with that invoice
*/
Currency getCurrency();
/**
- *
- * @return the amount that was paid on that invoice
+ * @return the sum of all successful payment amounts for that invoice
*/
BigDecimal getPaidAmount();
/**
- *
- * @return the original charged amount when the invoice was created
+ * @return the sum of all EXTERNAL_CHARGE, FIXED and RECURRING item amounts when the invoice was created
*/
BigDecimal getOriginalChargedAmount();
/**
- *
- * @return the current charged amount for that invoice
+ * @return the sum of all charges (EXTERNAL_CHARGE, FIXED, RECURRING) and adjustments (item or invoice adjustment) amounts
*/
BigDecimal getChargedAmount();
/**
- *
- * @return the amount of account credit on that invoice
+ * @return the sum of all CBA_ADJ items
*/
- BigDecimal getCBAAmount();
+ BigDecimal getCreditedAmount();
/**
- *
- * @return the total adjusted amount on that invoice
- */
- BigDecimal getTotalAdjAmount();
-
- /**
- *
- * @return the total credit amount on that invoice
+ * @return the sum of all refunds and chargebacks for payments associated with that invoice
*/
- BigDecimal getCreditAdjAmount();
+ BigDecimal getRefundedAmount();
/**
- *
- * @return the total refunded amount on that invoice
- */
- BigDecimal getRefundAdjAmount();
-
- /**
- *
* @return the current balance on that invoice
*/
BigDecimal getBalance();
/**
- *
* @return true if this is a migration invoice
*/
boolean isMigrationInvoice();
diff --git a/invoice/src/main/java/com/ning/billing/invoice/calculator/InvoiceCalculatorUtils.java b/invoice/src/main/java/com/ning/billing/invoice/calculator/InvoiceCalculatorUtils.java
new file mode 100644
index 0000000..99c9c02
--- /dev/null
+++ b/invoice/src/main/java/com/ning/billing/invoice/calculator/InvoiceCalculatorUtils.java
@@ -0,0 +1,188 @@
+/*
+ * Copyright 2010-2013 Ning, Inc.
+ *
+ * Ning licenses this file to you under the Apache License, version 2.0
+ * (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.invoice.calculator;
+
+import java.math.BigDecimal;
+
+import javax.annotation.Nullable;
+
+import org.joda.time.DateTime;
+
+import com.ning.billing.invoice.api.InvoiceItem;
+import com.ning.billing.invoice.api.InvoiceItemType;
+import com.ning.billing.invoice.api.InvoicePayment;
+import com.ning.billing.invoice.api.InvoicePayment.InvoicePaymentType;
+import com.ning.billing.invoice.model.InvoicingConfiguration;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
+
+public abstract class InvoiceCalculatorUtils {
+
+ private static final int NUMBER_OF_DECIMALS = InvoicingConfiguration.getNumberOfDecimals();
+ private static final int ROUNDING_METHOD = InvoicingConfiguration.getRoundingMode();
+
+ // Invoice adjustments
+ public static boolean isInvoiceAdjustmentItem(final InvoiceItem invoiceItem, final Iterable<InvoiceItem> otherInvoiceItems) {
+ // Either REFUND_ADJ
+ return InvoiceItemType.REFUND_ADJ.equals(invoiceItem.getInvoiceItemType()) ||
+ // Or invoice level credit, i.e. credit adj, but NOT on its on own invoice
+ (InvoiceItemType.CREDIT_ADJ.equals(invoiceItem.getInvoiceItemType()) &&
+ !(Iterables.size(otherInvoiceItems) == 1 &&
+ InvoiceItemType.CBA_ADJ.equals(otherInvoiceItems.iterator().next().getInvoiceItemType()) &&
+ otherInvoiceItems.iterator().next().getInvoiceId().equals(invoiceItem.getInvoiceId()) &&
+ otherInvoiceItems.iterator().next().getAmount().compareTo(invoiceItem.getAmount().negate()) == 0));
+ }
+
+ // Item adjustments
+ public static boolean isInvoiceItemAdjustmentItem(final InvoiceItem invoiceItem) {
+ return InvoiceItemType.ITEM_ADJ.equals(invoiceItem.getInvoiceItemType()) || InvoiceItemType.REPAIR_ADJ.equals(invoiceItem.getInvoiceItemType());
+ }
+
+ // Account credits, gained or consumed
+ public static boolean isAccountCreditItem(final InvoiceItem invoiceItem) {
+ return InvoiceItemType.CBA_ADJ.equals(invoiceItem.getInvoiceItemType());
+ }
+
+ // Regular line item (charges)
+ public static boolean isCharge(final InvoiceItem invoiceItem) {
+ return InvoiceItemType.EXTERNAL_CHARGE.equals(invoiceItem.getInvoiceItemType()) ||
+ InvoiceItemType.FIXED.equals(invoiceItem.getInvoiceItemType()) ||
+ InvoiceItemType.RECURRING.equals(invoiceItem.getInvoiceItemType());
+ }
+
+ public static BigDecimal computeInvoiceBalance(@Nullable final Iterable<InvoiceItem> invoiceItems,
+ @Nullable final Iterable<InvoicePayment> invoicePayments) {
+ return computeInvoiceAmountCharged(invoiceItems)
+ .add(computeInvoiceAmountCredited(invoiceItems))
+ .add(computeInvoiceAmountAdjustedForAccountCredit(invoiceItems))
+ .add(
+ computeInvoiceAmountPaid(invoicePayments).negate()
+ .add(
+ computeInvoiceAmountRefunded(invoicePayments).negate()
+ )
+ )
+ .setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
+ }
+
+ // Snowflake for the CREDIT_ADJ on its own invoice
+ private static BigDecimal computeInvoiceAmountAdjustedForAccountCredit(final Iterable<InvoiceItem> invoiceItems) {
+ BigDecimal amountAdjusted = BigDecimal.ZERO;
+ if (invoiceItems == null) {
+ return amountAdjusted;
+ }
+
+ for (final InvoiceItem invoiceItem : invoiceItems) {
+ final Iterable<InvoiceItem> otherInvoiceItems = Iterables.filter(invoiceItems, new Predicate<InvoiceItem>() {
+ @Override
+ public boolean apply(final InvoiceItem input) {
+ return !input.getId().equals(invoiceItem.getId());
+ }
+ });
+
+ if (InvoiceItemType.CREDIT_ADJ.equals(invoiceItem.getInvoiceItemType()) &&
+ (Iterables.size(otherInvoiceItems) == 1 &&
+ InvoiceItemType.CBA_ADJ.equals(otherInvoiceItems.iterator().next().getInvoiceItemType()) &&
+ otherInvoiceItems.iterator().next().getInvoiceId().equals(invoiceItem.getInvoiceId()) &&
+ otherInvoiceItems.iterator().next().getAmount().compareTo(invoiceItem.getAmount().negate()) == 0)) {
+ amountAdjusted = amountAdjusted.add(invoiceItem.getAmount());
+ }
+ }
+ return amountAdjusted.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
+ }
+
+ public static BigDecimal computeInvoiceAmountCharged(@Nullable final Iterable<InvoiceItem> invoiceItems) {
+ BigDecimal amountCharged = BigDecimal.ZERO;
+ if (invoiceItems == null) {
+ return amountCharged;
+ }
+
+ for (final InvoiceItem invoiceItem : invoiceItems) {
+ final Iterable<InvoiceItem> otherInvoiceItems = Iterables.filter(invoiceItems, new Predicate<InvoiceItem>() {
+ @Override
+ public boolean apply(final InvoiceItem input) {
+ return !input.getId().equals(invoiceItem.getId());
+ }
+ });
+
+ if (isCharge(invoiceItem) ||
+ isInvoiceAdjustmentItem(invoiceItem, otherInvoiceItems) ||
+ isInvoiceItemAdjustmentItem(invoiceItem)) {
+ amountCharged = amountCharged.add(invoiceItem.getAmount());
+ }
+ }
+ return amountCharged.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
+ }
+
+ public static BigDecimal computeInvoiceOriginalAmountCharged(final DateTime invoiceCreatedDate, @Nullable final Iterable<InvoiceItem> invoiceItems) {
+ BigDecimal amountCharged = BigDecimal.ZERO;
+ if (invoiceItems == null) {
+ return amountCharged;
+ }
+
+ for (final InvoiceItem invoiceItem : invoiceItems) {
+ if (isCharge(invoiceItem) &&
+ invoiceItem.getCreatedDate().equals(invoiceCreatedDate)) {
+ amountCharged = amountCharged.add(invoiceItem.getAmount());
+ }
+ }
+ return amountCharged.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
+ }
+
+ public static BigDecimal computeInvoiceAmountCredited(@Nullable final Iterable<InvoiceItem> invoiceItems) {
+ BigDecimal amountCredited = BigDecimal.ZERO;
+ if (invoiceItems == null) {
+ return amountCredited;
+ }
+
+ for (final InvoiceItem invoiceItem : invoiceItems) {
+ if (isAccountCreditItem(invoiceItem)) {
+ amountCredited = amountCredited.add(invoiceItem.getAmount());
+ }
+ }
+ return amountCredited.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
+ }
+
+ public static BigDecimal computeInvoiceAmountPaid(@Nullable final Iterable<InvoicePayment> invoicePayments) {
+ BigDecimal amountPaid = BigDecimal.ZERO;
+ if (invoicePayments == null) {
+ return amountPaid;
+ }
+
+ for (final InvoicePayment invoicePayment : invoicePayments) {
+ if (InvoicePaymentType.ATTEMPT.equals(invoicePayment.getType())) {
+ amountPaid = amountPaid.add(invoicePayment.getAmount());
+ }
+ }
+ return amountPaid.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
+ }
+
+ public static BigDecimal computeInvoiceAmountRefunded(@Nullable final Iterable<InvoicePayment> invoicePayments) {
+ BigDecimal amountRefunded = BigDecimal.ZERO;
+ if (invoicePayments == null) {
+ return amountRefunded;
+ }
+
+ for (final InvoicePayment invoicePayment : invoicePayments) {
+ if (InvoicePaymentType.REFUND.equals(invoicePayment.getType()) ||
+ InvoicePaymentType.CHARGED_BACK.equals(invoicePayment.getType())) {
+ amountRefunded = amountRefunded.add(invoicePayment.getAmount());
+ }
+ }
+ return amountRefunded.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
+ }
+}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/CBADao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/CBADao.java
index e3d88c6..a4a8b9c 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/CBADao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/CBADao.java
@@ -23,7 +23,6 @@ import java.util.UUID;
import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.model.CreditBalanceAdjInvoiceItem;
-import com.ning.billing.invoice.model.InvoiceItemList;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
import com.ning.billing.util.entity.EntityPersistenceException;
@@ -51,8 +50,7 @@ public class CBADao {
public BigDecimal getAccountCBAFromTransaction(final List<InvoiceModelDao> invoices) {
BigDecimal cba = BigDecimal.ZERO;
for (final InvoiceModelDao cur : invoices) {
- final InvoiceItemList invoiceItems = new InvoiceItemList(cur.getInvoiceItems());
- cba = cba.add(invoiceItems.getCBAAmount());
+ cba = cba.add(InvoiceModelDaoHelper.getCBAAmount(cur));
}
return cba;
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
index dd614eb..36cc1be 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
@@ -17,9 +17,6 @@
package com.ning.billing.invoice.dao;
import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@@ -39,16 +36,12 @@ import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.api.InvoiceItemType;
import com.ning.billing.invoice.api.InvoicePayment.InvoicePaymentType;
import com.ning.billing.invoice.api.user.DefaultInvoiceAdjustmentEvent;
-import com.ning.billing.invoice.model.CreditAdjInvoiceItem;
-import com.ning.billing.invoice.model.CreditBalanceAdjInvoiceItem;
-import com.ning.billing.invoice.model.InvoiceItemList;
import com.ning.billing.invoice.notification.NextBillingDatePoster;
import com.ning.billing.util.cache.CacheControllerDispatcher;
import com.ning.billing.util.callcontext.InternalCallContext;
import com.ning.billing.util.callcontext.InternalTenantContext;
import com.ning.billing.util.clock.Clock;
import com.ning.billing.util.dao.NonEntityDao;
-import com.ning.billing.util.entity.EntityPersistenceException;
import com.ning.billing.util.entity.dao.EntityDaoBase;
import com.ning.billing.util.entity.dao.EntitySqlDao;
import com.ning.billing.util.entity.dao.EntitySqlDaoTransactionWrapper;
@@ -57,12 +50,6 @@ import com.ning.billing.util.entity.dao.EntitySqlDaoWrapperFactory;
import com.ning.billing.util.svcsapi.bus.InternalBus;
import com.ning.billing.util.svcsapi.bus.InternalBus.EventBusException;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Objects;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableMap.Builder;
-import com.google.common.collect.Ordering;
import com.google.inject.Inject;
public class DefaultInvoiceDao extends EntityDaoBase<InvoiceModelDao, Invoice, InvoiceApiException> implements InvoiceDao {
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceModelDaoHelper.java b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceModelDaoHelper.java
index 18f2b50..8dedb42 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceModelDaoHelper.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoiceModelDaoHelper.java
@@ -18,36 +18,44 @@ package com.ning.billing.invoice.dao;
import java.math.BigDecimal;
-import com.ning.billing.invoice.model.InvoiceItemList;
+import javax.annotation.Nullable;
+
+import com.ning.billing.invoice.api.InvoiceItem;
+import com.ning.billing.invoice.api.InvoicePayment;
+import com.ning.billing.invoice.calculator.InvoiceCalculatorUtils;
+import com.ning.billing.invoice.model.DefaultInvoicePayment;
+import com.ning.billing.invoice.model.InvoiceItemFactory;
+
+import com.google.common.base.Function;
+import com.google.common.collect.Iterables;
public class InvoiceModelDaoHelper {
private InvoiceModelDaoHelper() {}
public static BigDecimal getBalance(final InvoiceModelDao invoiceModelDao) {
- final InvoiceItemList invoiceItems = new InvoiceItemList(invoiceModelDao.getInvoiceItems());
- return invoiceItems.getBalance(getPaidAmount(invoiceModelDao));
+ return InvoiceCalculatorUtils.computeInvoiceBalance(
+ Iterables.transform(invoiceModelDao.getInvoiceItems(), new Function<InvoiceItemModelDao, InvoiceItem>() {
+ @Override
+ public InvoiceItem apply(final InvoiceItemModelDao input) {
+ return InvoiceItemFactory.fromModelDao(input);
+ }
+ }),
+ Iterables.transform(invoiceModelDao.getInvoicePayments(), new Function<InvoicePaymentModelDao, InvoicePayment>() {
+ @Nullable
+ @Override
+ public InvoicePayment apply(final InvoicePaymentModelDao input) {
+ return new DefaultInvoicePayment(input);
+ }
+ }));
}
public static BigDecimal getCBAAmount(final InvoiceModelDao invoiceModelDao) {
- final InvoiceItemList invoiceItems = new InvoiceItemList(invoiceModelDao.getInvoiceItems());
- return invoiceItems.getCBAAmount();
- }
-
- public static BigDecimal getPaidAmount(final InvoiceModelDao invoiceModelDao) {
- // Compute payments
- BigDecimal amountPaid = BigDecimal.ZERO;
- for (final InvoicePaymentModelDao payment : invoiceModelDao.getInvoicePayments()) {
- if (payment.getAmount() != null) {
- amountPaid = amountPaid.add(payment.getAmount());
+ return InvoiceCalculatorUtils.computeInvoiceAmountCredited(Iterables.transform(invoiceModelDao.getInvoiceItems(), new Function<InvoiceItemModelDao, InvoiceItem>() {
+ @Override
+ public InvoiceItem apply(final InvoiceItemModelDao input) {
+ return InvoiceItemFactory.fromModelDao(input);
}
- }
-
- return amountPaid;
- }
-
- public static BigDecimal getChargedAmount(final InvoiceModelDao invoiceModelDao) {
- final InvoiceItemList invoiceItems = new InvoiceItemList(invoiceModelDao.getInvoiceItems());
- return invoiceItems.getChargedAmount();
+ }));
}
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoice.java b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoice.java
index ff015f5..dc4df00 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoice.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/DefaultInvoice.java
@@ -31,6 +31,7 @@ import com.ning.billing.catalog.api.Currency;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoicePayment;
+import com.ning.billing.invoice.calculator.InvoiceCalculatorUtils;
import com.ning.billing.invoice.dao.InvoiceItemModelDao;
import com.ning.billing.invoice.dao.InvoiceModelDao;
import com.ning.billing.invoice.dao.InvoicePaymentModelDao;
@@ -41,7 +42,7 @@ import com.google.common.collect.Collections2;
public class DefaultInvoice extends EntityBase implements Invoice {
- private final InvoiceItemList invoiceItems = new InvoiceItemList();
+ private final List<InvoiceItem> invoiceItems = new ArrayList<InvoiceItem>();
private final List<InvoicePayment> payments = new ArrayList<InvoicePayment>();
private final UUID accountId;
private final Integer invoiceNumber;
@@ -179,48 +180,32 @@ public class DefaultInvoice extends EntityBase implements Invoice {
@Override
public BigDecimal getPaidAmount() {
- BigDecimal amountPaid = BigDecimal.ZERO;
- for (final InvoicePayment payment : payments) {
- if (payment.getAmount() != null) {
- amountPaid = amountPaid.add(payment.getAmount());
- }
- }
- return amountPaid;
+ return InvoiceCalculatorUtils.computeInvoiceAmountPaid(payments);
}
@Override
public BigDecimal getOriginalChargedAmount() {
- return invoiceItems.getOriginalChargedAmount();
+ return InvoiceCalculatorUtils.computeInvoiceOriginalAmountCharged(createdDate, invoiceItems);
}
@Override
public BigDecimal getChargedAmount() {
- return invoiceItems.getChargedAmount();
- }
-
- @Override
- public BigDecimal getCBAAmount() {
- return invoiceItems.getCBAAmount();
- }
-
- @Override
- public BigDecimal getTotalAdjAmount() {
- return invoiceItems.getTotalAdjAmount();
+ return InvoiceCalculatorUtils.computeInvoiceAmountCharged(invoiceItems);
}
@Override
- public BigDecimal getCreditAdjAmount() {
- return invoiceItems.getCreditAdjAmount();
+ public BigDecimal getCreditedAmount() {
+ return InvoiceCalculatorUtils.computeInvoiceAmountCredited(invoiceItems);
}
@Override
- public BigDecimal getRefundAdjAmount() {
- return invoiceItems.getRefundAdjAmount();
+ public BigDecimal getRefundedAmount() {
+ return InvoiceCalculatorUtils.computeInvoiceAmountRefunded(payments);
}
@Override
public BigDecimal getBalance() {
- return invoiceItems.getBalance(getPaidAmount());
+ return InvoiceCalculatorUtils.computeInvoiceBalance(invoiceItems, payments);
}
@Override
diff --git a/invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java b/invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
index f75197f..23bad28 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/template/formatters/DefaultInvoiceFormatter.java
@@ -188,11 +188,6 @@ public class DefaultInvoiceFormatter implements InvoiceFormatter {
}
@Override
- public BigDecimal getCBAAmount() {
- return round(Objects.firstNonNull(invoice.getCBAAmount(), BigDecimal.ZERO));
- }
-
- @Override
public BigDecimal getBalance() {
return round(Objects.firstNonNull(invoice.getBalance(), BigDecimal.ZERO));
}
@@ -287,17 +282,12 @@ public class DefaultInvoiceFormatter implements InvoiceFormatter {
}
@Override
- public BigDecimal getTotalAdjAmount() {
- return round(Objects.firstNonNull(invoice.getTotalAdjAmount(), BigDecimal.ZERO));
- }
-
- @Override
- public BigDecimal getCreditAdjAmount() {
- return round(Objects.firstNonNull(invoice.getCreditAdjAmount(), BigDecimal.ZERO));
+ public BigDecimal getCreditedAmount() {
+ return round(Objects.firstNonNull(invoice.getCreditedAmount(), BigDecimal.ZERO));
}
@Override
- public BigDecimal getRefundAdjAmount() {
- return round(Objects.firstNonNull(invoice.getRefundAdjAmount(), BigDecimal.ZERO));
+ public BigDecimal getRefundedAmount() {
+ return round(Objects.firstNonNull(invoice.getRefundedAmount(), BigDecimal.ZERO));
}
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/api/user/TestDefaultInvoiceUserApi.java b/invoice/src/test/java/com/ning/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
index 5edcfa7..24a3618 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
@@ -238,7 +238,6 @@ public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
// Verify the adjusted invoice balance
final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
- // Note! The invoice code will round (see InvoiceItemList)
verifyAdjustedInvoiceBalance(invoiceBalance, creditAmount, adjustedInvoiceBalance);
// Verify the adjusted account balance
@@ -282,7 +281,6 @@ public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
// Verify the adjusted invoice balance
final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
- // Note! The invoice code will round (see InvoiceItemList)
verifyAdjustedInvoiceBalance(invoiceBalance, invoiceItem.getAmount(), adjustedInvoiceBalance);
// Verify the adjusted account balance
@@ -318,7 +316,6 @@ public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
// Verify the adjusted invoice balance
final BigDecimal adjustedInvoiceBalance = invoiceUserApi.getInvoice(invoiceId, callContext).getBalance();
- // Note! The invoice code will round (see InvoiceItemList)
verifyAdjustedInvoiceBalance(invoiceBalance, adjAmount, adjustedInvoiceBalance);
// Verify the adjusted account balance
@@ -340,8 +337,7 @@ public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
}
private void verifyAdjustedInvoiceBalance(final BigDecimal invoiceBalance, final BigDecimal adjAmount, final BigDecimal adjustedInvoiceBalance) {
- Assert.assertEquals(adjustedInvoiceBalance.compareTo(invoiceBalance.add(adjAmount.negate().setScale(InvoicingConfiguration.getNumberOfDecimals(),
- InvoicingConfiguration.getRoundingMode()))
+ Assert.assertEquals(adjustedInvoiceBalance.compareTo(invoiceBalance.add(adjAmount.negate())
.setScale(InvoicingConfiguration.getNumberOfDecimals(),
InvoicingConfiguration.getRoundingMode())), 0);
}
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java
index d1ed484..f4dc8fe 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/TestInvoiceDao.java
@@ -16,8 +16,6 @@
package com.ning.billing.invoice.dao;
-import static com.ning.billing.invoice.TestInvoiceHelper.*;
-
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
@@ -69,6 +67,11 @@ import com.ning.billing.util.svcapi.junction.BillingModeType;
import com.google.common.collect.ImmutableMap;
+import static com.ning.billing.invoice.TestInvoiceHelper.FIFTEEN;
+import static com.ning.billing.invoice.TestInvoiceHelper.FIVE;
+import static com.ning.billing.invoice.TestInvoiceHelper.TEN;
+import static com.ning.billing.invoice.TestInvoiceHelper.TWENTY;
+import static com.ning.billing.invoice.TestInvoiceHelper.ZERO;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
@@ -124,7 +127,6 @@ public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
final InvoiceModelDao savedInvoice = invoiceDao.getById(invoiceId, internalCallContext);
assertNotNull(savedInvoice);
assertEquals(InvoiceModelDaoHelper.getBalance(savedInvoice).compareTo(new BigDecimal("21.00")), 0);
- assertEquals(InvoiceModelDaoHelper.getPaidAmount(savedInvoice), BigDecimal.ZERO);
assertEquals(savedInvoice.getInvoiceItems().size(), 1);
final BigDecimal paymentAmount = new BigDecimal("11.00");
@@ -136,9 +138,7 @@ public class TestInvoiceDao extends InvoiceTestSuiteWithEmbeddedDB {
final InvoiceModelDao retrievedInvoice = invoiceDao.getById(invoiceId, internalCallContext);
assertNotNull(retrievedInvoice);
assertEquals(retrievedInvoice.getInvoiceItems().size(), 1);
- assertEquals(InvoiceModelDaoHelper.getChargedAmount(retrievedInvoice).compareTo(new BigDecimal("21.00")), 0);
assertEquals(InvoiceModelDaoHelper.getBalance(retrievedInvoice).compareTo(new BigDecimal("10.00")), 0);
- assertEquals(InvoiceModelDaoHelper.getPaidAmount(retrievedInvoice).compareTo(new BigDecimal("11.00")), 0);
}
@Test(groups = "slow")
diff --git a/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java b/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java
index d7a337a..847d1a1 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGenerator.java
@@ -27,7 +27,6 @@ import java.util.UUID;
import javax.annotation.Nullable;
import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
import org.joda.time.LocalDate;
import org.mockito.Mockito;
import org.slf4j.Logger;
@@ -52,8 +51,6 @@ import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceApiException;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoicePayment.InvoicePaymentType;
-import com.ning.billing.invoice.model.CreditBalanceAdjInvoiceItem;
-import com.ning.billing.invoice.model.DefaultInvoice;
import com.ning.billing.invoice.model.DefaultInvoicePayment;
import com.ning.billing.invoice.model.FixedPriceInvoiceItem;
import com.ning.billing.invoice.model.RecurringInvoiceItem;
@@ -906,7 +903,7 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
assertEquals(invoice2.getBalance().compareTo(ZERO), 0);
// ensure that the account has a credit balance
- final BigDecimal creditBalance = invoice1.getCBAAmount().add(invoice2.getCBAAmount());
+ final BigDecimal creditBalance = invoice1.getCreditedAmount().add(invoice2.getCreditedAmount());
assertTrue(creditBalance.compareTo(FIVE) == 0);
}
@@ -1008,9 +1005,9 @@ public class TestDefaultInvoiceGenerator extends InvoiceTestSuiteNoDB {
private void printDetailInvoice(final Invoice invoice) {
log.info("-------------------- START DETAIL ----------------------");
log.info("Invoice " + invoice.getId() + ": BALANCE = " + invoice.getBalance()
- + ", CBA = " + invoice.getCBAAmount()
+ + ", CBA = " + invoice.getCreditedAmount()
+ ", CHARGE_AMOUNT = " + invoice.getChargedAmount()
- + ", ADJ_AMOUNT = " + invoice.getCreditAdjAmount());
+ + ", ADJ_AMOUNT = " + invoice.getCreditedAmount());
for (final InvoiceItem cur : invoice.getInvoiceItems()) {
log.info(cur.toString());
diff --git a/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGeneratorUnit.java b/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGeneratorUnit.java
index e97609d..b56a6d9 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGeneratorUnit.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/generator/TestDefaultInvoiceGeneratorUnit.java
@@ -29,7 +29,6 @@ import com.ning.billing.invoice.InvoiceTestSuiteNoDB;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoiceItemType;
-import com.ning.billing.invoice.model.CreditBalanceAdjInvoiceItem;
import com.ning.billing.invoice.model.FixedPriceInvoiceItem;
import com.ning.billing.invoice.model.RecurringInvoiceItem;
import com.ning.billing.invoice.model.RepairAdjInvoiceItem;
diff --git a/invoice/src/test/java/com/ning/billing/invoice/model/TestExternalChargeInvoiceItem.java b/invoice/src/test/java/com/ning/billing/invoice/model/TestExternalChargeInvoiceItem.java
index 2865b3f..d5fc03a 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/model/TestExternalChargeInvoiceItem.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/model/TestExternalChargeInvoiceItem.java
@@ -26,8 +26,6 @@ import org.testng.annotations.Test;
import com.ning.billing.catalog.api.Currency;
import com.ning.billing.invoice.InvoiceTestSuiteNoDB;
import com.ning.billing.invoice.api.InvoiceItemType;
-import com.ning.billing.util.clock.Clock;
-import com.ning.billing.util.clock.ClockMock;
public class TestExternalChargeInvoiceItem extends InvoiceTestSuiteNoDB {
diff --git a/invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java b/invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java
index 7998d77..7b10ce6 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/template/formatters/TestDefaultInvoiceFormatter.java
@@ -27,7 +27,6 @@ import org.joda.time.LocalDate;
import org.skife.config.ConfigurationObjectFactory;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
import com.ning.billing.catalog.api.Currency;
@@ -35,10 +34,12 @@ import com.ning.billing.invoice.InvoiceTestSuiteNoDB;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceItem;
import com.ning.billing.invoice.api.InvoiceItemType;
+import com.ning.billing.invoice.api.InvoicePayment.InvoicePaymentType;
import com.ning.billing.invoice.api.formatters.InvoiceFormatter;
import com.ning.billing.invoice.model.CreditAdjInvoiceItem;
import com.ning.billing.invoice.model.CreditBalanceAdjInvoiceItem;
import com.ning.billing.invoice.model.DefaultInvoice;
+import com.ning.billing.invoice.model.DefaultInvoicePayment;
import com.ning.billing.invoice.model.FixedPriceInvoiceItem;
import com.ning.billing.invoice.model.RefundAdjInvoiceItem;
import com.ning.billing.invoice.model.RepairAdjInvoiceItem;
@@ -80,7 +81,7 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
// Check the scenario
Assert.assertEquals(invoice.getBalance().doubleValue(), 10.00);
- Assert.assertEquals(invoice.getCBAAmount().doubleValue(), 0.00);
+ Assert.assertEquals(invoice.getCreditedAmount().doubleValue(), 0.00);
// Verify the merge
final InvoiceFormatter formatter = new DefaultInvoiceFormatter(config, invoice, Locale.US);
@@ -119,7 +120,7 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
fixedItem.getCurrency());
final RefundAdjInvoiceItem refundAdjInvoiceItem = new RefundAdjInvoiceItem(fixedItem.getInvoiceId(), fixedItem.getAccountId(),
fixedItem.getStartDate(), BigDecimal.ONE.negate(), fixedItem.getCurrency());
- final Invoice invoice = new DefaultInvoice(fixedItem.getInvoiceId(), fixedItem.getAccountId(), null,
+ final DefaultInvoice invoice = new DefaultInvoice(fixedItem.getInvoiceId(), fixedItem.getAccountId(), null,
new LocalDate(), new LocalDate(), Currency.USD, false);
invoice.addInvoiceItem(fixedItem);
invoice.addInvoiceItem(repairAdjInvoiceItem);
@@ -127,10 +128,12 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
invoice.addInvoiceItem(creditAdjInvoiceItem);
invoice.addInvoiceItem(creditBalanceAdjInvoiceItem2);
invoice.addInvoiceItem(refundAdjInvoiceItem);
+ invoice.addPayment(new DefaultInvoicePayment(InvoicePaymentType.ATTEMPT, UUID.randomUUID(), invoice.getId(), clock.getUTCNow(), BigDecimal.TEN, Currency.USD));
+ invoice.addPayment(new DefaultInvoicePayment(InvoicePaymentType.REFUND, UUID.randomUUID(), invoice.getId(), clock.getUTCNow(), BigDecimal.ONE.negate(), Currency.USD));
// Check the scenario
- Assert.assertEquals(invoice.getBalance().doubleValue(), 9.00);
- Assert.assertEquals(invoice.getCBAAmount().doubleValue(), 11.00);
- Assert.assertEquals(invoice.getRefundAdjAmount().doubleValue(), -1.00);
+ Assert.assertEquals(invoice.getBalance().doubleValue(), 0.00);
+ Assert.assertEquals(invoice.getCreditedAmount().doubleValue(), 11.00);
+ Assert.assertEquals(invoice.getRefundedAmount().doubleValue(), -1.00);
// Verify the merge
final InvoiceFormatter formatter = new DefaultInvoiceFormatter(config, invoice, Locale.US);
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonSimple.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonSimple.java
index ee87e8d..dce72c6 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonSimple.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonSimple.java
@@ -39,12 +39,10 @@ public class InvoiceJsonSimple extends JsonBase {
private final BigDecimal balance;
private final BigDecimal creditAdj;
private final BigDecimal refundAdj;
- private final BigDecimal cba;
private final String accountId;
@JsonCreator
public InvoiceJsonSimple(@JsonProperty("amount") final BigDecimal amount,
- @JsonProperty("cba") final BigDecimal cba,
@JsonProperty("creditAdj") final BigDecimal creditAdj,
@JsonProperty("refundAdj") final BigDecimal refundAdj,
@JsonProperty("invoiceId") @Nullable final String invoiceId,
@@ -56,7 +54,6 @@ public class InvoiceJsonSimple extends JsonBase {
@JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
super(auditLogs);
this.amount = amount;
- this.cba = cba;
this.creditAdj = creditAdj;
this.refundAdj = refundAdj;
this.invoiceId = invoiceId;
@@ -68,7 +65,7 @@ public class InvoiceJsonSimple extends JsonBase {
}
public InvoiceJsonSimple(final Invoice input, final List<AuditLog> auditLogs) {
- this(input.getChargedAmount(), input.getCBAAmount(), input.getCreditAdjAmount(), input.getRefundAdjAmount(),
+ this(input.getChargedAmount(), input.getCreditedAmount(), input.getRefundedAmount(),
input.getId().toString(), input.getInvoiceDate(), input.getTargetDate(), String.valueOf(input.getInvoiceNumber()),
input.getBalance(), input.getAccountId().toString(), toAuditLogJson(auditLogs));
}
@@ -81,10 +78,6 @@ public class InvoiceJsonSimple extends JsonBase {
return amount;
}
- public BigDecimal getCBA() {
- return cba;
- }
-
public BigDecimal getCreditAdj() {
return creditAdj;
}
@@ -139,10 +132,6 @@ public class InvoiceJsonSimple extends JsonBase {
(balance != null && that.balance != null && balance.compareTo(that.balance) == 0))) {
return false;
}
- if (!((cba == null && that.cba == null) ||
- (cba != null && that.cba != null && cba.compareTo(that.cba) == 0))) {
- return false;
- }
if (!((creditAdj == null && that.creditAdj == null) ||
(creditAdj != null && that.creditAdj != null && creditAdj.compareTo(that.creditAdj) == 0))) {
return false;
@@ -172,7 +161,6 @@ public class InvoiceJsonSimple extends JsonBase {
@Override
public int hashCode() {
int result = amount != null ? amount.hashCode() : 0;
- result = 31 * result + (cba != null ? cba.hashCode() : 0);
result = 31 * result + (creditAdj != null ? creditAdj.hashCode() : 0);
result = 31 * result + (refundAdj != null ? refundAdj.hashCode() : 0);
result = 31 * result + (invoiceId != null ? invoiceId.hashCode() : 0);
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonWithBundleKeys.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonWithBundleKeys.java
index e72decd..7483617 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonWithBundleKeys.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonWithBundleKeys.java
@@ -36,7 +36,6 @@ public class InvoiceJsonWithBundleKeys extends InvoiceJsonSimple {
@JsonCreator
public InvoiceJsonWithBundleKeys(@JsonProperty("amount") final BigDecimal amount,
- @JsonProperty("cba") final BigDecimal cba,
@JsonProperty("creditAdj") final BigDecimal creditAdj,
@JsonProperty("refundAdj") final BigDecimal refundAdj,
@JsonProperty("invoiceId") final String invoiceId,
@@ -48,7 +47,7 @@ public class InvoiceJsonWithBundleKeys extends InvoiceJsonSimple {
@JsonProperty("externalBundleKeys") final String bundleKeys,
@JsonProperty("credits") final List<CreditJson> credits,
@JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
- super(amount, cba, creditAdj, refundAdj, invoiceId, invoiceDate, targetDate, invoiceNumber, balance, accountId, auditLogs);
+ super(amount, creditAdj, refundAdj, invoiceId, invoiceDate, targetDate, invoiceNumber, balance, accountId, auditLogs);
this.bundleKeys = bundleKeys;
this.credits = credits;
}
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonWithItems.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonWithItems.java
index cea485e..0c343dd 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonWithItems.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/InvoiceJsonWithItems.java
@@ -37,7 +37,6 @@ public class InvoiceJsonWithItems extends InvoiceJsonSimple {
@JsonCreator
public InvoiceJsonWithItems(@JsonProperty("amount") final BigDecimal amount,
- @JsonProperty("cba") final BigDecimal cba,
@JsonProperty("creditAdj") final BigDecimal creditAdj,
@JsonProperty("refundAdj") final BigDecimal refundAdj,
@JsonProperty("invoiceId") final String invoiceId,
@@ -48,7 +47,7 @@ public class InvoiceJsonWithItems extends InvoiceJsonSimple {
@JsonProperty("accountId") final String accountId,
@JsonProperty("items") final List<InvoiceItemJsonSimple> items,
@JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
- super(amount, cba, creditAdj, refundAdj, invoiceId, invoiceDate, targetDate, invoiceNumber, balance, accountId, auditLogs);
+ super(amount, creditAdj, refundAdj, invoiceId, invoiceDate, targetDate, invoiceNumber, balance, accountId, auditLogs);
this.items = new ArrayList<InvoiceItemJsonSimple>(items);
}
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleTimelineJson.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleTimelineJson.java
index a84fbbd..28199e1 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleTimelineJson.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestBundleTimelineJson.java
@@ -88,7 +88,6 @@ public class TestBundleTimelineJson extends JaxrsTestSuiteNoDB {
final UUID accountId = UUID.randomUUID();
final UUID invoiceId = UUID.randomUUID();
final BigDecimal invoiceAmount = BigDecimal.TEN;
- final BigDecimal cba = BigDecimal.ONE;
final BigDecimal creditAdj = BigDecimal.ONE;
final BigDecimal refundAdj = BigDecimal.ONE;
final LocalDate invoiceDate = clock.getUTCToday();
@@ -96,7 +95,7 @@ public class TestBundleTimelineJson extends JaxrsTestSuiteNoDB {
final String invoiceNumber = UUID.randomUUID().toString();
final BigDecimal balance = BigDecimal.ZERO;
- return new InvoiceJsonSimple(invoiceAmount, cba, creditAdj, refundAdj, invoiceId.toString(), invoiceDate,
+ return new InvoiceJsonSimple(invoiceAmount, creditAdj, refundAdj, invoiceId.toString(), invoiceDate,
targetDate, invoiceNumber, balance, accountId.toString(), null);
}
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonSimple.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonSimple.java
index 2fe0eee..0d98220 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonSimple.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonSimple.java
@@ -35,7 +35,6 @@ public class TestInvoiceJsonSimple extends JaxrsTestSuiteNoDB {
@Test(groups = "fast")
public void testJson() throws Exception {
final BigDecimal amount = BigDecimal.TEN;
- final BigDecimal cba = BigDecimal.ONE;
final BigDecimal creditAdj = BigDecimal.ONE;
final BigDecimal refundAdj = BigDecimal.ONE;
final String invoiceId = UUID.randomUUID().toString();
@@ -45,10 +44,9 @@ public class TestInvoiceJsonSimple extends JaxrsTestSuiteNoDB {
final BigDecimal balance = BigDecimal.ZERO;
final String accountId = UUID.randomUUID().toString();
final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
- final InvoiceJsonSimple invoiceJsonSimple = new InvoiceJsonSimple(amount, cba, creditAdj, refundAdj, invoiceId, invoiceDate,
+ final InvoiceJsonSimple invoiceJsonSimple = new InvoiceJsonSimple(amount, creditAdj, refundAdj, invoiceId, invoiceDate,
targetDate, invoiceNumber, balance, accountId, auditLogs);
Assert.assertEquals(invoiceJsonSimple.getAmount(), amount);
- Assert.assertEquals(invoiceJsonSimple.getCBA(), cba);
Assert.assertEquals(invoiceJsonSimple.getCreditAdj(), creditAdj);
Assert.assertEquals(invoiceJsonSimple.getRefundAdj(), refundAdj);
Assert.assertEquals(invoiceJsonSimple.getInvoiceId(), invoiceId);
@@ -68,9 +66,8 @@ public class TestInvoiceJsonSimple extends JaxrsTestSuiteNoDB {
public void testFromInvoice() throws Exception {
final Invoice invoice = Mockito.mock(Invoice.class);
Mockito.when(invoice.getChargedAmount()).thenReturn(BigDecimal.TEN);
- Mockito.when(invoice.getCBAAmount()).thenReturn(BigDecimal.ONE);
- Mockito.when(invoice.getCreditAdjAmount()).thenReturn(BigDecimal.ONE);
- Mockito.when(invoice.getRefundAdjAmount()).thenReturn(BigDecimal.ONE);
+ Mockito.when(invoice.getCreditedAmount()).thenReturn(BigDecimal.ONE);
+ Mockito.when(invoice.getRefundedAmount()).thenReturn(BigDecimal.ONE);
Mockito.when(invoice.getId()).thenReturn(UUID.randomUUID());
Mockito.when(invoice.getInvoiceDate()).thenReturn(clock.getUTCToday());
Mockito.when(invoice.getTargetDate()).thenReturn(clock.getUTCToday());
@@ -80,9 +77,8 @@ public class TestInvoiceJsonSimple extends JaxrsTestSuiteNoDB {
final InvoiceJsonSimple invoiceJsonSimple = new InvoiceJsonSimple(invoice);
Assert.assertEquals(invoiceJsonSimple.getAmount(), invoice.getChargedAmount());
- Assert.assertEquals(invoiceJsonSimple.getCBA(), invoice.getCBAAmount());
- Assert.assertEquals(invoiceJsonSimple.getCreditAdj(), invoice.getCreditAdjAmount());
- Assert.assertEquals(invoiceJsonSimple.getRefundAdj(), invoice.getRefundAdjAmount());
+ Assert.assertEquals(invoiceJsonSimple.getCreditAdj(), invoice.getCreditedAmount());
+ Assert.assertEquals(invoiceJsonSimple.getRefundAdj(), invoice.getRefundedAmount());
Assert.assertEquals(invoiceJsonSimple.getInvoiceId(), invoice.getId().toString());
Assert.assertEquals(invoiceJsonSimple.getInvoiceDate(), invoice.getInvoiceDate());
Assert.assertEquals(invoiceJsonSimple.getTargetDate(), invoice.getTargetDate());
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
index 8e28b44..e071f7e 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithBundleKeys.java
@@ -38,7 +38,6 @@ public class TestInvoiceJsonWithBundleKeys extends JaxrsTestSuiteNoDB {
@Test(groups = "fast")
public void testJson() throws Exception {
final BigDecimal amount = BigDecimal.TEN;
- final BigDecimal cba = BigDecimal.ONE;
final BigDecimal creditAdj = BigDecimal.ONE;
final BigDecimal refundAdj = BigDecimal.ONE;
final String invoiceId = UUID.randomUUID().toString();
@@ -51,11 +50,10 @@ public class TestInvoiceJsonWithBundleKeys extends JaxrsTestSuiteNoDB {
final CreditJson creditJson = createCreditJson();
final List<CreditJson> credits = ImmutableList.<CreditJson>of(creditJson);
final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
- final InvoiceJsonWithBundleKeys invoiceJsonSimple = new InvoiceJsonWithBundleKeys(amount, cba, creditAdj, refundAdj, invoiceId, invoiceDate,
+ final InvoiceJsonWithBundleKeys invoiceJsonSimple = new InvoiceJsonWithBundleKeys(amount, creditAdj, refundAdj, invoiceId, invoiceDate,
targetDate, invoiceNumber, balance, accountId, bundleKeys,
credits, auditLogs);
Assert.assertEquals(invoiceJsonSimple.getAmount(), amount);
- Assert.assertEquals(invoiceJsonSimple.getCBA(), cba);
Assert.assertEquals(invoiceJsonSimple.getCreditAdj(), creditAdj);
Assert.assertEquals(invoiceJsonSimple.getRefundAdj(), refundAdj);
Assert.assertEquals(invoiceJsonSimple.getInvoiceId(), invoiceId);
@@ -77,9 +75,8 @@ public class TestInvoiceJsonWithBundleKeys extends JaxrsTestSuiteNoDB {
public void testFromInvoice() throws Exception {
final Invoice invoice = Mockito.mock(Invoice.class);
Mockito.when(invoice.getChargedAmount()).thenReturn(BigDecimal.TEN);
- Mockito.when(invoice.getCBAAmount()).thenReturn(BigDecimal.ONE);
- Mockito.when(invoice.getCreditAdjAmount()).thenReturn(BigDecimal.ONE);
- Mockito.when(invoice.getRefundAdjAmount()).thenReturn(BigDecimal.ONE);
+ Mockito.when(invoice.getCreditedAmount()).thenReturn(BigDecimal.ONE);
+ Mockito.when(invoice.getRefundedAmount()).thenReturn(BigDecimal.ONE);
Mockito.when(invoice.getId()).thenReturn(UUID.randomUUID());
Mockito.when(invoice.getInvoiceDate()).thenReturn(clock.getUTCToday());
Mockito.when(invoice.getTargetDate()).thenReturn(clock.getUTCToday());
@@ -92,9 +89,8 @@ public class TestInvoiceJsonWithBundleKeys extends JaxrsTestSuiteNoDB {
final InvoiceJsonWithBundleKeys invoiceJsonWithBundleKeys = new InvoiceJsonWithBundleKeys(invoice, bundleKeys, credits, null);
Assert.assertEquals(invoiceJsonWithBundleKeys.getAmount(), invoice.getChargedAmount());
- Assert.assertEquals(invoiceJsonWithBundleKeys.getCBA(), invoice.getCBAAmount());
- Assert.assertEquals(invoiceJsonWithBundleKeys.getCreditAdj(), invoice.getCreditAdjAmount());
- Assert.assertEquals(invoiceJsonWithBundleKeys.getRefundAdj(), invoice.getRefundAdjAmount());
+ Assert.assertEquals(invoiceJsonWithBundleKeys.getCreditAdj(), invoice.getCreditedAmount());
+ Assert.assertEquals(invoiceJsonWithBundleKeys.getRefundAdj(), invoice.getRefundedAmount());
Assert.assertEquals(invoiceJsonWithBundleKeys.getInvoiceId(), invoice.getId().toString());
Assert.assertEquals(invoiceJsonWithBundleKeys.getInvoiceDate(), invoice.getInvoiceDate());
Assert.assertEquals(invoiceJsonWithBundleKeys.getTargetDate(), invoice.getTargetDate());
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithItems.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithItems.java
index 22d19ee..1bfeb6d 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithItems.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestInvoiceJsonWithItems.java
@@ -39,7 +39,6 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuiteNoDB {
@Test(groups = "fast")
public void testJson() throws Exception {
final BigDecimal amount = BigDecimal.TEN;
- final BigDecimal cba = BigDecimal.ONE;
final BigDecimal creditAdj = BigDecimal.ONE;
final BigDecimal refundAdj = BigDecimal.ONE;
final String invoiceId = UUID.randomUUID().toString();
@@ -50,11 +49,10 @@ public class TestInvoiceJsonWithItems extends JaxrsTestSuiteNoDB {
final String accountId = UUID.randomUUID().toString();
final InvoiceItemJsonSimple invoiceItemJsonSimple = createInvoiceItemJson();
final List<AuditLogJson> auditLogs = createAuditLogsJson(clock.getUTCNow());
- final InvoiceJsonWithItems invoiceJsonWithItems = new InvoiceJsonWithItems(amount, cba, creditAdj, refundAdj, invoiceId, invoiceDate,
+ final InvoiceJsonWithItems invoiceJsonWithItems = new InvoiceJsonWithItems(amount, creditAdj, refundAdj, invoiceId, invoiceDate,
targetDate, invoiceNumber, balance, accountId,
ImmutableList.<InvoiceItemJsonSimple>of(invoiceItemJsonSimple), auditLogs);
Assert.assertEquals(invoiceJsonWithItems.getAmount(), amount);
- Assert.assertEquals(invoiceJsonWithItems.getCBA(), cba);
Assert.assertEquals(invoiceJsonWithItems.getCreditAdj(), creditAdj);
Assert.assertEquals(invoiceJsonWithItems.getRefundAdj(), refundAdj);
Assert.assertEquals(invoiceJsonWithItems.getInvoiceId(), invoiceId);
diff --git a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java
index 9e079bd..a6630ea 100644
--- a/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java
+++ b/osgi-bundles/bundles/analytics/src/test/java/com/ning/billing/osgi/bundles/analytics/AnalyticsTestSuiteNoDB.java
@@ -159,10 +159,8 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(invoice.getPaidAmount()).thenReturn(BigDecimal.ZERO);
Mockito.when(invoice.getOriginalChargedAmount()).thenReturn(new BigDecimal("1922"));
Mockito.when(invoice.getChargedAmount()).thenReturn(new BigDecimal("100293"));
- Mockito.when(invoice.getCBAAmount()).thenReturn(BigDecimal.TEN);
- Mockito.when(invoice.getTotalAdjAmount()).thenReturn(new BigDecimal("192"));
- Mockito.when(invoice.getCreditAdjAmount()).thenReturn(new BigDecimal("283"));
- Mockito.when(invoice.getRefundAdjAmount()).thenReturn(new BigDecimal("384"));
+ Mockito.when(invoice.getCreditedAmount()).thenReturn(new BigDecimal("283"));
+ Mockito.when(invoice.getRefundedAmount()).thenReturn(new BigDecimal("384"));
Mockito.when(invoice.getBalance()).thenReturn(new BigDecimal("18376"));
Mockito.when(invoice.isMigrationInvoice()).thenReturn(false);
Mockito.when(invoice.getCreatedDate()).thenReturn(INVOICE_CREATED_DATE);
@@ -353,10 +351,8 @@ public abstract class AnalyticsTestSuiteNoDB {
Mockito.when(invoice.getPaidAmount()).thenReturn(BigDecimal.ZERO);
Mockito.when(invoice.getOriginalChargedAmount()).thenReturn(new BigDecimal("1922"));
Mockito.when(invoice.getChargedAmount()).thenReturn(new BigDecimal("100293"));
- Mockito.when(invoice.getCBAAmount()).thenReturn(BigDecimal.TEN);
- Mockito.when(invoice.getTotalAdjAmount()).thenReturn(new BigDecimal("192"));
- Mockito.when(invoice.getCreditAdjAmount()).thenReturn(new BigDecimal("283"));
- Mockito.when(invoice.getRefundAdjAmount()).thenReturn(new BigDecimal("384"));
+ Mockito.when(invoice.getCreditedAmount()).thenReturn(new BigDecimal("283"));
+ Mockito.when(invoice.getRefundedAmount()).thenReturn(new BigDecimal("384"));
Mockito.when(invoice.getBalance()).thenReturn(new BigDecimal("18376"));
Mockito.when(invoice.isMigrationInvoice()).thenReturn(false);
Mockito.when(invoice.getCreatedDate()).thenReturn(INVOICE_CREATED_DATE);
diff --git a/payment/src/test/java/com/ning/billing/payment/MockInvoice.java b/payment/src/test/java/com/ning/billing/payment/MockInvoice.java
index 38dbecb..5d551b3 100644
--- a/payment/src/test/java/com/ning/billing/payment/MockInvoice.java
+++ b/payment/src/test/java/com/ning/billing/payment/MockInvoice.java
@@ -177,7 +177,7 @@ public class MockInvoice extends EntityBase implements Invoice {
@Override
- public BigDecimal getCreditAdjAmount() {
+ public BigDecimal getCreditedAmount() {
BigDecimal result = BigDecimal.ZERO;
for (final InvoiceItem i : invoiceItems) {
@@ -199,17 +199,7 @@ public class MockInvoice extends EntityBase implements Invoice {
}
@Override
- public BigDecimal getCBAAmount() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public BigDecimal getTotalAdjAmount() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public BigDecimal getRefundAdjAmount() {
+ public BigDecimal getRefundedAmount() {
throw new UnsupportedOperationException();
}