mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-22 21:55:39 +00:00
bug5773: fixed not working cancelation of already covered subscriptions.
This commit is contained in:
-2
@@ -6,7 +6,6 @@ import java.util.logging.Logger;
|
||||
import com.chargebee.Result;
|
||||
import com.chargebee.models.Subscription;
|
||||
import com.chargebee.models.Subscription.CancelForItemsRequest;
|
||||
import com.chargebee.models.enums.AccountReceivablesHandling;
|
||||
import com.chargebee.models.enums.CreditOptionForCurrentTermCharges;
|
||||
import com.chargebee.models.enums.RefundableCreditsHandling;
|
||||
import com.sap.sse.security.subscription.SubscriptionApiBaseService;
|
||||
@@ -37,7 +36,6 @@ public class ChargebeeCancelSubscriptionRequest extends ChargebeeApiRequest {
|
||||
logger.info(() -> "Cancel Chargebee subscription, subscription id: " + subscriptionId);
|
||||
CancelForItemsRequest request = Subscription.cancelForItems(subscriptionId)
|
||||
.creditOptionForCurrentTermCharges(CreditOptionForCurrentTermCharges.PRORATE)
|
||||
.accountReceivablesHandling(AccountReceivablesHandling.SCHEDULE_PAYMENT_COLLECTION)
|
||||
.refundableCreditsHandling(RefundableCreditsHandling.SCHEDULE_REFUND)
|
||||
.endOfTerm(false);
|
||||
return new ChargebeeInternalApiRequestWrapper(request);
|
||||
|
||||
+11
-30
@@ -12,7 +12,7 @@ import com.sap.sse.security.subscription.SubscriptionCancelResult;
|
||||
* Task to perform canceling a subscription by subscription id
|
||||
*/
|
||||
public class ChargebeeCancelSubscriptionTask
|
||||
implements ChargebeeSubscriptionRequest.OnResultListener, ChargebeeCancelSubscriptionRequest.OnResultListener {
|
||||
implements ChargebeeCancelSubscriptionRequest.OnResultListener {
|
||||
private static final Logger logger = Logger.getLogger(ChargebeeCancelSubscriptionTask.class.getName());
|
||||
|
||||
/**
|
||||
@@ -38,44 +38,25 @@ public class ChargebeeCancelSubscriptionTask
|
||||
|
||||
public void run() {
|
||||
logger.info(() -> "Schedule cancel Chargebee subscription, id: " + subscriptionId);
|
||||
requestProcessor.addRequest(new ChargebeeSubscriptionRequest(subscriptionId, this, requestProcessor, chargebeeApiServiceParams));
|
||||
requestProcessor.addRequest(new ChargebeeCancelSubscriptionRequest(subscriptionId, this, requestProcessor, chargebeeApiServiceParams));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSubscriptionResult(com.chargebee.models.Subscription subscription) {
|
||||
if (subscription != null) {
|
||||
Subscription sub = new ChargebeeApiSubscriptionData(subscription, /* invoice */null, /* transaction */ null)
|
||||
.toSubscription(chargebeeApiServiceParams.getSubscriptionPlanProvider());
|
||||
String status = subscription.status().name();
|
||||
if (status != null) {
|
||||
status = status.toLowerCase();
|
||||
}
|
||||
if (sub.getSubscriptionStatus().equals(ChargebeeSubscription.SUBSCRIPTION_STATUS_CANCELLED)
|
||||
|| sub.getSubscriptionStatus().equals(ChargebeeSubscription.SUBSCRIPTION_NON_RENEWING)) {
|
||||
onDone(new SubscriptionCancelResult(/* success */ true, sub));
|
||||
} else {
|
||||
requestProcessor.addRequest(new ChargebeeCancelSubscriptionRequest(subscriptionId, this,
|
||||
requestProcessor, chargebeeApiServiceParams));
|
||||
}
|
||||
} else {
|
||||
onDone(new SubscriptionCancelResult(/* success */false, /* subscription */null, /* deleted */true));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSubscriptionCancelResult(com.chargebee.models.Subscription subscription) {
|
||||
if (subscription != null) {
|
||||
Subscription sub = (new ChargebeeApiSubscriptionData(subscription, null, null))
|
||||
.toSubscription(chargebeeApiServiceParams.getSubscriptionPlanProvider());
|
||||
boolean success = sub.getSubscriptionStatus().equals(ChargebeeSubscription.SUBSCRIPTION_STATUS_CANCELLED)
|
||||
|| sub.getSubscriptionStatus().equals(ChargebeeSubscription.SUBSCRIPTION_NON_RENEWING);
|
||||
onDone(new SubscriptionCancelResult(success, sub, /* deleted */ false));
|
||||
public void onSubscriptionCancelResult(com.chargebee.models.Subscription subscriptionModel) {
|
||||
if (subscriptionModel != null) {
|
||||
ChargebeeApiSubscriptionData apiSubscriptionData = new ChargebeeApiSubscriptionData(subscriptionModel, null, null);
|
||||
Subscription subscription = apiSubscriptionData.toSubscription(chargebeeApiServiceParams.getSubscriptionPlanProvider());
|
||||
boolean success = subscription.getSubscriptionStatus().equals(ChargebeeSubscription.SUBSCRIPTION_STATUS_CANCELLED);
|
||||
onDone(new SubscriptionCancelResult(success, subscription, /* deleted */ false));
|
||||
} else {
|
||||
onDone(new SubscriptionCancelResult(/* success */false, /* subscription */null, /* deleted */true));
|
||||
}
|
||||
}
|
||||
|
||||
private void onDone(SubscriptionCancelResult result) {
|
||||
logger.info("Subscription cancelation is done with success = " + result.isSuccess() +
|
||||
", deleted = " + result.isDeleted() +
|
||||
", subscription = " + result.getSubscription());
|
||||
if (listener != null) {
|
||||
listener.onCancelResult(result);
|
||||
}
|
||||
|
||||
+3
@@ -74,6 +74,9 @@ public class ChargebeeNonRenewingSubscriptionTask
|
||||
}
|
||||
|
||||
private void onDone(SubscriptionNonRenewingResult result) {
|
||||
logger.info("Setting subscription to non renewing is done with success = " + result.isSuccess() +
|
||||
", deleted = " + result.isDeleted() +
|
||||
", subscription = " + result.getSubscription());
|
||||
if (listener != null) {
|
||||
listener.onNonRenewingResult(result);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user