public IHttpActionResult QuickAddNewEntry(AddEmployeeYearlyFigureViewModel model, int?businessYear)
        {
            var employeedetails = db.Employees.Where(m => m.Id == model.EmployeeId).FirstOrDefault();

            model.EmployeeDepartment = employeedetails.Department;
            model.EmployeeJoinDate   = employeedetails.DateJoined;
            model.CurrentSalary      = employeedetails.CurrentSalary;
            model.EmployeeName       = employeedetails.Name;
            if ((businessYear - employeedetails.DateJoined.Value.Year) >= 1)
            {
                model.EligibleForLoyaltyBonus = true;
            }
            if (model.EmployeeDepartment == EmployeeDepartments.HR)
            {
                model.EligibleForReferalBonus = true;
            }
            if (model.EmployeeDepartment == EmployeeDepartments.Sales)
            {
                model.EligibleForSalesCommisionBonus = true;
            }
            var findDuplicateYearDetails = db.YearlyExpenditure.Where(m => m.EmployeeId == model.EmployeeId && m.BusinessYear == model.BusinessYear).FirstOrDefault();

            if (findDuplicateYearDetails != null)
            {
                ModelState.AddModelError("EmployeeId", "Yearly figure already exists for the current user in the selected business year");
            }
            if (model.CurrentSalaryEndDate.Value.Year > model.BusinessYear)
            {
                model.CurrentSalaryEndDate = new System.DateTime(model.BusinessYear, 12, 31);
            }

            var currentSalary      = 0;
            var employeeSalaryRate = 0;

            if (System.DateTime.IsLeapYear(model.BusinessYear))
            {
                employeeSalaryRate = model.CurrentSalary / 366;
            }
            else
            {
                employeeSalaryRate = model.CurrentSalary / 365;
            }
            var amountOfDaysWorkedWithCurrentContract = model.CurrentSalaryEndDate.Value.Date - model.CurrentSalaryStartDate.Value.Date;

            currentSalary = (int)amountOfDaysWorkedWithCurrentContract.TotalDays * employeeSalaryRate;

            var loyaltyBonus         = 0;
            var salesCommissionBonus = 0;
            var holidayBonus         = 0;
            var missionBonus         = 0;
            var referenceBonus       = 0;
            var otherBonus           = 0;

            if (model.LoyaltyBonus.HasValue)
            {
                loyaltyBonus = model.LoyaltyBonus.Value;
            }
            if (model.HolidayBonus.HasValue)
            {
                holidayBonus = model.HolidayBonus.Value * 60;
            }
            if (model.SalesCommissionBonus.HasValue)
            {
                salesCommissionBonus = model.SalesCommissionBonus.Value * 50;
            }
            if (model.MissionBonus.HasValue)
            {
                missionBonus = model.MissionBonus.Value;
            }
            if (model.ReferalBonus.HasValue)
            {
                referenceBonus = model.ReferalBonus.Value * 100;
            }
            if (model.OtherBonus.HasValue)
            {
                otherBonus = model.OtherBonus.Value;
            }

            model.YearTotal = loyaltyBonus + holidayBonus + salesCommissionBonus + missionBonus + referenceBonus + otherBonus + currentSalary;
            var YearExpModel = new YearlyWageExpenditureModel();

            YearExpModel.BusinessYear         = model.BusinessYear;
            YearExpModel.EmployeeId           = model.EmployeeId.Value;
            YearExpModel.EmployeeName         = model.EmployeeName;
            YearExpModel.HolidayBonus         = holidayBonus;
            YearExpModel.LoyaltyBonus         = loyaltyBonus;
            YearExpModel.MissionBonus         = missionBonus;
            YearExpModel.OtherBonus           = otherBonus;
            YearExpModel.ReferalBonus         = referenceBonus;
            YearExpModel.SalesCommissionBonus = salesCommissionBonus;
            YearExpModel.YearTotal            = model.YearTotal.Value;
            db.YearlyExpenditure.Add(YearExpModel);
            db.SaveChanges();
            return(Ok("New Entry has been added"));
        }
Ejemplo n.º 2
0
        public ActionResult AddEmployeeToYearlyFigure(AddEmployeeYearlyFigureViewModel model)
        {
            GetEmployeeList();
            GetYearList();
            var findDuplicateYearDetails = db.YearlyExpenditure.Where(m => m.EmployeeId == model.EmployeeId && m.BusinessYear == model.BusinessYear).FirstOrDefault();

            if (findDuplicateYearDetails != null)
            {
                ModelState.AddModelError("EmployeeId", "Yearly figure already exists for the current user in the selected business year");
            }
            if (model.CurrentSalaryEndDate.Value.Year > model.BusinessYear)
            {
                model.CurrentSalaryEndDate = new System.DateTime(model.BusinessYear, 12, 31);
            }
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var currentSalary      = 0;
            var employeeSalaryRate = 0;

            if (System.DateTime.IsLeapYear(model.BusinessYear))
            {
                employeeSalaryRate = model.CurrentSalary / 366;
            }
            else
            {
                employeeSalaryRate = model.CurrentSalary / 365;
            }
            var amountOfDaysWorkedWithCurrentContract = model.CurrentSalaryEndDate.Value.Date - model.CurrentSalaryStartDate.Value.Date;

            currentSalary = (int)amountOfDaysWorkedWithCurrentContract.TotalDays * employeeSalaryRate;

            var loyaltyBonus         = 0;
            var salesCommissionBonus = 0;
            var holidayBonus         = 0;
            var missionBonus         = 0;
            var referenceBonus       = 0;
            var otherBonus           = 0;

            if (model.LoyaltyBonus.HasValue)
            {
                loyaltyBonus = model.LoyaltyBonus.Value;
            }
            if (model.HolidayBonus.HasValue)
            {
                holidayBonus = model.HolidayBonus.Value * 60;
            }
            if (model.SalesCommissionBonus.HasValue)
            {
                salesCommissionBonus = model.SalesCommissionBonus.Value * 50;
            }
            if (model.MissionBonus.HasValue)
            {
                missionBonus = model.MissionBonus.Value;
            }
            if (model.ReferalBonus.HasValue)
            {
                referenceBonus = model.ReferalBonus.Value * 100;
            }
            if (model.OtherBonus.HasValue)
            {
                otherBonus = model.OtherBonus.Value;
            }

            model.YearTotal = loyaltyBonus + holidayBonus + salesCommissionBonus + missionBonus + referenceBonus + otherBonus + currentSalary;
            var YearExpModel = new YearlyWageExpenditureModel();

            YearExpModel.BusinessYear         = model.BusinessYear;
            YearExpModel.EmployeeId           = model.EmployeeId.Value;
            YearExpModel.EmployeeName         = model.EmployeeName;
            YearExpModel.HolidayBonus         = holidayBonus;
            YearExpModel.LoyaltyBonus         = loyaltyBonus;
            YearExpModel.MissionBonus         = missionBonus;
            YearExpModel.OtherBonus           = otherBonus;
            YearExpModel.ReferalBonus         = referenceBonus;
            YearExpModel.SalesCommissionBonus = salesCommissionBonus;
            YearExpModel.YearTotal            = model.YearTotal.Value;
            db.YearlyExpenditure.Add(YearExpModel);
            db.SaveChanges();
            return(RedirectToAction("EntryAddedSuccessfully", new { name = model.EmployeeName, year = model.BusinessYear }));
        }