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 1f4309d..ff015f5 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
@@ -190,13 +190,7 @@ public class DefaultInvoice extends EntityBase implements Invoice {
@Override
public BigDecimal getOriginalChargedAmount() {
- BigDecimal result = BigDecimal.ZERO;
- for (final InvoiceItem cur : invoiceItems) {
- if (cur.getCreatedDate().compareTo(getCreatedDate()) == 0) {
- result = result.add(cur.getAmount());
- }
- }
- return result;
+ return invoiceItems.getOriginalChargedAmount();
}
@Override
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 2e7ed33..da82790 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
@@ -62,6 +62,21 @@ public class InvoiceItemList extends ArrayList<InvoiceItem> {
return getAmoutForItems(InvoiceItemType.EXTERNAL_CHARGE, InvoiceItemType.RECURRING, InvoiceItemType.FIXED, InvoiceItemType.REPAIR_ADJ);
}
+ public BigDecimal getOriginalChargedAmount() {
+ BigDecimal result = BigDecimal.ZERO.setScale(NUMBER_OF_DECIMALS, ROUNDING_METHOD);
+ for (final InvoiceItem cur : this) {
+ if (cur.getInvoiceItemType() != InvoiceItemType.EXTERNAL_CHARGE &&
+ cur.getInvoiceItemType() != InvoiceItemType.RECURRING &&
+ cur.getInvoiceItemType() != InvoiceItemType.FIXED) {
+ continue;
+ }
+ if (cur.getCreatedDate().compareTo(cur.getCreatedDate()) == 0) {
+ result = result.add(cur.getAmount());
+ }
+ }
+ return result;
+ }
+
public BigDecimal getCBAAmount() {
return getAmoutForItems(InvoiceItemType.CBA_ADJ);
}