public DefaultBillingEvent(final SubscriptionBase subscription, final DateTime effectiveDate, final boolean isActive,
final Plan plan, final PlanPhase planPhase, final BigDecimal fixedPrice,
final Currency currency,
final BillingPeriod billingPeriod, final int billCycleDayLocal,
final String description, final long totalOrdering, final SubscriptionBaseTransitionType type,
final Catalog catalog,
final boolean isDisableEvent) throws CatalogApiException {
this.catalog = catalog;
this.subscription = subscription;
this.effectiveDate = effectiveDate;
this.plan = plan;
this.planPhase = planPhase;
this.fixedPrice = fixedPrice;
this.currency = currency;
this.billingPeriod = billingPeriod;
this.billCycleDayLocal = billCycleDayLocal;
this.description = description;
this.type = type;
this.totalOrdering = totalOrdering;
this.usages = initializeUsage(isActive);
this.isDisableEvent = isDisableEvent;
this.nextPlanPhase = isDisableEvent ? null : planPhase;
this.catalogEffectiveDate = plan != null ? new DateTime(plan.getCatalog().getEffectiveDate()) : null;
this.billingAlignment = null;
}