killbill-aplcache
Changes
invoice/src/main/java/org/killbill/billing/invoice/template/formatters/DefaultInvoiceFormatter.java 10(+4 -6)
Details
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/calculator/InvoiceCalculatorUtils.java b/invoice/src/main/java/org/killbill/billing/invoice/calculator/InvoiceCalculatorUtils.java
index 5d1dc95..31acf55 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/calculator/InvoiceCalculatorUtils.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/calculator/InvoiceCalculatorUtils.java
@@ -1,7 +1,9 @@
/*
* Copyright 2010-2013 Ning, Inc.
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
- * Ning licenses this file to you under the Apache License, version 2.0
+ * The Billing Project 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:
*
@@ -35,10 +37,8 @@ public abstract class InvoiceCalculatorUtils {
// 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()) &&
+ // Invoice level credit, i.e. credit adj, but NOT on its on own invoice
+ return (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()) &&
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/model/InvoiceItemFactory.java b/invoice/src/main/java/org/killbill/billing/invoice/model/InvoiceItemFactory.java
index 1c3faf4..c4b0f5a 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/model/InvoiceItemFactory.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/model/InvoiceItemFactory.java
@@ -1,7 +1,7 @@
/*
* Copyright 2010-2013 Ning, Inc.
- * Copyright 2014 Groupon, Inc
- * Copyright 2014 The Billing Project, LLC
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
* The Billing Project 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
@@ -73,9 +73,6 @@ public class InvoiceItemFactory {
case CREDIT_ADJ:
item = new CreditAdjInvoiceItem(id, createdDate, invoiceId, accountId, startDate, description, amount, currency);
break;
- case REFUND_ADJ:
- item = new RefundAdjInvoiceItem(id, createdDate, invoiceId, accountId, startDate, description, amount, currency);
- break;
case REPAIR_ADJ:
item = new RepairAdjInvoiceItem(id, createdDate, invoiceId, accountId, startDate, endDate, description, amount, currency, linkedItemId);
break;
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 058f139..337a9b5 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
@@ -1,7 +1,7 @@
/*
* Copyright 2010-2013 Ning, Inc.
- * Copyright 2014-2015 Groupon, Inc
- * Copyright 2014-2015 The Billing Project, LLC
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
* The Billing Project 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
@@ -103,10 +103,8 @@ public class DefaultInvoiceFormatter implements InvoiceFormatter {
// Merge CBA items to avoid confusing the customer, since these are internal
// adjustments (auto generated)
mergedCBAItem = mergeCBAItem(invoiceItems, mergedCBAItem, item);
- } else if (InvoiceItemType.REFUND_ADJ.equals(item.getInvoiceItemType()) ||
- InvoiceItemType.CREDIT_ADJ.equals(item.getInvoiceItemType())) {
- // Merge refund adjustments and credit adjustments, as these are both
- // the same for the customer (invoice adjustment)
+ } else if (InvoiceItemType.CREDIT_ADJ.equals(item.getInvoiceItemType())) {
+ // Merge credit adjustments, as these are both the same for the customer (invoice adjustment)
mergedInvoiceAdjustment = mergeInvoiceAdjustmentItem(invoiceItems, mergedInvoiceAdjustment, item);
} else {
invoiceItems.add(item);
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/tree/AccountItemTree.java b/invoice/src/main/java/org/killbill/billing/invoice/tree/AccountItemTree.java
index faa66f0..def85b1 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/tree/AccountItemTree.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/tree/AccountItemTree.java
@@ -1,7 +1,7 @@
/*
* Copyright 2010-2014 Ning, Inc.
- * Copyright 2014-2015 Groupon, Inc
- * Copyright 2014-2015 The Billing Project, LLC
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
* The Billing Project 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
@@ -104,7 +104,6 @@ public class AccountItemTree {
case TAX:
case CBA_ADJ:
case CREDIT_ADJ:
- case REFUND_ADJ:
case USAGE:
return;
diff --git a/invoice/src/main/resources/org/killbill/billing/invoice/migration/V20162029212038__invoice_refund_adj_30.sql b/invoice/src/main/resources/org/killbill/billing/invoice/migration/V20162029212038__invoice_refund_adj_30.sql
new file mode 100644
index 0000000..a314a09
--- /dev/null
+++ b/invoice/src/main/resources/org/killbill/billing/invoice/migration/V20162029212038__invoice_refund_adj_30.sql
@@ -0,0 +1 @@
+update invoice_items set type = 'CREDIT_ADJ' where type = 'REFUND_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 c7beaab..3fa01dd 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
@@ -1,7 +1,7 @@
/*
* Copyright 2010-2013 Ning, Inc.
- * Copyright 2014-2015 Groupon, Inc
- * Copyright 2014-2015 The Billing Project, LLC
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
*
* The Billing Project 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
@@ -42,7 +42,6 @@ import org.killbill.billing.invoice.model.CreditBalanceAdjInvoiceItem;
import org.killbill.billing.invoice.model.DefaultInvoice;
import org.killbill.billing.invoice.model.DefaultInvoicePayment;
import org.killbill.billing.invoice.model.FixedPriceInvoiceItem;
-import org.killbill.billing.invoice.model.RefundAdjInvoiceItem;
import org.killbill.billing.invoice.model.RepairAdjInvoiceItem;
import org.killbill.billing.invoice.template.translator.DefaultInvoiceTranslator;
import org.killbill.billing.util.email.templates.MustacheTemplateEngine;
@@ -109,8 +108,6 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
// Then, the invoice is adjusted for $1:
// * $-1 credit adjustment
// * $1 generated CBA due to the credit adjustment
- // Then, we refund $1 with invoice level adjustment:
- // * $-1 refund adjustment
final FixedPriceInvoiceItem fixedItem = new FixedPriceInvoiceItem(UUID.randomUUID(), UUID.randomUUID(), null, null,
UUID.randomUUID().toString(), UUID.randomUUID().toString(),
new LocalDate(), BigDecimal.TEN, Currency.USD);
@@ -126,8 +123,6 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
final CreditBalanceAdjInvoiceItem creditBalanceAdjInvoiceItem2 = new CreditBalanceAdjInvoiceItem(fixedItem.getInvoiceId(), fixedItem.getAccountId(),
fixedItem.getStartDate(), creditAdjInvoiceItem.getAmount().negate(),
fixedItem.getCurrency());
- final RefundAdjInvoiceItem refundAdjInvoiceItem = new RefundAdjInvoiceItem(fixedItem.getInvoiceId(), fixedItem.getAccountId(),
- fixedItem.getStartDate(), BigDecimal.ONE.negate(), fixedItem.getCurrency());
final DefaultInvoice invoice = new DefaultInvoice(fixedItem.getInvoiceId(), fixedItem.getAccountId(), null,
new LocalDate(), new LocalDate(), Currency.USD, false, InvoiceStatus.COMMITTED);
invoice.addInvoiceItem(fixedItem);
@@ -135,13 +130,12 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
invoice.addInvoiceItem(creditBalanceAdjInvoiceItem);
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, Currency.USD, null, true));
invoice.addPayment(new DefaultInvoicePayment(InvoicePaymentType.REFUND, UUID.randomUUID(), invoice.getId(), clock.getUTCNow(), BigDecimal.ONE.negate(),
Currency.USD, Currency.USD, null, true));
// Check the scenario
- Assert.assertEquals(invoice.getBalance().doubleValue(), 0.00);
+ Assert.assertEquals(invoice.getBalance().doubleValue(), 1.00);
Assert.assertEquals(invoice.getCreditedAmount().doubleValue(), 11.00);
Assert.assertEquals(invoice.getRefundedAmount().doubleValue(), -1.00);
@@ -156,7 +150,7 @@ public class TestDefaultInvoiceFormatter extends InvoiceTestSuiteNoDB {
Assert.assertEquals(invoiceItems.get(2).getInvoiceItemType(), InvoiceItemType.CBA_ADJ);
Assert.assertEquals(invoiceItems.get(2).getAmount().doubleValue(), 11.00);
Assert.assertEquals(invoiceItems.get(3).getInvoiceItemType(), InvoiceItemType.CREDIT_ADJ);
- Assert.assertEquals(invoiceItems.get(3).getAmount().doubleValue(), -2.00);
+ Assert.assertEquals(invoiceItems.get(3).getAmount().doubleValue(), -1.00);
}
@Test(groups = "fast")