final TenantContext tenantContext, final InternalTenantContext context) throws SubscriptionBaseApiException, CatalogApiException { if (dryRunArguments == null || dryRunArguments.getAction() == null) { return; final EntitlementSpecifier entitlementSpecifier = dryRunArguments.getEntitlementSpecifier(); final PlanPhaseSpecifier inputSpec = entitlementSpecifier.getPlanPhaseSpecifier(); final boolean isInputSpecNullOrEmpty = inputSpec == null || switch (dryRunArguments.getAction()) { case START_BILLING: final SubscriptionBase baseSubscription = dao.getBaseSubscription(bundleId, catalog, context); final DateTime startEffectiveDate = dryRunArguments.getEffectiveDate() != null ? context.toUTCDateTime(dryRunArguments.getEffectiveDate()) : utcNow; final DateTime bundleStartDate = getBundleStartDateWithSanity(bundleId, baseSubscription, plan, startEffectiveDate, addonUtils, context); final UUID subscriptionId = UUIDs.randomUUID(); final DefaultSubscriptionBase subscriptionForChange = (DefaultSubscriptionBase) dao.getSubscriptionFromId(dryRunArguments.getSubscriptionId(), catalog, context); DateTime changeEffectiveDate = getDryRunEffectiveDate(dryRunArguments.getEffectiveDate(), subscriptionForChange, context); if (changeEffectiveDate == null) { BillingActionPolicy policy = dryRunArguments.getBillingActionPolicy(); if (policy == null) { final PlanChangeResult planChangeResult = apiService.getPlanChangeResult(subscriptionForChange, inputSpec, utcNow, tenantContext); final DefaultSubscriptionBase subscriptionForCancellation = (DefaultSubscriptionBase) dao.getSubscriptionFromId(dryRunArguments.getSubscriptionId(), catalog, context); DateTime cancelEffectiveDate = getDryRunEffectiveDate(dryRunArguments.getEffectiveDate(), subscriptionForCancellation, context); if (dryRunArguments.getEffectiveDate() == null) { BillingActionPolicy policy = dryRunArguments.getBillingActionPolicy();
private Iterable<UUID> getFilteredSubscriptionIdsFor_UPCOMING_INVOICE_DryRun(@Nullable final DryRunArguments dryRunArguments, final BillingEventSet billingEvents) { if (dryRunArguments == null || !dryRunArguments.getDryRunType().equals(DryRunType.UPCOMING_INVOICE) || (dryRunArguments.getSubscriptionId() == null && dryRunArguments.getBundleId() == null)) { return ImmutableList.<UUID>of(); } if (dryRunArguments.getSubscriptionId() != null) { return ImmutableList.of(dryRunArguments.getSubscriptionId()); } return Iterables.transform(Iterables.filter(billingEvents, new Predicate<BillingEvent>() { @Override public boolean apply(final BillingEvent input) { return input.getSubscription().getBundleId().equals(dryRunArguments.getBundleId()); } }), new Function<BillingEvent, UUID>() { @Override public UUID apply(final BillingEvent input) { return input.getSubscription().getId(); } }); }
dryRunArguments.getAction() == SubscriptionEventType.START_BILLING && dryRunArguments.getBundleId() == null) { final UUID fakeBundleId = UUIDs.randomUUID(); final List<SubscriptionBase> subscriptions = subscriptionApi.getSubscriptionsForBundle(fakeBundleId, dryRunArguments, context); dryRunArguments.getBundleId() != null && dryRunArguments.getBundleId().equals(bundle.getId())) ? dryRunArguments : null; final List<SubscriptionBase> subscriptions; if (dryRunArgumentsForBundle == null || dryRunArgumentsForBundle.getAction() == null) { subscriptions = getSubscriptionsForAccountByBundleId(subscriptionsForAccount, bundle.getId()); } else {
final InternalCallContext context) throws InvoiceApiException { final boolean isDryRun = dryRunArguments != null; final boolean upcomingInvoiceDryRun = isDryRun && DryRunType.UPCOMING_INVOICE.equals(dryRunArguments.getDryRunType()); if (dryRunArguments.getDryRunType() == DryRunType.UPCOMING_INVOICE) {
final TenantContext tenantContext, final InternalTenantContext context) throws SubscriptionBaseApiException, CatalogApiException { if (dryRunArguments == null || dryRunArguments.getAction() == null) { return; final EntitlementSpecifier entitlementSpecifier = dryRunArguments.getEntitlementSpecifier(); final PlanPhaseSpecifier inputSpec = entitlementSpecifier.getPlanPhaseSpecifier(); final boolean isInputSpecNullOrEmpty = inputSpec == null || switch (dryRunArguments.getAction()) { case START_BILLING: final SubscriptionBase baseSubscription = dao.getBaseSubscription(bundleId, catalog, context); final DateTime startEffectiveDate = dryRunArguments.getEffectiveDate() != null ? context.toUTCDateTime(dryRunArguments.getEffectiveDate()) : utcNow; final DateTime bundleStartDate = getBundleStartDateWithSanity(bundleId, baseSubscription, plan, startEffectiveDate, addonUtils, context); final UUID subscriptionId = UUIDs.randomUUID(); final DefaultSubscriptionBase subscriptionForChange = (DefaultSubscriptionBase) dao.getSubscriptionFromId(dryRunArguments.getSubscriptionId(), catalog, context); DateTime changeEffectiveDate = getDryRunEffectiveDate(dryRunArguments.getEffectiveDate(), subscriptionForChange, context); if (changeEffectiveDate == null) { BillingActionPolicy policy = dryRunArguments.getBillingActionPolicy(); if (policy == null) { final PlanChangeResult planChangeResult = apiService.getPlanChangeResult(subscriptionForChange, inputSpec, utcNow, tenantContext); final DefaultSubscriptionBase subscriptionForCancellation = (DefaultSubscriptionBase) dao.getSubscriptionFromId(dryRunArguments.getSubscriptionId(), catalog, context); DateTime cancelEffectiveDate = getDryRunEffectiveDate(dryRunArguments.getEffectiveDate(), subscriptionForCancellation, context); if (dryRunArguments.getEffectiveDate() == null) { BillingActionPolicy policy = dryRunArguments.getBillingActionPolicy();