Пример #1
0
        public DailyRecord PriceBuilder(DayRate dayRate, IEnumerable <Price> prices, bool hasFreeConsultant)
        {
            var dailyRecord = new DailyRecord();

            _logger.Info($"Processing DayRate: {dayRate.Id} on {dayRate.Date.ToShortDateString()}, " +
                         $"TotalCard: {dayRate.CardDailyTotal} TotalCash: {dayRate.CashDailyTotal}");

            _logger.Info($"Processing Card DayRate {dayRate.Date.ToShortDateString()} ");
            dailyRecord.Card = GetSalesRecord(dayRate.Id, dayRate.CardDailyTotal, dayRate.Date, dayRate.CardRates,
                                              prices, hasFreeConsultant);
            _logger.Info($"Processing Cash DayRate {dayRate.Date.ToShortDateString()} ");
            dailyRecord.Cash = GetSalesRecord(dayRate.Id, dayRate.CashDailyTotal, dayRate.Date, dayRate.CashRates,
                                              prices, hasFreeConsultant);


            return(dailyRecord);
        }
Пример #2
0
        // GET: /Ir35/
        public IActionResult Index()
        {
            DayRate dayRate = new DayRate();
            //dayRate.Amount = 300;

            Contractor contractorYearly = new Contractor();

            contractorYearly.GrossPay = 0;

            //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Contractor contractorMonthly = new Contractor();

            contractorMonthly.GrossPay = 0;

            //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Contractor contractorWeekly = new Contractor();

            contractorWeekly.GrossPay = 0;

            //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            ContractorGroup contractorGroup = new ContractorGroup();

            contractorGroup.DayRateAmount = dayRate;
            contractorGroup.Yearly        = contractorYearly;
            contractorGroup.Monthly       = contractorMonthly;
            contractorGroup.Weekly        = contractorWeekly;

            /*
             * {
             *  Yearly = contractorYearly,
             *  Monthly = contractorMonthly,
             *  Weekly = contractorWeekly
             * };
             */
            return(View(contractorGroup));
        }
Пример #3
0
        public IActionResult Index(ContractorGroup contractorGroup)
        {
            if (!ModelState.IsValid)
            {
                // 1st way
                //ModelState.AddModelError(string.Empty, "");

                // 2nd way
                //ModelState.AddModelError("error_summary", "Please correct the following problems:");
                //User the above with HtmlHelper.ValidationMessageCssClassName in the view

                // invalid - redisplay form with errors
                return(View(contractorGroup));
            }
            else
            {
                ModelState.Clear(); // required since writing back to same view

                DayRate    dayRate           = new DayRate();
                Contractor contractorYearly  = new Contractor();
                Contractor contractorMonthly = new Contractor();
                Contractor contractorWeekly  = new Contractor();


                ContractorGroup contractorGroup2 = new ContractorGroup();

                contractorGroup2.DayRateAmount = dayRate;
                contractorGroup2.Yearly        = contractorYearly;
                contractorGroup2.Monthly       = contractorMonthly;
                contractorGroup2.Weekly        = contractorWeekly;

                contractorGroup2.DayRateAmount.Amount = contractorGroup.DayRateAmount.Amount;

                //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                contractorGroup2.Yearly.GrossPay             = Math.Round(contractorGroup.DayRateAmount.Amount.Value * 5 * 52);
                contractorGroup2.Yearly.EmployersNi          = Math.Round(contractorGroup2.Yearly.GrossPay * (decimal)0.138);
                contractorGroup2.Yearly.EmployeesNiBandOne   = 0;
                contractorGroup2.Yearly.EmployeesNiBandTwo   = Math.Round((decimal)((50000 - 8632) * 0.12));
                contractorGroup2.Yearly.EmployeesNiBandThree = Math.Round((contractorGroup2.Yearly.GrossPay - 50000) * (decimal)0.02);
                contractorGroup2.Yearly.EmployeesNi          = contractorGroup2.Yearly.EmployeesNiBandOne +
                                                               contractorGroup2.Yearly.EmployeesNiBandTwo +
                                                               contractorGroup2.Yearly.EmployeesNiBandThree;
                contractorGroup2.Yearly.GeneralExpenses = Math.Round(contractorGroup2.Yearly.GrossPay * (decimal)0.05);
                contractorGroup2.Yearly.DeemedAmount    =
                    contractorGroup2.Yearly.GrossPay - contractorGroup2.Yearly.GeneralExpenses;
                contractorGroup2.Yearly.PayeBandOne   = 0;
                contractorGroup2.Yearly.PayeBandTwo   = Math.Round((decimal)((50000 - 12500) * 0.2));
                contractorGroup2.Yearly.PayeBandThree = Math.Round((contractorGroup2.Yearly.DeemedAmount - 50000) * (decimal)0.4);
                contractorGroup2.Yearly.Paye          = contractorGroup2.Yearly.PayeBandOne +
                                                        contractorGroup2.Yearly.PayeBandTwo +
                                                        contractorGroup2.Yearly.PayeBandThree;
                contractorGroup2.Yearly.TakeHomePay = contractorGroup2.Yearly.GrossPay -
                                                      contractorGroup2.Yearly.EmployersNi -
                                                      contractorGroup2.Yearly.EmployeesNi -
                                                      contractorGroup2.Yearly.Paye;
                contractorGroup2.Yearly.TakeHomePayPerc =
                    Math.Round((contractorGroup2.Yearly.TakeHomePay / contractorGroup2.Yearly.GrossPay) * 100);
                contractorGroup2.Yearly.TotalTaxPaid = contractorGroup2.Yearly.EmployersNi +
                                                       contractorGroup2.Yearly.EmployeesNi +
                                                       contractorGroup2.Yearly.Paye;
                contractorGroup2.Yearly.TotalTaxPaidPerc = 100 - contractorGroup2.Yearly.TakeHomePayPerc;

                //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                contractorGroup2.Monthly.GrossPay             = Math.Round((contractorGroup.DayRateAmount.Amount.Value * 5 * 52) / 12);
                contractorGroup2.Monthly.EmployersNi          = Math.Round(contractorGroup2.Monthly.GrossPay * (decimal)0.138);
                contractorGroup2.Monthly.EmployeesNiBandOne   = 0;
                contractorGroup2.Monthly.EmployeesNiBandTwo   = Math.Round(contractorGroup2.Yearly.EmployeesNiBandTwo / 12);
                contractorGroup2.Monthly.EmployeesNiBandThree = Math.Round(contractorGroup2.Yearly.EmployeesNiBandThree / 12);
                contractorGroup2.Monthly.EmployeesNi          = contractorGroup2.Monthly.EmployeesNiBandOne +
                                                                contractorGroup2.Monthly.EmployeesNiBandTwo +
                                                                contractorGroup2.Monthly.EmployeesNiBandThree;
                contractorGroup2.Monthly.GeneralExpenses = Math.Round(contractorGroup2.Monthly.GrossPay * (decimal)0.05);
                contractorGroup2.Monthly.DeemedAmount    =
                    contractorGroup2.Monthly.GrossPay - contractorGroup2.Monthly.GeneralExpenses;
                contractorGroup2.Monthly.PayeBandOne   = 0;
                contractorGroup2.Monthly.PayeBandTwo   = Math.Round(contractorGroup2.Yearly.PayeBandTwo / 12);
                contractorGroup2.Monthly.PayeBandThree = Math.Round(contractorGroup2.Yearly.PayeBandThree / 12);
                contractorGroup2.Monthly.Paye          = contractorGroup2.Monthly.PayeBandOne +
                                                         contractorGroup2.Monthly.PayeBandTwo +
                                                         contractorGroup2.Monthly.PayeBandThree;
                contractorGroup2.Monthly.TakeHomePay = contractorGroup2.Monthly.GrossPay -
                                                       contractorGroup2.Monthly.EmployersNi -
                                                       contractorGroup2.Monthly.EmployeesNi -
                                                       contractorGroup2.Monthly.Paye;
                contractorGroup2.Monthly.TakeHomePayPerc =
                    Math.Round((contractorGroup2.Monthly.TakeHomePay / contractorGroup2.Monthly.GrossPay) * 100);
                contractorGroup2.Monthly.TotalTaxPaid = contractorGroup2.Monthly.EmployersNi +
                                                        contractorGroup2.Monthly.EmployeesNi +
                                                        contractorGroup2.Monthly.Paye;
                contractorGroup2.Monthly.TotalTaxPaidPerc = 100 - contractorGroup2.Monthly.TakeHomePayPerc;

                //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                contractorGroup2.Weekly.GrossPay             = Math.Round((contractorGroup.DayRateAmount.Amount.Value * 5 * 52) / 52);
                contractorGroup2.Weekly.EmployersNi          = Math.Round(contractorGroup2.Weekly.GrossPay * (decimal)0.138);
                contractorGroup2.Weekly.EmployeesNiBandOne   = 0;
                contractorGroup2.Weekly.EmployeesNiBandTwo   = Math.Round(contractorGroup2.Yearly.EmployeesNiBandTwo / 52);
                contractorGroup2.Weekly.EmployeesNiBandThree = Math.Round(contractorGroup2.Yearly.EmployeesNiBandThree / 52);
                contractorGroup2.Weekly.EmployeesNi          = contractorGroup2.Weekly.EmployeesNiBandOne +
                                                               contractorGroup2.Weekly.EmployeesNiBandTwo +
                                                               contractorGroup2.Weekly.EmployeesNiBandThree;
                contractorGroup2.Weekly.GeneralExpenses = Math.Round(contractorGroup2.Weekly.GrossPay * (decimal)0.05);
                contractorGroup2.Weekly.DeemedAmount    =
                    contractorGroup2.Weekly.GrossPay - contractorGroup2.Weekly.GeneralExpenses;
                contractorGroup2.Weekly.PayeBandOne   = 0;
                contractorGroup2.Weekly.PayeBandTwo   = Math.Round(contractorGroup2.Yearly.PayeBandTwo / 52);
                contractorGroup2.Weekly.PayeBandThree = Math.Round(contractorGroup2.Yearly.PayeBandThree / 52);
                contractorGroup2.Weekly.Paye          = contractorGroup2.Weekly.PayeBandOne +
                                                        contractorGroup2.Weekly.PayeBandTwo +
                                                        contractorGroup2.Weekly.PayeBandThree;
                contractorGroup2.Weekly.TakeHomePay = contractorGroup2.Weekly.GrossPay -
                                                      contractorGroup2.Weekly.EmployersNi -
                                                      contractorGroup2.Weekly.EmployeesNi -
                                                      contractorGroup2.Weekly.Paye;
                contractorGroup2.Weekly.TakeHomePayPerc =
                    Math.Round((contractorGroup2.Weekly.TakeHomePay / contractorGroup2.Weekly.GrossPay) * 100);
                contractorGroup2.Weekly.TotalTaxPaid = contractorGroup2.Weekly.EmployersNi +
                                                       contractorGroup2.Weekly.EmployeesNi +
                                                       contractorGroup2.Weekly.Paye;
                contractorGroup2.Weekly.TotalTaxPaidPerc = 100 - contractorGroup2.Weekly.TakeHomePayPerc;

                return(View(contractorGroup2));
            }
        }