/// <summary> /// Gets the editable salary details. /// </summary> /// <param name="user">The user.</param> /// <returns> /// Editable salary details /// </returns> public SalaryDetailViewModel GetEditableSalaryDetails(UserModel user) { List <SalaryDetailViewModel> userSalaryHistory = GetSalaryDetails(user); SalaryDetailViewModel salaryDetail = new SalaryDetailViewModel(); var role = user.CurentRole; if (userSalaryHistory.Count > 0) { salaryDetail = userSalaryHistory.OrderByDescending(x => x.Id).FirstOrDefault(); salaryDetail.StartDate = salaryDetail.StartDate.Equals(this.CurrentYearStartDate()) ? salaryDetail.StartDate : this.CurrentYearStartDate(); salaryDetail.EndDate = salaryDetail.EndDate.Equals(this.CurrentYearEndDate()) ? salaryDetail.EndDate : this.CurrentYearEndDate(); } else { salaryDetail.Id = 0; salaryDetail.Role = role?.Role.Name; salaryDetail.IncentivePercentage = user.CurentPlan.TargetIncentivePercentage; salaryDetail.Incentive = 0; salaryDetail.StartDate = role.StartDate.Year < DateTime.UtcNow.Year ? this.CurrentYearStartDate() : role.StartDate; salaryDetail.EndDate = (role.EndDate == null || role.EndDate < this.CurrentYearStartDate()) ? this.CurrentYearEndDate() : role.EndDate; salaryDetail.BaseSalary = 0; salaryDetail.UserId = user.Id; salaryDetail.RoleId = role.RoleId; salaryDetail.BusinessId = user.BusinessUnitId; salaryDetail.CountryId = user.CountryId; //salaryDetail.VisibilityDate = true; } return(salaryDetail); }
/// <summary> /// Gets the salary details. /// </summary> /// <param name="user">The user.</param> /// <returns></returns> public List <SalaryDetailViewModel> GetSalaryDetails(UserModel user) { List <SalaryDetailViewModel> salaryDetailsList = new List <SalaryDetailViewModel>(); var role = user.CurentRole; foreach (var salarydetail in user.SalaryDetails) { var salaryDetailViewModel = new SalaryDetailViewModel { Id = salarydetail.Id, Role = role?.Role.Name, IncentivePercentage = user.CurentPlan != null? user.CurentPlan.TargetIncentivePercentage:0, Incentive = salarydetail.Salary * (user.CurentPlan != null ? (user.CurentPlan.TargetIncentivePercentage / 100) : 0.0M), StartDate = salarydetail.StartDate, EndDate = salarydetail.EndDate == null?this.CurrentYearEndDate() : salarydetail.EndDate, BaseSalary = salarydetail.Salary, UserId = salarydetail.UserId, RoleId = role.RoleId, BusinessId = user.BusinessUnitId, CountryId = user.CountryId }; salaryDetailsList.Add(salaryDetailViewModel); } List <SalaryDetailViewModel> salaryDetails = new List <SalaryDetailViewModel>(); bool IsCurrentYear = false; bool IsPreviousYear = false; foreach (var salarydetail in salaryDetailsList.OrderByDescending(x => x.Id)) { if (salarydetail.StartDate.Year.Equals(DateTime.UtcNow.Year) && salaryDetails.Count() < 2) { IsCurrentYear = true; salaryDetails.Add(salarydetail); } if (salarydetail.StartDate.Year.Equals(DateTime.UtcNow.Year - 1) && salaryDetails.Count() < 2 && IsCurrentYear.Equals(false)) { IsPreviousYear = true; salaryDetails.Add(salarydetail); } if (salaryDetails.Count() == 2) { break; } } if (salaryDetails.Any() && salaryDetails.Count > 1) { if (salaryDetails.First().StartDate != null) { salaryDetails.Last().EndDate = Convert.ToDateTime(salaryDetails.First().StartDate).AddDays(-1); } } return(salaryDetails); }
public ActionResult _CreateList(SalaryDetailViewModel salaryVM, DateTime?FromDate, DateTime?ToDate) { if (FromDate == null || ToDate == null || salaryVM.Note == null) { return(Json(new { Message = "Vui lòng nhập thông tin có dấu (*)!" }, JsonRequestBehavior.AllowGet)); } else { var salary = (from e in _context.EmployeeModel join o in _context.Daily_ChicCut_OrderModel on e.EmployeeId equals o.StaffId into oList from oL in oList.DefaultIfEmpty() where oL.OrderStatusId == 3 select new { EmployeeName = e.FullName, Commission = oL.Commission, Tip = oL.Tip }).ToList(); return(PartialView(salary)); } }