Exemple #1
0
        private static float GetDeposit(float purchasePrice, InstallmentRule rule)
        {
            if (rule.Deposit == Constants.Plan_Not_offered)
            {
                return(0);
            }

            float deposit = float.Parse(rule.Deposit, CultureInfo.InvariantCulture.NumberFormat);

            return((float)Math.Round(purchasePrice * deposit / 100, 2));
        }
Exemple #2
0
        private static float GetAmount(float purchasePrice, InstallmentRule rule)
        {
            if (rule.Count == Constants.Plan_Not_offered)
            {
                return(0);
            }

            float remainingAmount = purchasePrice - GetDeposit(purchasePrice, rule);
            int   count           = int.Parse(rule.Count, CultureInfo.InvariantCulture.NumberFormat);

            return((float)Math.Round(remainingAmount / count, 2));
        }
Exemple #3
0
        public static InstallmentInfo GetInstallment(float purchasePrice, DateTime purchaseDate)
        {
            List <InstallmentRule> rules = InstallmentRuleRepo.GetRules();

            InstallmentRule rule = rules.Where(r => purchasePrice >= r.MinPurchasePrice &&
                                               (r.MaxPurchasePrice != 0 ? purchasePrice <= r.MaxPurchasePrice : true)).FirstOrDefault();

            return(new InstallmentInfo()
            {
                Deposit = GetDeposit(purchasePrice, rule),
                Amount = GetAmount(purchasePrice, rule),
                Dates = GetPaidDates(purchaseDate, rule)
            });
        }
Exemple #4
0
        private static List <string> GetPaidDates(DateTime purchaseDate, InstallmentRule rule)
        {
            List <string> dates = new List <string>();
            double        interval;

            if (rule.Count == Constants.Plan_Not_offered)
            {
                return(dates);
            }

            int      count    = int.Parse(rule.Count, CultureInfo.InvariantCulture.NumberFormat);
            DateTime paidDate = purchaseDate;

            for (int counter = 0; counter < count; counter++)
            {
                interval = double.Parse(rule.Interval, CultureInfo.InvariantCulture.NumberFormat);
                paidDate = paidDate.AddDays(interval);
                dates.Add(TrimTimePart(paidDate));
            }

            return(dates);
        }