Add a 'Pending invoice' pill in portal subscription when invoice processing

This commit is contained in:
Nicolas Dorier
2025-11-19 15:00:39 +09:00
parent 414c71ec09
commit 2f8be8c9f0
5 changed files with 22 additions and 1 deletions

View File

@@ -375,7 +375,6 @@ public class SubscriptionHostedService(
var checkout = await ctx.PlanCheckouts.GetCheckout(checkoutId);
var plan = checkout?.Plan;
if (checkout is null || plan is null ||
(invoice.Status == InvoiceStatus.Processing && !plan.OptimisticActivation) ||
checkout.Plan.Offering.App.StoreDataId != invoice.StoreId)
return;
@@ -384,6 +383,16 @@ public class SubscriptionHostedService(
throw new InvalidOperationException("Bug: Subscriber is null and not a new subscriber");
var sub = checkout.Subscriber;
var processingInvoiceId = invoice.Status == InvoiceStatus.Processing ? invoice.Id : null;
if (sub is not null &&
sub.ProcessingInvoiceId != processingInvoiceId)
{
sub.ProcessingInvoiceId = processingInvoiceId;
await ctx.SaveChangesAsync();
}
if (invoice.Status == InvoiceStatus.Processing && !plan.OptimisticActivation)
return;
if (invoice.Status is InvoiceStatus.Settled or InvoiceStatus.Processing)
{