in src/Modules/SimplCommerce.Module.Catalog/Services/ProductPricingService.cs [27:53]
public CalculatedProductPrice CalculateProductPrice(decimal price, decimal? oldPrice, decimal? specialPrice, DateTimeOffset? specialPriceStart, DateTimeOffset? specialPriceEnd)
{
var percentOfSaving = 0;
var calculatedPrice = price;
if (specialPrice.HasValue && specialPriceStart < DateTimeOffset.Now && DateTimeOffset.Now < specialPriceEnd)
{
calculatedPrice = specialPrice.Value;
if (!oldPrice.HasValue || oldPrice < price)
{
oldPrice = price;
}
}
if (oldPrice.HasValue && oldPrice.Value > 0 && oldPrice > calculatedPrice)
{
percentOfSaving = (int)(100 - Math.Ceiling((calculatedPrice / oldPrice.Value) * 100));
}
return new CalculatedProductPrice(_currencyService)
{
Price = calculatedPrice,
OldPrice = oldPrice,
PercentOfSaving = percentOfSaving
};
}