コード例 #1
0
        public static void TestTaxCalculator(TaxParams obj)
        {
            decimal               taxAmount     = 0;
            TaxCalculator         taxCalculator = new TaxCalculator();
            ICountryTaxCalculator cT            = null;

            switch (obj.Country)
            {
            case "PS":
                cT = new TaxCalculatorForPS();
                break;

            case "JD":
                cT = new TaxCalculatorForJD();
                break;

            case "US":
                cT = new TaxCalculatorForUS();
                break;

            case "UK":
                cT = new TaxCalculatorForUK();
                break;
            }

            cT.TotalIncome    = obj.TotalIncome;
            cT.TotalDeduction = obj.TotalDeduction;
            taxAmount         = taxCalculator.Calculat(cT);
            Console.WriteLine($"Tax Amount: {taxAmount}");
        }
コード例 #2
0
        /// <summary>
        /// Предмет расчета
        /// </summary>
        /// <param name="name">Наименование</param>
        /// <param name="price">Цена единицы</param>
        /// <param name="quantity">Количество</param>
        /// <param name="tax">Налог</param>
        /// <param name="paymentMethodType">Способ расчета</param>
        /// <param name="paymentObjectType">Тип предмета расчета</param>
        public PositionDocumentParams(string name, decimal price, double quantity, TaxParams tax,
                                      PaymentMethodType paymentMethodType, PaymentObjectType paymentObjectType) : base(
                PrintDocumentType.Position)
        {
            if (name.IsNullOrEmptyOrWhiteSpace())
            {
                throw new ArgumentException(
                          string.Format(ErrorStrings.ResourceManager.GetString("StringFormatError"),
                                        this.GetType().GetProperty(nameof(Name)).GetDisplayName()),
                          nameof(name));
            }

            if (price < 0)
            {
                throw new ArgumentException(
                          string.Format(ErrorStrings.ResourceManager.GetString("DigitRangeValuesError"),
                                        this.GetType().GetProperty(nameof(Price)).GetDisplayName(), 0, decimal.MaxValue),
                          nameof(price));
            }

            if (quantity < 0.001)
            {
                throw new ArgumentException(
                          string.Format(ErrorStrings.ResourceManager.GetString("DigitRangeValuesError"),
                                        this.GetType().GetProperty(nameof(Price)).GetDisplayName(), 0.001, double.MaxValue),
                          nameof(price));
            }

            Name          = name;
            Price         = price;
            Quantity      = quantity;
            Tax           = tax ?? throw new ArgumentNullException(nameof(tax));
            PaymentMethod = paymentMethodType;
            PaymentObject = paymentObjectType;
        }
コード例 #3
0
        static void Main(string[] args)
        {
            TaxCalculatorForUS t1 = new TaxCalculatorForUS();
            TaxCalculatorForPS t2 = new TaxCalculatorForPS();
            TaxCalculatorForJD t3 = new TaxCalculatorForJD();

            TaxParams t = new TaxParams();

            t.TotalIncome    = 5000;
            t.TotalDeduction = 500;
            t.Country        = "US";
            TestTaxCalculator(t);

            //ShowDetail(t1);
            //ShowDetail(t2);
            //ShowDetail(t3);
        }