mirror of
https://github.com/bitwarden/server.git
synced 2024-11-21 12:05:42 +01:00
[PM-13451] Update subscription setup process to support MOE providers (#4937)
This commit is contained in:
parent
6272e84c92
commit
53ad9df003
@ -379,42 +379,23 @@ public class ProviderBillingService(
|
|||||||
|
|
||||||
var subscriptionItemOptionsList = new List<SubscriptionItemOptions>();
|
var subscriptionItemOptionsList = new List<SubscriptionItemOptions>();
|
||||||
|
|
||||||
var teamsProviderPlan =
|
foreach (var providerPlan in providerPlans)
|
||||||
providerPlans.SingleOrDefault(providerPlan => providerPlan.PlanType == PlanType.TeamsMonthly);
|
|
||||||
|
|
||||||
if (teamsProviderPlan == null || !teamsProviderPlan.IsConfigured())
|
|
||||||
{
|
{
|
||||||
logger.LogError("Cannot start subscription for provider ({ProviderID}) that has no configured Teams plan", provider.Id);
|
var plan = StaticStore.GetPlan(providerPlan.PlanType);
|
||||||
|
|
||||||
|
if (!providerPlan.IsConfigured())
|
||||||
|
{
|
||||||
|
logger.LogError("Cannot start subscription for provider ({ProviderID}) that has no configured {ProviderName} plan", provider.Id, plan.Name);
|
||||||
throw new BillingException();
|
throw new BillingException();
|
||||||
}
|
}
|
||||||
|
|
||||||
var teamsPlan = StaticStore.GetPlan(PlanType.TeamsMonthly);
|
|
||||||
|
|
||||||
subscriptionItemOptionsList.Add(new SubscriptionItemOptions
|
subscriptionItemOptionsList.Add(new SubscriptionItemOptions
|
||||||
{
|
{
|
||||||
Price = teamsPlan.PasswordManager.StripeProviderPortalSeatPlanId,
|
Price = plan.PasswordManager.StripeProviderPortalSeatPlanId,
|
||||||
Quantity = teamsProviderPlan.SeatMinimum
|
Quantity = providerPlan.SeatMinimum
|
||||||
});
|
});
|
||||||
|
|
||||||
var enterpriseProviderPlan =
|
|
||||||
providerPlans.SingleOrDefault(providerPlan => providerPlan.PlanType == PlanType.EnterpriseMonthly);
|
|
||||||
|
|
||||||
if (enterpriseProviderPlan == null || !enterpriseProviderPlan.IsConfigured())
|
|
||||||
{
|
|
||||||
logger.LogError("Cannot start subscription for provider ({ProviderID}) that has no configured Enterprise plan", provider.Id);
|
|
||||||
|
|
||||||
throw new BillingException();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var enterprisePlan = StaticStore.GetPlan(PlanType.EnterpriseMonthly);
|
|
||||||
|
|
||||||
subscriptionItemOptionsList.Add(new SubscriptionItemOptions
|
|
||||||
{
|
|
||||||
Price = enterprisePlan.PasswordManager.StripeProviderPortalSeatPlanId,
|
|
||||||
Quantity = enterpriseProviderPlan.SeatMinimum
|
|
||||||
});
|
|
||||||
|
|
||||||
var subscriptionCreateOptions = new SubscriptionCreateOptions
|
var subscriptionCreateOptions = new SubscriptionCreateOptions
|
||||||
{
|
{
|
||||||
AutomaticTax = new SubscriptionAutomaticTaxOptions
|
AutomaticTax = new SubscriptionAutomaticTaxOptions
|
||||||
|
@ -87,7 +87,9 @@ public record EnterprisePlan : Plan
|
|||||||
AdditionalStoragePricePerGb = 4;
|
AdditionalStoragePricePerGb = 4;
|
||||||
StripeStoragePlanId = "storage-gb-annually";
|
StripeStoragePlanId = "storage-gb-annually";
|
||||||
StripeSeatPlanId = "2023-enterprise-org-seat-annually";
|
StripeSeatPlanId = "2023-enterprise-org-seat-annually";
|
||||||
|
StripeProviderPortalSeatPlanId = "password-manager-provider-portal-enterprise-annually-2024";
|
||||||
SeatPrice = 72;
|
SeatPrice = 72;
|
||||||
|
ProviderPortalSeatPrice = 72;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user