1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-06 18:42:49 -05:00

[PM-13999] Show estimated tax for taxable countries (#5077)

This commit is contained in:
Jonas Hendrickx
2024-12-04 11:45:11 +01:00
committed by GitHub
parent 44b687922d
commit 94fdfa40e8
30 changed files with 1793 additions and 531 deletions

View File

@ -0,0 +1,33 @@
namespace Bit.Core.Billing.Extensions;
public static class CurrencyExtensions
{
/// <summary>
/// Converts a currency amount in major units to minor units.
/// </summary>
/// <example>123.99 USD returns 12399 in minor units.</example>
public static long ToMinor(this decimal amount)
{
return Convert.ToInt64(amount * 100);
}
/// <summary>
/// Converts a currency amount in minor units to major units.
/// </summary>
/// <param name="amount"></param>
/// <example>12399 in minor units returns 123.99 USD.</example>
public static decimal? ToMajor(this long? amount)
{
return amount?.ToMajor();
}
/// <summary>
/// Converts a currency amount in minor units to major units.
/// </summary>
/// <param name="amount"></param>
/// <example>12399 in minor units returns 123.99 USD.</example>
public static decimal ToMajor(this long amount)
{
return Convert.ToDecimal(amount) / 100;
}
}

View File

@ -11,6 +11,7 @@ public static class ServiceCollectionExtensions
{
public static void AddBillingOperations(this IServiceCollection services)
{
services.AddSingleton<ITaxService, TaxService>();
services.AddTransient<IOrganizationBillingService, OrganizationBillingService>();
services.AddTransient<IPremiumUserBillingService, PremiumUserBillingService>();
services.AddTransient<ISetupIntentCache, SetupIntentDistributedCache>();