public async Task <IActionResult> WorkerPromotion(WorkerPromotionViewModel model)
        {
            if (model.Date < DateTime.Now)
            {
                ModelState.AddModelError("Date", "Keçmiş tarixlərə bonus əlavə etmək olmaz");
            }
            else
            {
                if (ModelState.IsValid)
                {
                    WorkerPromotion promotion = new WorkerPromotion()
                    {
                        Id       = model.Id,
                        WorkerId = model.WorkerId,
                        Reward   = model.Reward,
                        Date     = model.Date
                    };
                    await _dbContext.WorkerPromotions.AddAsync(promotion);

                    await _dbContext.SaveChangesAsync();

                    return(RedirectToAction("WorkerPromotionList"));
                }
            }
            return(View(model));
        }
        private IActionResult BonusOnly(int monthDay, int day, CurrentWorkPlace data, int attendence, WorkerPromotion bonus, decimal salaryForDay, decimal SalaryForRealDate)
        {
            decimal          absentDaysSalary = attendence * salaryForDay;
            decimal          awardForWorker   = bonus.Reward;
            decimal          TotalSalary      = SalaryForRealDate - absentDaysSalary + awardForWorker;
            PayrollViewModel payrollView      = new PayrollViewModel()
            {
                WorkerId          = data.WorkerId,
                Worker            = data.Worker,
                PositionId        = data.PositionId,
                Position          = data.Position,
                WorkerPromotionId = bonus.Id,
                Bonus             = bonus.Reward,
                CountofAbsentDays = attendence,
                TotalSalary       = TotalSalary
            };

            if (day == monthDay)
            {
                ConfigurePayrollViewModel(payrollView);
            }
            return(View(payrollView));
        }
        private IActionResult BonusAndVacation(int monthDay, int day, CurrentWorkPlace data, int attendence, WorkerPromotion bonus, Vacation holiday, decimal salaryForDay, decimal SalaryForRealDate)
        {
            decimal  absentDaysSalary = attendence * salaryForDay;
            decimal  awardForWorker   = bonus.Reward;
            TimeSpan tetilihesabla    = (holiday.VacationEnded - holiday.VacationStarted);
            int      tetilBonus       = tetilihesabla.Days / 2;
            decimal  tetilTotal       = (tetilBonus * salaryForDay);
            decimal  TotalSalary      = SalaryForRealDate - absentDaysSalary + tetilBonus + awardForWorker;

            PayrollViewModel payrollView = new PayrollViewModel()
            {
                WorkerId          = data.WorkerId,
                Worker            = data.Worker,
                PositionId        = data.PositionId,
                Position          = data.Position,
                VacationBonus     = tetilTotal,
                CountofAbsentDays = attendence,
                WorkerPromotionId = bonus.Id,
                Bonus             = bonus.Reward,
                TotalSalary       = TotalSalary
            };

            if (day == monthDay)
            {
                ConfigurePayrollViewModel(payrollView);
            }
            return(View(payrollView));
        }