示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
 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));
     }
 }