コード例 #1
0
        public override Result CalculateTotalDiscount(decimal orderAmount, BaseDiscount discount, Result result)
        {
            var couponValue = 10m; // can be retrieved from a CRM, database etc for a specific discount name or customer

            result.FinalAmount         = orderAmount - couponValue;
            result.TextResultAnalysis += $"{discount.name} : -{couponValue}\u20AC";

            return(result);
        }
コード例 #2
0
ファイル: Promotion.cs プロジェクト: gtop85/erpDiscount
        public override Result CalculateTotalDiscount(decimal orderAmount, BaseDiscount discount, Result result)
        {
            var promotionAmount = 0.1m; // can be retrieved from a CRM, database etc for a specific discount name or customer
            var promotionValue  = orderAmount * promotionAmount;

            promotionValue = decimal.Round(promotionValue, 2, MidpointRounding.AwayFromZero);

            result.FinalAmount         = orderAmount - promotionValue;
            result.TextResultAnalysis += $"{discount.name}: -{promotionValue}\u20AC ({(int)(promotionAmount * 100)}%) \n\n";

            return(result);
        }
コード例 #3
0
        public override Result CalculateTotalDiscount(decimal orderAmount, BaseDiscount discount, Result result)
        {
            if (orderAmount <= 0)
            {
                throw new Exception("Invalid amount");
            }

            _discounts = _discounts.OrderBy(x => x.priority).ToList();

            foreach (var disc in _discounts)
            {
                result             = disc.CalculateTotalDiscount(orderAmount, disc, result);
                result.FinalAmount = decimal.Round(result.FinalAmount, 2, MidpointRounding.AwayFromZero);
                orderAmount        = result.FinalAmount;
            }
            return(result);
        }
コード例 #4
0
 public void Remove(BaseDiscount discount)
 {
     _discounts.Remove(discount);
 }
コード例 #5
0
 public void Add(BaseDiscount discount)
 {
     _discounts.Add(discount);
 }