PlanPhase.getDuration
Code IndexAdd Codota to your IDE (free)

Best code snippets using org.killbill.billing.catalog.api.PlanPhase.getDuration(Showing top 15 results out of 315)

origin: org.kill-bill.billing/killbill-catalog

private DefaultPlanPhase toDefaultPlanPhase(final PlanPhase input) {
  final DefaultPlanPhase result = new DefaultPlanPhase();
  result.setDuration(toDefaultDuration(input.getDuration()));
  result.setFixed(toDefaultFixed(input.getFixed()));
  result.setPhaseType(input.getPhaseType());
  result.setRecurring(toDefaultRecurring(input.getRecurring()));
  if (input.getUsages() != null && input.getUsages().length > 0) {
    result.setUsages(toDefaultUsages(Arrays.asList(input.getUsages())));
  }
  return result;
}
origin: org.kill-bill.billing/killbill-subscription

private void cancelNextPhaseEvent(final UUID subscriptionId,  final Catalog catalog, final InternalTenantContext context) {
  final SubscriptionBase curSubscription = getSubscriptionFromId(subscriptionId, catalog, context);
  if (curSubscription.getCurrentPhase() == null ||
    curSubscription.getCurrentPhase().getDuration().getUnit() == TimeUnit.UNLIMITED) {
    return;
  }
  synchronized (events) {
    final Iterator<SubscriptionBaseEvent> it = events.descendingIterator();
    while (it.hasNext()) {
      final SubscriptionBaseEvent cur = it.next();
      if (cur.getSubscriptionId() != subscriptionId) {
        continue;
      }
      if (cur.getType() == EventType.PHASE &&
        cur.getEffectiveDate().isAfter(clock.getUTCNow())) {
        it.remove();
        break;
      }
    }
  }
}
origin: org.kill-bill.billing/killbill-subscription

private void tChangePlanBundleAlignIMM(final String fromProd, final BillingPeriod fromTerm, final String fromPlanSet,
                    final String toProd, final BillingPeriod toTerm, final String toPlanSet) throws SubscriptionBaseApiException {
  final DefaultSubscriptionBase subscription = testUtil.createSubscription(bundle, fromProd, fromTerm, fromPlanSet);
  testListener.pushExpectedEvent(NextEvent.CHANGE);
  Interval it = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(3));
  clock.addDeltaFromReality(it.toDurationMillis());
  // CHANGE PLAN IMM
  subscription.changePlan(new PlanPhaseSpecifier(toProd, toTerm, toPlanSet), null, callContext);
  checkChangePlan(subscription, toProd, ProductCategory.BASE, toTerm, PhaseType.TRIAL);
  assertListenerStatus();
  final PlanPhase currentPhase = subscription.getCurrentPhase();
  final DateTime nextExpectedPhaseChange = TestSubscriptionHelper.addDuration(subscription.getStartDate(), currentPhase.getDuration());
  testUtil.checkNextPhaseChange(subscription, 1, nextExpectedPhaseChange);
  // NEXT PHASE
  testListener.pushExpectedEvent(NextEvent.PHASE);
  it = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(30));
  clock.addDeltaFromReality(it.toDurationMillis());
  final DateTime futureNow = clock.getUTCNow();
  assertTrue(futureNow.isAfter(nextExpectedPhaseChange));
  assertListenerStatus();
}
origin: org.kill-bill.billing/killbill-catalog

@Override
public DateTime dateOfFirstRecurringNonZeroCharge(final DateTime subscriptionStartDate, final PhaseType initialPhaseType) {
  DateTime result = subscriptionStartDate;
  boolean skipPhase = initialPhaseType != null;
  for (final PlanPhase phase : getAllPhases()) {
    if (skipPhase) {
      if (phase.getPhaseType() != initialPhaseType) {
        continue;
      } else {
        skipPhase = false;
      }
    }
    final Recurring recurring = phase.getRecurring();
    if (phase.getDuration().getUnit() != TimeUnit.UNLIMITED &&
      (recurring == null || recurring.getRecurringPrice() == null || recurring.getRecurringPrice().isZero())) {
      try {
        result = phase.getDuration().addToDateTime(result);
      } catch (final CatalogApiException ignored) {
      }
    } else {
      break;
    }
  }
  return result;
}
origin: org.kill-bill.billing/killbill-subscription

@Test(groups = "fast")
public void testChangeSubscriptionFutureCancelled() throws SubscriptionBaseApiException {
  SubscriptionBase subscription = testUtil.createSubscription(bundle, "Shotgun", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME);
  final PlanPhase trialPhase = subscription.getCurrentPhase();
  // MOVE TO NEXT PHASE
  final PlanPhase currentPhase = subscription.getCurrentPhase();
  testListener.pushExpectedEvent(NextEvent.PHASE);
  final Interval it = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(31));
  clock.addDeltaFromReality(it.toDurationMillis());
  assertListenerStatus();
  // SET CTD TO CANCEL IN FUTURE
  final DateTime expectedPhaseTrialChange = TestSubscriptionHelper.addDuration(subscription.getStartDate(), trialPhase.getDuration());
  final Duration ctd = testUtil.getDurationMonth(1);
  final DateTime newChargedThroughDate = TestSubscriptionHelper.addDuration(expectedPhaseTrialChange, ctd);
  subscriptionInternalApi.setChargedThroughDate(subscription.getId(), newChargedThroughDate, internalCallContext);
  subscription = subscriptionInternalApi.getSubscriptionFromId(subscription.getId(), internalCallContext);
  subscription.cancelWithPolicy(BillingActionPolicy.END_OF_TERM, -1, callContext);
  try {
    subscription.changePlanWithDate(new PlanPhaseSpecifier("Pistol", BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME), null, clock.getUTCNow(), callContext);
    Assert.fail("Exception expected, error code: " + ErrorCode.SUB_CHANGE_FUTURE_CANCELLED);
  } catch (final SubscriptionBaseApiException e) {
    assertEquals(e.getCode(), ErrorCode.SUB_CHANGE_FUTURE_CANCELLED.getCode());
  }
  assertListenerStatus();
}
origin: org.kill-bill.billing/killbill-subscription

final Duration curPhaseDuration = cur.getDuration();
nextPhaseStart = addDuration(curPhaseStart, curPhaseDuration);
if (nextPhaseStart == null) {
origin: org.kill-bill.billing/killbill-subscription

@Test(groups = "slow")
public void testCancelSubscriptionEOTWithNoChargeThroughDate() throws SubscriptionBaseApiException {
  final String prod = "Shotgun";
  final BillingPeriod term = BillingPeriod.MONTHLY;
  final String planSet = PriceListSet.DEFAULT_PRICELIST_NAME;
  // CREATE
  final DefaultSubscriptionBase subscription = testUtil.createSubscription(bundle, prod, term, planSet);
  PlanPhase trialPhase = subscription.getCurrentPhase();
  assertEquals(trialPhase.getPhaseType(), PhaseType.TRIAL);
  // NEXT PHASE
  final DateTime expectedPhaseTrialChange = TestSubscriptionHelper.addDuration(subscription.getStartDate(), trialPhase.getDuration());
  testUtil.checkNextPhaseChange(subscription, 1, expectedPhaseTrialChange);
  // MOVE TO NEXT PHASE
  testListener.pushExpectedEvent(NextEvent.PHASE);
  final Interval it = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(31));
  clock.addDeltaFromReality(it.toDurationMillis());
  assertListenerStatus();
  trialPhase = subscription.getCurrentPhase();
  assertEquals(trialPhase.getPhaseType(), PhaseType.EVERGREEN);
  testListener.pushExpectedEvent(NextEvent.CANCEL);
  // CANCEL
  subscription.cancel(callContext);
  assertListenerStatus();
  final PlanPhase currentPhase = subscription.getCurrentPhase();
  assertNull(currentPhase);
  testUtil.checkNextPhaseChange(subscription, 0, null);
  assertListenerStatus();
}
origin: org.kill-bill.billing/killbill-subscription

durationList.add(trialPhase.getDuration());
origin: org.kill-bill.billing/killbill-subscription

private void tChangePlanBundleAlignEOTWithNoChargeThroughDate(final String fromProd, final BillingPeriod fromTerm, final String fromPlanSet,
                               final String toProd, final BillingPeriod toTerm, final String toPlanSet) {
  try {
    // CREATE
    final DefaultSubscriptionBase subscription = testUtil.createSubscription(bundle, fromProd, fromTerm, fromPlanSet);
    // MOVE TO NEXT PHASE
    PlanPhase currentPhase = subscription.getCurrentPhase();
    testListener.pushExpectedEvent(NextEvent.PHASE);
    final Interval it = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(31));
    clock.addDeltaFromReality(it.toDurationMillis());
    final DateTime futureNow = clock.getUTCNow();
    final DateTime nextExpectedPhaseChange = TestSubscriptionHelper.addDuration(subscription.getStartDate(), currentPhase.getDuration());
    assertTrue(futureNow.isAfter(nextExpectedPhaseChange));
    assertListenerStatus();
    // CHANGE PLAN
    testListener.pushExpectedEvent(NextEvent.CHANGE);
    subscription.changePlan(new PlanPhaseSpecifier(toProd, toTerm, toPlanSet), null, callContext);
    assertListenerStatus();
    // CHECK CHANGE PLAN
    currentPhase = subscription.getCurrentPhase();
    checkChangePlan(subscription, toProd, ProductCategory.BASE, toTerm, PhaseType.EVERGREEN);
    assertListenerStatus();
  } catch (SubscriptionBaseApiException e) {
    Assert.fail(e.getMessage());
  }
}
origin: org.kill-bill.billing/killbill-catalog

private DefaultPlanPhase toDefaultPlanPhase(final PlanPhase input) {
  final DefaultPlanPhase result = new DefaultPlanPhase();
  result.setDuration(toDefaultDuration(input.getDuration()));
  result.setFixed(toDefaultFixed(input.getFixed()));
  result.setPhaseType(input.getPhaseType());
  result.setRecurring(toDefaultRecurring(input.getRecurring()));
  if (input.getUsages() != null && input.getUsages().length > 0) {
    result.setUsages(toDefaultUsages(Arrays.asList(input.getUsages())));
  }
  return result;
}
origin: org.kill-bill.billing/killbill-subscription

private void tChangePlanBundleAlignIMM(final String fromProd, final BillingPeriod fromTerm, final String fromPlanSet,
                    final String toProd, final BillingPeriod toTerm, final String toPlanSet) throws SubscriptionBaseApiException {
  final DefaultSubscriptionBase subscription = testUtil.createSubscription(bundle, fromProd, fromTerm, fromPlanSet);
  testListener.pushExpectedEvent(NextEvent.CHANGE);
  Interval it = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(3));
  clock.addDeltaFromReality(it.toDurationMillis());
  // CHANGE PLAN IMM
  subscription.changePlan(new PlanPhaseSpecifier(toProd, toTerm, toPlanSet), null, callContext);
  checkChangePlan(subscription, toProd, ProductCategory.BASE, toTerm, PhaseType.TRIAL);
  assertListenerStatus();
  final PlanPhase currentPhase = subscription.getCurrentPhase();
  final DateTime nextExpectedPhaseChange = TestSubscriptionHelper.addDuration(subscription.getStartDate(), currentPhase.getDuration());
  testUtil.checkNextPhaseChange(subscription, 1, nextExpectedPhaseChange);
  // NEXT PHASE
  testListener.pushExpectedEvent(NextEvent.PHASE);
  it = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(30));
  clock.addDeltaFromReality(it.toDurationMillis());
  final DateTime futureNow = clock.getUTCNow();
  assertTrue(futureNow.isAfter(nextExpectedPhaseChange));
  assertListenerStatus();
}
origin: org.kill-bill.billing/killbill-subscription

private void cancelNextPhaseEvent(final UUID subscriptionId,  final Catalog catalog, final InternalTenantContext context) {
  final SubscriptionBase curSubscription = getSubscriptionFromId(subscriptionId, catalog, context);
  if (curSubscription.getCurrentPhase() == null ||
    curSubscription.getCurrentPhase().getDuration().getUnit() == TimeUnit.UNLIMITED) {
    return;
  }
  synchronized (events) {
    final Iterator<SubscriptionBaseEvent> it = events.descendingIterator();
    while (it.hasNext()) {
      final SubscriptionBaseEvent cur = it.next();
      if (cur.getSubscriptionId() != subscriptionId) {
        continue;
      }
      if (cur.getType() == EventType.PHASE &&
        cur.getEffectiveDate().isAfter(clock.getUTCNow())) {
        it.remove();
        break;
      }
    }
  }
}
origin: org.kill-bill.billing/killbill-catalog

@Override
public DateTime dateOfFirstRecurringNonZeroCharge(final DateTime subscriptionStartDate, final PhaseType initialPhaseType) {
  DateTime result = subscriptionStartDate;
  boolean skipPhase = initialPhaseType != null;
  for (final PlanPhase phase : getAllPhases()) {
    if (skipPhase) {
      if (phase.getPhaseType() != initialPhaseType) {
        continue;
      } else {
        skipPhase = false;
      }
    }
    final Recurring recurring = phase.getRecurring();
    if (phase.getDuration().getUnit() != TimeUnit.UNLIMITED &&
      (recurring == null || recurring.getRecurringPrice() == null || recurring.getRecurringPrice().isZero())) {
      try {
        result = phase.getDuration().addToDateTime(result);
      } catch (final CatalogApiException ignored) {
      }
    } else {
      break;
    }
  }
  return result;
}
origin: org.kill-bill.billing/killbill-subscription

private void tChangePlanBundleAlignEOTWithNoChargeThroughDate(final String fromProd, final BillingPeriod fromTerm, final String fromPlanSet,
                               final String toProd, final BillingPeriod toTerm, final String toPlanSet) {
  try {
    // CREATE
    final DefaultSubscriptionBase subscription = testUtil.createSubscription(bundle, fromProd, fromTerm, fromPlanSet);
    // MOVE TO NEXT PHASE
    PlanPhase currentPhase = subscription.getCurrentPhase();
    testListener.pushExpectedEvent(NextEvent.PHASE);
    final Interval it = new Interval(clock.getUTCNow(), clock.getUTCNow().plusDays(31));
    clock.addDeltaFromReality(it.toDurationMillis());
    final DateTime futureNow = clock.getUTCNow();
    final DateTime nextExpectedPhaseChange = TestSubscriptionHelper.addDuration(subscription.getStartDate(), currentPhase.getDuration());
    assertTrue(futureNow.isAfter(nextExpectedPhaseChange));
    assertListenerStatus();
    // CHANGE PLAN
    testListener.pushExpectedEvent(NextEvent.CHANGE);
    subscription.changePlan(new PlanPhaseSpecifier(toProd, toTerm, toPlanSet), null, callContext);
    assertListenerStatus();
    // CHECK CHANGE PLAN
    currentPhase = subscription.getCurrentPhase();
    checkChangePlan(subscription, toProd, ProductCategory.BASE, toTerm, PhaseType.EVERGREEN);
    assertListenerStatus();
  } catch (SubscriptionBaseApiException e) {
    Assert.fail(e.getMessage());
  }
}
origin: org.kill-bill.billing/killbill-subscription

final Duration curPhaseDuration = cur.getDuration();
nextPhaseStart = addDuration(curPhaseStart, curPhaseDuration);
if (nextPhaseStart == null) {
org.killbill.billing.catalog.apiPlanPhasegetDuration

Popular methods of PlanPhase

  • getName
  • getPhaseType
  • getRecurring
  • getFixed
  • getUsages
  • compliesWithLimits
  • getPrettyName

Popular classes and methods

  • addToBackStack (FragmentTransaction)
  • requestLocationUpdates (LocationManager)
  • scheduleAtFixedRate (Timer)
    Schedules the specified task for repeated fixed-rate execution, beginning after the specified delay.
  • BigDecimal (java.math)
    An immutable arbitrary-precision signed decimal.A value is represented by an arbitrary-precision "un
  • BigInteger (java.math)
    An immutable arbitrary-precision signed integer.FAST CRYPTOGRAPHY This implementation is efficient f
  • Connection (java.sql)
    A connection (session) with a specific database. SQL statements are executed and results are returne
  • ArrayList (java.util)
    Resizable-array implementation of the List interface.
  • PriorityQueue (java.util)
    A PriorityQueue holds elements on a priority heap, which orders the elements according to their natu
  • JTextField (javax.swing)
  • Table (org.hibernate.mapping)
    A relational table

For IntelliJ IDEA and
Android Studio

  • Codota IntelliJ IDEA pluginCodota Android Studio pluginCode IndexSign in
  • EnterpriseFAQAboutContact Us
  • Terms of usePrivacy policyCodeboxFind Usages
Add Codota to your IDE (free)