+ <% if (CurrentQuota.NonProfit)
+ { %>
+
<%= UserControlsCommonResource.TariffNonProfit %>
+ <% } else { %>
+ <% if (IsStartup)
+ { %>
+
<%= UserControlsCommonResource.SaasTariffMainHeaderStartup %>
+ <% } %>
+ <% if (IsBusiness && IsTrial)
+ { %>
+
<%: IsExpired ? UserControlsCommonResource.SaasTariffMainHeaderTrialExpired : UserControlsCommonResource.SaasTariffMainHeaderTrial %>
+ <% if (!IsExpired)
+ { %>
+
<%= UserControlsCommonResource.SaasTariffInfoFreeDaysLeft %> <%= CurrentTariff.DueDate.Date.Subtract(DateTime.Today).Days %>
+ <% } %>
+ <% } %>
+ <% if (IsBusiness && !IsTrial)
+ { %>
+
<%: IsExpired ? UserControlsCommonResource.SaasTariffMainHeaderBusinessExpired : UserControlsCommonResource.SaasTariffMainHeaderBusiness %>
+ <% } %>
+ <% } %>
+
+ -
+ <%= UserControlsCommonResource.SaasTariffInfoUsersCount %>:
+ <%= string.Format(IsPeopleModuleAvailable ? "{0}{1}" : "{0}{1}",
+ CurrentUsersCount,
+ CurrentQuota.NonProfit ? string.Empty : "/" + CurrentQuota.ActiveUsers,
+ CommonLinkUtility.GetEmployees()) %>
+ <% if (!CurrentQuota.NonProfit)
+ { %>
+
+ <% } %>
+
+ -
+ <%= UserControlsCommonResource.SaasTariffInfoStorageSpace %>:
+ <%= string.Format(UserControlsCommonResource.SaasTariffInfoStorageSpaceValue,
+ string.Format(IsAdmin ? "{0}/{1}" : "{0}/{1}",
+ FileSizeComment.FilesSizeToString(CurrentUsedSize),
+ FileSizeComment.FilesSizeToString(CurrentQuota.MaxTotalSize),
+ CommonLinkUtility.GetAdministration(ManagementType.Statistic)),
+ StorageSpacePercent) %>
+
+
+ <% if (IsBusiness && !IsTrial &&!CurrentQuota.NonProfit && !IsExpired)
+ { %>
+ - <%= string.Format(UserControlsCommonResource.SaasTariffInfoExpiresOnDate, "" + CurrentTariff.DueDate.Date.ToLongDateString() + "") %>
+ <% } %>
+
+ <% if (IsTrial && IsExpired)
+ { %>
+
+
+
+
+
+
+
+
+ - <%= UserControlsCommonResource.SaasTariffStartupFeature1 %>
+ - <%= UserControlsCommonResource.SaasTariffStartupFeature2 %>
+ - <%= UserControlsCommonResource.SaasTariffStartupFeature3 %>
+ - <%= UserControlsCommonResource.SaasTariffStartupFeature4 %>
+ - <%= UserControlsCommonResource.SaasTariffStartupFeature5 %>
+
+ <% if (StartupEnabled)
+ { %>
+
<%= Resource.ContinueButton %>
+ <% }
+ else
+ { %>
+
<%= UserControlsCommonResource.SaasTariffContactSales %>
+ <% } %>
+
+
+
+
+
+
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature1 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature2 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature3 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature4 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature5 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature6 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature7 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature8 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature9 %>
+
+
<%= Resource.TariffButtonBuy %>
+
+
+
+
+ <%= UserControlsCommonResource.SaasTariffBackButton %>
+
+ <% } %>
+
+ <% if (Regions.Count > 1)
+ { %>
+
+
+ <%= CurrentRegion.ISOCurrencySymbol + " - " + CurrentRegion.CurrencyNativeName %>
+
+
+
+
+
+
+
+ <% } %>
+
+
+
+ <% if (IsStartup)
+ { %>
+
+ <% } %>
+ <% if (IsBusiness && IsTrial)
+ { %>
+
+ <% } %>
+ <% if (IsBusiness && !IsTrial)
+ { %>
+
+ <% } %>
+
+
+
+
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature1 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature2 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature3 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature4 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature5 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature6 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature7 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature8 %>
+ - <%= UserControlsCommonResource.SaasTariffBusinessFeature9 %>
+
+
+
+
+
+ <%= UserControlsCommonResource.SaasTariffOneMonth %>
+
+
+
<%= UserControlsCommonResource.SaasTariffOneYear %>
+
<%= string.Format(UserControlsCommonResource.SaasTariffSale, (int)(100 - (100 * YearQuota.Price / 12) / MonthQuota.Price)) %>
+
+
+
<%= UserControlsCommonResource.SaasTariffThreeYears %>
+
<%= string.Format(UserControlsCommonResource.SaasTariffSale, (int)(100 - (100 * ThreeYearsQuota.Price / 36) / MonthQuota.Price)) %>
+
+
+
+
+
+
+ -
+ <%= UserControlsCommonResource.SaasTariffSelectedTariffPrice %>:
+ <%= string.Format(UserControlsCommonResource.SaasTariffSelectedTariffPriceValue, "") %>
+
+ -
+ <%= UserControlsCommonResource.SaasTariffInfoUsersCount %>:
+
+
+ -
+ <%= UserControlsCommonResource.SaasTariffSelectedTariffLength %>:
+
+
+
+
+
+
<%= UserControlsCommonResource.SaasTariffTotalPrice %>:
+
+
+
+
+
+
+
+ <% if (IsExpired)
+ { %>
+ <%= string.Format(UserControlsCommonResource.SaasTariffErrorExpired, "" + CurrentUsersCount + "", string.Format("", SalesEmail), "") %>
+ <% }
+ else
+ { %>
+ <%= string.Format(UserControlsCommonResource.SaasTariffError,
+ "" + CurrentUsersCount + "",
+ IsPeopleModuleAvailable ? string.Format("", CommonLinkUtility.GetEmployees()) : "",
+ IsPeopleModuleAvailable ? "" : "") %>
+ <% } %>
+
+
+ <%= string.Format(UserControlsCommonResource.SaasTariffErrorMinMax, MinUsersCount, MaxUsersCount) %>
+
+
+
<%= IsBusiness && !IsTrial && !IsExpired ? UserControlsCommonResource.SaasTariffChangePlanBtn : Resource.TariffButtonBuy %>
+
+
+
+
+
+
+
+
+
diff --git a/web/studio/ASC.Web.Studio/UserControls/Management/TariffSettings/TariffSaas.ascx.cs b/web/studio/ASC.Web.Studio/UserControls/Management/TariffSettings/TariffSaas.ascx.cs
new file mode 100644
index 000000000..90101b044
--- /dev/null
+++ b/web/studio/ASC.Web.Studio/UserControls/Management/TariffSettings/TariffSaas.ascx.cs
@@ -0,0 +1,595 @@
+/*
+ *
+ * (c) Copyright Ascensio System Limited 2010-2021
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+*/
+
+
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Threading;
+using System.Web;
+using System.Web.UI;
+
+using AjaxPro;
+
+using ASC.Common.Logging;
+using ASC.Core;
+using ASC.Core.Billing;
+using ASC.Core.Common.Contracts;
+using ASC.Core.Tenants;
+using ASC.Core.Users;
+using ASC.FederatedLogin;
+using ASC.Geolocation;
+using ASC.Web.Core;
+using ASC.Web.Core.WhiteLabel;
+using ASC.Web.Studio.Core;
+using ASC.Web.Studio.PublicResources;
+using ASC.Web.Studio.UserControls.Management.SingleSignOnSettings;
+using ASC.Web.Studio.UserControls.Statistics;
+using ASC.Web.Studio.Utility;
+
+using PhoneNumbers;
+
+namespace ASC.Web.Studio.UserControls.Management
+{
+ [AjaxNamespace("TariffSaasController")]
+ public partial class TariffSaas : UserControl
+ {
+ public static string Location
+ {
+ get { return "~/UserControls/Management/TariffSettings/TariffSaas.ascx"; }
+ }
+
+ protected readonly int MinUsersCount = TariffService.ACTIVE_USERS_MIN;
+ protected readonly int MaxUsersCount = TariffService.ACTIVE_USERS_MAX;
+ protected readonly string SalesEmail = AdditionalWhiteLabelSettings.Instance.SalesEmail;
+ protected readonly RegionInfo RegionDefault = new RegionInfo("US");
+
+ protected readonly int CurrentUsersCount = TenantStatisticsProvider.GetUsersCount();
+ protected readonly long CurrentUsedSize = TenantStatisticsProvider.GetUsedSize();
+ protected readonly Tariff CurrentTariff = TenantExtra.GetCurrentTariff();
+ protected readonly TenantQuota CurrentQuota = TenantExtra.GetTenantQuota();
+ protected readonly Guid CurrentOwnerId = CoreContext.TenantManager.GetCurrentTenant().OwnerId;
+
+ protected TenantQuota StartupQuota;
+ protected TenantQuota MonthQuota;
+ protected TenantQuota YearQuota;
+ protected TenantQuota ThreeYearsQuota;
+
+ protected bool IsStartup;
+ protected bool IsTrial;
+ protected bool IsBusiness;
+ protected bool IsExpired;
+
+ protected bool InRuble;
+
+ protected bool StartupEnabled;
+
+ protected RegionInfo CurrentRegion;
+ protected List