killbill-memoizeit

Merge pull request #976 from killbill/fix-for-968 invoice:

5/8/2018 6:16:02 PM

Details

diff --git a/invoice/src/main/java/org/killbill/billing/invoice/api/InvoiceApiHelper.java b/invoice/src/main/java/org/killbill/billing/invoice/api/InvoiceApiHelper.java
index 7558dd5..c692f73 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/api/InvoiceApiHelper.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/api/InvoiceApiHelper.java
@@ -39,8 +39,8 @@ import org.killbill.billing.invoice.dao.InvoiceDao;
 import org.killbill.billing.invoice.dao.InvoiceItemModelDao;
 import org.killbill.billing.invoice.dao.InvoiceModelDao;
 import org.killbill.billing.invoice.model.DefaultInvoice;
+import org.killbill.billing.invoice.model.InvoiceItemCatalogBase;
 import org.killbill.billing.invoice.model.InvoiceItemFactory;
-import org.killbill.billing.invoice.model.ItemAdjInvoiceItem;
 import org.killbill.billing.util.UUIDs;
 import org.killbill.billing.util.callcontext.CallContext;
 import org.killbill.billing.util.callcontext.InternalCallContextFactory;
@@ -186,16 +186,27 @@ public class InvoiceApiHelper {
         // If we pass that stage, it means the validation succeeded so we just need to extract resulting amount and negate the result.
         final BigDecimal amountToAdjust = output.get(invoiceItemId).negate();
         // Finally, create the adjustment
-        return new ItemAdjInvoiceItem(UUIDs.randomUUID(),
-                                      context.getCreatedDate(),
-                                      invoiceItemToBeAdjusted.getInvoiceId(),
-                                      invoiceItemToBeAdjusted.getAccountId(),
-                                      effectiveDate,
-                                      description,
-                                      amountToAdjust,
-                                      currencyForAdjustment,
-                                      invoiceItemToBeAdjusted.getId(),
-                                      itemDetails);
+
+        return new InvoiceItemCatalogBase(UUIDs.randomUUID(),
+                                          context.getCreatedDate(),
+                                          invoiceItemToBeAdjusted.getInvoiceId(),
+                                          invoiceItemToBeAdjusted.getAccountId(),
+                                          null,
+                                          null,
+                                          description,
+                                          invoiceItemToBeAdjusted.getProductName(),
+                                          invoiceItemToBeAdjusted.getPlanName(),
+                                          invoiceItemToBeAdjusted.getPhaseName(),
+                                          invoiceItemToBeAdjusted.getUsageName(),
+                                          effectiveDate,
+                                          effectiveDate,
+                                          amountToAdjust,
+                                          null,
+                                          currencyForAdjustment,
+                                          invoiceItemToBeAdjusted.getId(),
+                                          null,
+                                          itemDetails,
+                                          InvoiceItemType.ITEM_ADJ);
     }
 
     private List<InvoiceItem> fromInvoiceItemModelDao(final Collection<InvoiceItemModelDao> invoiceItemModelDaos) {
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDaoHelper.java b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDaoHelper.java
index b89497e..5d57bd1 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDaoHelper.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/dao/InvoiceDaoHelper.java
@@ -219,7 +219,8 @@ public class InvoiceDaoHelper {
         // Finally, create the adjustment
         // Note! The amount is negated here!
         return new InvoiceItemModelDao(context.getCreatedDate(), InvoiceItemType.ITEM_ADJ, invoiceItemToBeAdjusted.getInvoiceId(), invoiceItemToBeAdjusted.getAccountId(),
-                                       null, null, null, null, null, null, null, effectiveDate, effectiveDate, amountToAdjust.negate(), null, currencyForAdjustment, invoiceItemToBeAdjusted.getId());
+                                       null, null, null, invoiceItemToBeAdjusted.getProductName(), invoiceItemToBeAdjusted.getPlanName(), invoiceItemToBeAdjusted.getPhaseName(),
+                                       invoiceItemToBeAdjusted.getUsageName(), effectiveDate, effectiveDate, amountToAdjust.negate(), null, currencyForAdjustment, invoiceItemToBeAdjusted.getId());
     }
 
     public void populateChildren(final InvoiceModelDao invoice, final List<Tag> invoicesTags, final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory, final InternalTenantContext context) {