killbill-uncached

Details

diff --git a/analytics/src/main/java/com/ning/billing/analytics/model/BusinessInvoice.java b/analytics/src/main/java/com/ning/billing/analytics/model/BusinessInvoice.java
index 31591c6..7940387 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/model/BusinessInvoice.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/model/BusinessInvoice.java
@@ -58,7 +58,7 @@ public class BusinessInvoice {
     }
 
     public BusinessInvoice(final String accountKey, final Invoice invoice) {
-        this(accountKey, invoice.getAmountCharged(), invoice.getAmountCredited(), invoice.getAmountPaid(), invoice.getBalance(),
+        this(accountKey, invoice.getAmountCharged(), invoice.getAmountCredited(), invoice.getPaidAmount(), invoice.getBalance(),
              new DateTime(DateTimeZone.UTC), invoice.getCurrency(), invoice.getInvoiceDate(), invoice.getId(), invoice.getTargetDate(),
              new DateTime(DateTimeZone.UTC));
     }
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 8fbf0cf..e938e89 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
@@ -56,11 +56,13 @@ public interface Invoice extends Entity {
 
     DateTime getLastPaymentAttempt();
 
-    BigDecimal getAmountPaid();
+    BigDecimal getPaidAmount();
 
-    BigDecimal getAmountCharged();
+    BigDecimal getChargedAmount();
 
-    BigDecimal getAmountCredited();
+    BigDecimal getCBAAmount();
+
+    BigDecimal getAdjustedAmount();
 
     BigDecimal getBalance();
 
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 2afd9a9..8af5a92 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
@@ -37,6 +37,7 @@ import com.ning.billing.catalog.api.Currency;
 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.InvoiceItemType;
 import com.ning.billing.invoice.api.InvoicePayment;
 import com.ning.billing.invoice.model.CreditBalanceAdjInvoiceItem;
 import com.ning.billing.invoice.model.DefaultInvoice;
@@ -408,7 +409,7 @@ public class DefaultInvoiceDao implements InvoiceDao {
 
     private void notifyOfFutureBillingEvents(final InvoiceSqlDao dao, final List<InvoiceItem> invoiceItems) {
         for (final InvoiceItem item : invoiceItems) {
-            if (item instanceof RecurringInvoiceItem) {
+            if (item.getInvoiceItemType() == InvoiceItemType.RECURRING) {
                 final RecurringInvoiceItem recurringInvoiceItem = (RecurringInvoiceItem) item;
                 if ((recurringInvoiceItem.getEndDate() != null) &&
                         (recurringInvoiceItem.getAmount() == null ||
diff --git a/invoice/src/main/java/com/ning/billing/invoice/generator/DefaultInvoiceGenerator.java b/invoice/src/main/java/com/ning/billing/invoice/generator/DefaultInvoiceGenerator.java
index c999831..e3955b3 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/generator/DefaultInvoiceGenerator.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/generator/DefaultInvoiceGenerator.java
@@ -42,6 +42,7 @@ import com.ning.billing.entitlement.api.billing.BillingModeType;
 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.InvoiceItemType;
 import com.ning.billing.invoice.model.BillingMode;
 import com.ning.billing.invoice.model.CreditBalanceAdjInvoiceItem;
 import com.ning.billing.invoice.model.DefaultInvoice;
@@ -109,8 +110,8 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
         removeCancellingInvoiceItems(existingItems);
         removeDuplicatedInvoiceItems(proposedItems, existingItems);
 
-        addReversingItems(existingItems, proposedItems);
-        generateCreditsForPastRepairedInvoices(accountId, existingInvoices, proposedItems, targetCurrency);
+        addRepairedItems(existingItems, proposedItems);
+        generateCBAForExistingInvoices(accountId, existingInvoices, proposedItems, targetCurrency);
         consumeExistingCredit(invoiceId, accountId, existingItems, proposedItems, targetCurrency);
 
         if (proposedItems == null || proposedItems.size() == 0) {
@@ -122,7 +123,7 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
         }
     }
 
-    void generateCreditsForPastRepairedInvoices(final UUID accountId, final List<Invoice> existingInvoices, final List<InvoiceItem> proposedItems, final Currency currency) {
+    void generateCBAForExistingInvoices(final UUID accountId, final List<Invoice> existingInvoices, final List<InvoiceItem> proposedItems, final Currency currency) {
         // determine most accurate invoice balances up to this point
         final Map<UUID, BigDecimal> amountOwedByInvoice = new HashMap<UUID, BigDecimal>();
 
@@ -149,12 +150,12 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
         }
     }
 
-    void addReversingItems(final List<InvoiceItem> existingItems, final List<InvoiceItem> proposedItems) {
+    void addRepairedItems(final List<InvoiceItem> existingItems, final List<InvoiceItem> proposedItems) {
         for (final InvoiceItem existingItem : existingItems) {
-            if (existingItem instanceof RecurringInvoiceItem) {
-                final RecurringInvoiceItem ri = (RecurringInvoiceItem) existingItem;
-                final BigDecimal amountNegated = ri.getAmount() == null ? null : ri.getAmount().negate();
-                RepairAdjInvoiceItem repairItem  = new RepairAdjInvoiceItem(ri.getInvoiceId(), ri.getAccountId(), ri.getStartDate(), ri.getEndDate(), amountNegated, ri.getCurrency(), ri.getId());
+            if (existingItem.getInvoiceItemType() == InvoiceItemType.RECURRING ||
+                    existingItem.getInvoiceItemType() == InvoiceItemType.FIXED) {
+                final BigDecimal amountNegated = existingItem.getAmount() == null ? null : existingItem.getAmount().negate();
+                RepairAdjInvoiceItem repairItem  = new RepairAdjInvoiceItem(existingItem.getInvoiceId(), existingItem.getAccountId(), existingItem.getStartDate(),existingItem.getEndDate(), amountNegated, existingItem.getCurrency(), existingItem.getId());
                 proposedItems.add(repairItem);
             }
         }
@@ -166,24 +167,20 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
         BigDecimal totalAmountOwed = BigDecimal.ZERO;
 
         for (final InvoiceItem item : existingItems) {
-            if (item instanceof CreditBalanceAdjInvoiceItem) {
+            if (item.getInvoiceItemType() == InvoiceItemType.CBA_ADJ) {
                 totalUnusedCreditAmount = totalUnusedCreditAmount.add(item.getAmount());
             }
         }
 
         for (final InvoiceItem item : proposedItems) {
-            if (item instanceof CreditBalanceAdjInvoiceItem) {
+            if (item.getInvoiceItemType() == InvoiceItemType.CBA_ADJ) {
                 totalUnusedCreditAmount = totalUnusedCreditAmount.add(item.getAmount());
-            } else if ((item instanceof RecurringInvoiceItem)
-                    || (item instanceof FixedPriceInvoiceItem)) {
-                totalAmountOwed = totalAmountOwed.add(item.getAmount());
             } else {
-                // STEPH
+                totalAmountOwed = totalAmountOwed.add(item.getAmount());
             }
         }
 
-        // credits are positive when they reduce the amount owed (since they offset payment)
-        // the credit balance should never be negative
+
         BigDecimal creditAmount = BigDecimal.ZERO;
         if (totalUnusedCreditAmount.compareTo(BigDecimal.ZERO) > 0) {
             if (totalAmountOwed.abs().compareTo(totalUnusedCreditAmount.abs()) > 0) {
@@ -246,7 +243,7 @@ public class DefaultInvoiceGenerator implements InvoiceGenerator {
         final List<UUID> itemsToRemove = new ArrayList<UUID>();
 
         for (final InvoiceItem item1 : items) {
-            if (item1 instanceof RepairAdjInvoiceItem) {
+            if (item1.getInvoiceItemType() == InvoiceItemType.REPAIR_ADJ) {
                 final RepairAdjInvoiceItem repairItem = (RepairAdjInvoiceItem) item1;
                 itemsToRemove.add(repairItem.getId());
                 itemsToRemove.add(repairItem.getLinkedItemId());
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 7c2bae1..6a353f1 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
@@ -162,7 +162,7 @@ public class DefaultInvoice extends EntityBase implements Invoice {
     }
 
     @Override
-    public BigDecimal getAmountPaid() {
+    public BigDecimal getPaidAmount() {
         BigDecimal amountPaid = BigDecimal.ZERO;
         for (final InvoicePayment payment : payments) {
             if (payment.getAmount() != null) {
@@ -173,20 +173,24 @@ public class DefaultInvoice extends EntityBase implements Invoice {
     }
 
     @Override
-    public BigDecimal getAmountCharged() {
-        return invoiceItems.getAmountCharged();
+    public BigDecimal getChargedAmount() {
+        return invoiceItems.getChargedAmount();
     }
 
     @Override
-    public BigDecimal getAmountCredited() {
-        return invoiceItems.getAmountCredited();
+    public BigDecimal getCBAAmount() {
+        return invoiceItems.getCBAAmount();
+    }
+
+    @Override
+    public BigDecimal getAdjustedAmount() {
+        return invoiceItems.getAdjustedAmount();
     }
 
     @Override
     public BigDecimal getBalance() {
-        // credits offset payments
-        // STEPH fix that
-        return getAmountCharged().subtract(getAmountPaid().subtract(getAmountCredited()));
+        final BigDecimal balance = getChargedAmount().add(getAdjustedAmount()).subtract(getPaidAmount()).subtract(getCBAAmount());
+        return balance;
     }
 
     @Override
@@ -201,7 +205,8 @@ public class DefaultInvoice extends EntityBase implements Invoice {
 
     @Override
     public String toString() {
-        return "DefaultInvoice [items=" + invoiceItems + ", payments=" + payments + ", id=" + id + ", accountId=" + accountId + ", invoiceDate=" + invoiceDate + ", targetDate=" + targetDate + ", currency=" + currency + ", amountPaid=" + getAmountPaid() + ", lastPaymentAttempt=" + getLastPaymentAttempt() + "]";
+        return "DefaultInvoice [items=" + invoiceItems + ", payments=" + payments + ", id=" + id + ", accountId=" + accountId + ", invoiceDate=" + invoiceDate + ", targetDate=" + targetDate + ", currency=" + currency + ", amountPaid=" + getPaidAmount() + ", lastPaymentAttempt=" + getLastPaymentAttempt() + "]";
     }
+
 }
 
diff --git a/invoice/src/main/java/com/ning/billing/invoice/model/InvoiceItemList.java b/invoice/src/main/java/com/ning/billing/invoice/model/InvoiceItemList.java
index 708f6a1..2ef5222 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/model/InvoiceItemList.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/model/InvoiceItemList.java
@@ -18,11 +18,16 @@ package com.ning.billing.invoice.model;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 import com.ning.billing.invoice.api.InvoiceItem;
+import com.ning.billing.invoice.api.InvoiceItemType;
 
 public class InvoiceItemList extends ArrayList<InvoiceItem> {
+
+    private static final long serialVersionUID = 192311667L;
+
     private static final int NUMBER_OF_DECIMALS = InvoicingConfiguration.getNumberOfDecimals();
     private static final int ROUNDING_METHOD = InvoicingConfiguration.getRoundingMode();
 
@@ -35,33 +40,37 @@ public class InvoiceItemList extends ArrayList<InvoiceItem> {
         this.addAll(invoiceItems);
     }
 
-    public BigDecimal getAmountCharged() {
-        // naive implementation, assumes all invoice items share the same currency
-        BigDecimal total = BigDecimal.ZERO.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
+    public BigDecimal getAdjustedAmount() {
+        return getAmoutForItems(InvoiceItemType.CREDIT_ADJ, InvoiceItemType.REFUND_ADJ);
+    }
 
-        for (final InvoiceItem item : this) {
-            if ((item instanceof FixedPriceInvoiceItem) || (item instanceof RecurringInvoiceItem)) {
-                if (item.getAmount() != null) {
-                    total = total.add(item.getAmount());
-                }
-            }
-        }
+    public BigDecimal getChargedAmount() {
+        return getAmoutForItems(InvoiceItemType.RECURRING, InvoiceItemType.FIXED, InvoiceItemType.REPAIR_ADJ);
+    }
 
-        return total.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
+    public BigDecimal getCBAAmount() {
+        return getAmoutForItems(InvoiceItemType.CBA_ADJ);
     }
 
-    public BigDecimal getAmountCredited() {
-        // naive implementation, assumes all invoice items share the same currency
-        BigDecimal total = BigDecimal.ZERO.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
 
+    private BigDecimal getAmoutForItems(InvoiceItemType...types) {
+        BigDecimal total = BigDecimal.ZERO.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
         for (final InvoiceItem item : this) {
-            if (item instanceof CreditBalanceAdjInvoiceItem) {
+            if (isFromType(item, types)) {
                 if (item.getAmount() != null) {
                     total = total.add(item.getAmount());
                 }
             }
         }
-
         return total.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
     }
+
+    private boolean isFromType(InvoiceItem item, InvoiceItemType...types) {
+        for (InvoiceItemType cur : types) {
+            if (item.getInvoiceItemType() == cur) {
+                return true;
+            }
+        }
+        return false;
+    }
 }
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 6ed5713..94da33c 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
@@ -121,13 +121,18 @@ public class DefaultInvoiceFormatter implements InvoiceFormatter {
     }
 
     @Override
-    public BigDecimal getAmountCharged() {
-        return invoice.getAmountCharged();
+    public BigDecimal getChargedAmount() {
+        return invoice.getChargedAmount();
     }
 
     @Override
-    public BigDecimal getAmountCredited() {
-        return invoice.getAmountCredited();
+    public BigDecimal getCBAAmount() {
+        return invoice.getCBAAmount();
+    }
+
+    @Override
+    public BigDecimal getAdjustedAmount() {
+        return invoice.getAdjustedAmount();
     }
 
     @Override
@@ -166,8 +171,8 @@ public class DefaultInvoiceFormatter implements InvoiceFormatter {
     }
 
     @Override
-    public BigDecimal getAmountPaid() {
-        return invoice.getAmountPaid();
+    public BigDecimal getPaidAmount() {
+        return invoice.getPaidAmount();
     }
 
     @Override
diff --git a/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java b/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java
index 14ea585..7bbeb76 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/api/migration/TestDefaultInvoiceMigrationApi.java
@@ -237,9 +237,7 @@ public class TestDefaultInvoiceMigrationApi extends InvoicingTestBase {
         return invoice.getId();
     }
 
-    // STEPH double check with Martin this is wrong (disable until i know)
-    // Check migration invoice is NOT returned for all user api invoice calls
-    @Test(groups = {"slow"}, enabled = false)
+    @Test(groups = {"slow"}, enabled = true)
     public void testUserApiAccess() {
         final List<Invoice> byAccount = invoiceUserApi.getInvoicesByAccount(accountId);
         Assert.assertEquals(byAccount.size(), 1);
@@ -250,9 +248,7 @@ public class TestDefaultInvoiceMigrationApi extends InvoicingTestBase {
         Assert.assertEquals(byAccountAndDate.get(0).getId(), regularInvoiceId);
 
         final Collection<Invoice> unpaid = invoiceUserApi.getUnpaidInvoicesByAccountId(accountId, date_regular.plusDays(1));
-        Assert.assertEquals(unpaid.size(), 1);
-        Assert.assertEquals(regularInvoiceId, unpaid.iterator().next().getId());
-
+        Assert.assertEquals(unpaid.size(), 2);
     }
 
 
diff --git a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java
index 38dd106..a5bca99 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/dao/InvoiceDaoTests.java
@@ -103,7 +103,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         final Invoice savedInvoice = invoiceDao.getById(invoiceId);
         assertNotNull(savedInvoice);
         assertEquals(savedInvoice.getBalance().compareTo(new BigDecimal("21.00")), 0);
-        assertEquals(savedInvoice.getAmountPaid(), BigDecimal.ZERO);
+        assertEquals(savedInvoice.getPaidAmount(), BigDecimal.ZERO);
         assertEquals(savedInvoice.getInvoiceItems().size(), 1);
 
         final BigDecimal paymentAmount = new BigDecimal("11.00");
@@ -114,9 +114,9 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         final Invoice retrievedInvoice = invoiceDao.getById(invoiceId);
         assertNotNull(retrievedInvoice);
         assertEquals(retrievedInvoice.getInvoiceItems().size(), 1);
-        assertEquals(retrievedInvoice.getAmountCharged().compareTo(new BigDecimal("21.00")), 0);
+        assertEquals(retrievedInvoice.getChargedAmount().compareTo(new BigDecimal("21.00")), 0);
         assertEquals(retrievedInvoice.getBalance().compareTo(new BigDecimal("10.00")), 0);
-        assertEquals(retrievedInvoice.getAmountPaid().compareTo(new BigDecimal("11.00")), 0);
+        assertEquals(retrievedInvoice.getPaidAmount().compareTo(new BigDecimal("11.00")), 0);
     }
 
     @Test
@@ -139,7 +139,7 @@ public class InvoiceDaoTests extends InvoiceDaoTestBase {
         invoiceDao.notifyOfPaymentAttempt(new DefaultInvoicePayment(paymentAttemptId, invoice.getId(), paymentAttemptDate, paymentAmount, Currency.USD), context);
 
         invoice = invoiceDao.getById(invoice.getId());
-        assertEquals(invoice.getAmountPaid().compareTo(paymentAmount), 0);
+        assertEquals(invoice.getPaidAmount().compareTo(paymentAmount), 0);
         assertEquals(invoice.getLastPaymentAttempt().compareTo(paymentAttemptDate), 0);
         assertEquals(invoice.getNumberOfPayments(), 1);
     }
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 2815913..7a55724 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
@@ -190,7 +190,7 @@ public class TestDefaultInvoiceGenerator  {
 
     // STEPH same as testRemoveCancellingInvoiceItemsFixedPrice: should we have one for FixedPrice?
     @Test(groups = {"fast"})
-    public void testAddReversingItemsRecurringPrice() {
+    public void testAddRepairedItemsItemsRecurringPrice() {
         DateTime startDate = clock.getUTCNow();
         DateTime endDate = startDate.plusDays(30);
         DateTime nextEndDate = startDate.plusMonths(1);
@@ -210,7 +210,7 @@ public class TestDefaultInvoiceGenerator  {
         InvoiceItem other = new RecurringInvoiceItem(invoiceId, accountId, bundleId, subscriptionId, planName, phaseName, endDate, nextEndDate, amount2, rate2, currency, null);
         proposed.add(other);
 
-        gen.addReversingItems(existing, proposed);
+        gen.addRepairedItems(existing, proposed);
         assertEquals(existing.size(), 1);
         assertEquals(proposed.size(), 2);
         InvoiceItem leftItem1 = proposed.get(0);
@@ -257,7 +257,7 @@ public class TestDefaultInvoiceGenerator  {
         proposed.add(reversedItem1);
         proposed.add(newItem1);
 
-        gen.generateCreditsForPastRepairedInvoices(accountId, existingInvoices, proposed, currency);
+        gen.generateCBAForExistingInvoices(accountId, existingInvoices, proposed, currency);
 
         assertEquals(proposed.size(), 3);
         InvoiceItem reversedItemCheck1 = proposed.get(0);
diff --git a/invoice/src/test/java/com/ning/billing/invoice/HtmlInvoiceGeneratorTest.java b/invoice/src/test/java/com/ning/billing/invoice/HtmlInvoiceGeneratorTest.java
index 2cb1ad7..909af73 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/HtmlInvoiceGeneratorTest.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/HtmlInvoiceGeneratorTest.java
@@ -90,8 +90,8 @@ public class HtmlInvoiceGeneratorTest {
         zombie.addResult("getInvoiceDate", startDate);
         zombie.addResult("getInvoiceNumber", 42);
         zombie.addResult("getCurrency", Currency.USD);
-        zombie.addResult("getAmountCharged", price1.add(price2));
-        zombie.addResult("getAmountPaid", BigDecimal.ZERO);
+        zombie.addResult("getChargedAmount", price1.add(price2));
+        zombie.addResult("getPaidAmount", BigDecimal.ZERO);
         zombie.addResult("getBalance", price1.add(price2));
 
         final List<InvoiceItem> items = new ArrayList<InvoiceItem>();
diff --git a/invoice/src/test/java/com/ning/billing/invoice/tests/DefaultInvoiceGeneratorTests.java b/invoice/src/test/java/com/ning/billing/invoice/tests/DefaultInvoiceGeneratorTests.java
index 08da1ee..7b271c8 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/tests/DefaultInvoiceGeneratorTests.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/tests/DefaultInvoiceGeneratorTests.java
@@ -835,7 +835,7 @@ public class DefaultInvoiceGeneratorTests extends InvoicingTestBase {
         assertEquals(invoice2.getBalance().compareTo(ZERO), 0);
 
         // ensure that the account has a credit balance
-        final BigDecimal creditBalance = invoice1.getAmountCredited().add(invoice2.getAmountCredited());
+        final BigDecimal creditBalance = invoice1.getCBAAmount().add(invoice2.getCBAAmount());
         assertTrue(creditBalance.compareTo(FIVE) == 0);
     }
 
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AccountTimelineJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AccountTimelineJson.java
index 94ed09a..9af0ce6 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AccountTimelineJson.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/AccountTimelineJson.java
@@ -92,7 +92,7 @@ public class AccountTimelineJson {
         }
         this.invoices = new LinkedList<InvoiceJsonWithBundleKeys>();
         for (final Invoice cur : invoices) {
-            this.invoices.add(new InvoiceJsonWithBundleKeys(cur.getAmountPaid(),
+            this.invoices.add(new InvoiceJsonWithBundleKeys(cur.getPaidAmount(),
                                                             cur.getAmountCredited(),
                                                             cur.getId().toString(),
                                                             cur.getInvoiceDate(),
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 50258f3..75f5bbf 100644
--- a/payment/src/test/java/com/ning/billing/payment/MockInvoice.java
+++ b/payment/src/test/java/com/ning/billing/payment/MockInvoice.java
@@ -168,7 +168,7 @@ public class MockInvoice extends EntityBase implements Invoice {
     }
 
     @Override
-    public BigDecimal getAmountPaid() {
+    public BigDecimal getPaidAmount() {
         BigDecimal amountPaid = BigDecimal.ZERO;
         for (final InvoicePayment payment : payments) {
             if (payment.getAmount() != null) {
@@ -204,7 +204,7 @@ public class MockInvoice extends EntityBase implements Invoice {
 
     @Override
     public BigDecimal getBalance() {
-        return getAmountCharged().subtract(getAmountPaid().subtract(getAmountCredited()));
+        return getAmountCharged().subtract(getPaidAmount().subtract(getAmountCredited()));
     }
 
     @Override
@@ -223,7 +223,7 @@ public class MockInvoice extends EntityBase implements Invoice {
 
     @Override
     public String toString() {
-        return "DefaultInvoice [items=" + invoiceItems + ", payments=" + payments + ", id=" + id + ", accountId=" + accountId + ", invoiceDate=" + invoiceDate + ", targetDate=" + targetDate + ", currency=" + currency + ", amountPaid=" + getAmountPaid() + ", lastPaymentAttempt=" + getLastPaymentAttempt() + "]";
+        return "DefaultInvoice [items=" + invoiceItems + ", payments=" + payments + ", id=" + id + ", accountId=" + accountId + ", invoiceDate=" + invoiceDate + ", targetDate=" + targetDate + ", currency=" + currency + ", amountPaid=" + getPaidAmount() + ", lastPaymentAttempt=" + getLastPaymentAttempt() + "]";
     }
 }
 
diff --git a/util/src/test/resources/com/ning/billing/util/email/templates/HtmlInvoiceTemplate.mustache b/util/src/test/resources/com/ning/billing/util/email/templates/HtmlInvoiceTemplate.mustache
index aef1dce..be1668b 100644
--- a/util/src/test/resources/com/ning/billing/util/email/templates/HtmlInvoiceTemplate.mustache
+++ b/util/src/test/resources/com/ning/billing/util/email/templates/HtmlInvoiceTemplate.mustache
@@ -78,12 +78,12 @@
             <tr>
                 <td colspan=2 />
                 <td align=right><strong>{{text.invoiceAmount}}</strong></td>
-                <td align=right><strong>{{invoice.amountCharged}}</strong></td>
+                <td align=right><strong>{{invoice.chargedAmount}}</strong></td>
             </tr>
             <tr>
                 <td colspan=2 />
                 <td align=right><strong>{{text.invoiceAmountPaid}}</strong></td>
-                <td align=right><strong>{{invoice.amountPaid}}</strong></td>
+                <td align=right><strong>{{invoice.paidAmount}}</strong></td>
             </tr>
             <tr>
                 <td colspan=2 />