1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-07 10:55:43 -05:00

[PM-13999] show estimated tax for taxable countries (#5110)

This commit is contained in:
Jonas Hendrickx
2025-01-02 20:27:53 +01:00
committed by GitHub
parent 1062c6d522
commit 97e11774e3
32 changed files with 1806 additions and 548 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

@ -12,6 +12,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>();