Details
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationBase.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationBase.java
index 07a8c84..6bec34b 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationBase.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationBase.java
@@ -1049,6 +1049,11 @@ public class TestIntegrationBase extends BeatrixTestSuiteWithEmbeddedDB implemen
return isInvoicingSystemEnabled();
}
+ @Override
+ public String getItemResultBehaviorMode() {
+ return null;
+ }
+
public void setInvoicingSystemEnabled(final boolean invoicingSystemEnabled) {
isInvoicingSystemEnabled = invoicingSystemEnabled;
}
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/config/MultiTenantInvoiceConfig.java b/invoice/src/main/java/org/killbill/billing/invoice/config/MultiTenantInvoiceConfig.java
index 70f9c13..adcf302 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/config/MultiTenantInvoiceConfig.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/config/MultiTenantInvoiceConfig.java
@@ -163,6 +163,15 @@ public class MultiTenantInvoiceConfig extends MultiTenantConfigBase implements I
}
@Override
+ public String getItemResultBehaviorMode() {
+ final String result = staticConfig.getItemResultBehaviorMode();
+ if (result != InvoiceConfig.AGGREGATE_MODE || result != InvoiceConfig.DETAIL_MODE) {
+ return InvoiceConfig.AGGREGATE_MODE;
+ }
+ return result;
+ }
+
+ @Override
protected Class<? extends KillbillConfig> getConfigClass() {
return InvoiceConfig.class;
}
diff --git a/util/src/main/java/org/killbill/billing/util/config/definition/InvoiceConfig.java b/util/src/main/java/org/killbill/billing/util/config/definition/InvoiceConfig.java
index 65ea53b..434291e 100644
--- a/util/src/main/java/org/killbill/billing/util/config/definition/InvoiceConfig.java
+++ b/util/src/main/java/org/killbill/billing/util/config/definition/InvoiceConfig.java
@@ -27,6 +27,8 @@ import org.skife.config.Param;
import org.skife.config.TimeSpan;
public interface InvoiceConfig extends KillbillConfig {
+ static final String AGGREGATE_MODE = "aggregate";
+ static final String DETAIL_MODE = "detail";
@Config("org.killbill.invoice.maxNumberOfMonthsInFuture")
@Default("36")
@@ -117,4 +119,9 @@ public interface InvoiceConfig extends KillbillConfig {
@Default("true")
@Description("Whether the invoicing system is enabled")
boolean isInvoicingSystemEnabled(@Param("dummy") final InternalTenantContext tenantContext);
+
+ @Config("org.killbill.invoice.item.result.behavior.mode")
+ @Default(AGGREGATE_MODE)
+ @Description("How the result for an item will be reported (aggregate mode or detail mode). ")
+ String getItemResultBehaviorMode();
}