Exemplo n.º 1
0
 /// <summary>
 /// 扣除,如果不够,则报错
 /// </summary>
 private void DeleteVacationHour(Vacation vacation, decimal deletehour, LeaveRequestItem item)
 {
     if (vacation != null)
     {
         vacation.UsedDayNum    += (deletehour / 8);
         vacation.SurplusDayNum -= (deletehour / 8);
         if (vacation.SurplusDayNum < 0)
         {
             HrmisUtility.ThrowException("剩余年假不足");
         }
         else if (_IsUpdateVacation)
         {
             _VacationDal.Update(vacation);
             item.UseList = string.Format("{0},{1}/{2}", vacation.VacationID, deletehour, item.UseList);
             _LeaveRequestDal.UpdateLeaveRequestItemUseDetail(item);
         }
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 更新调休
        /// </summary>
        private void UpdateAdjustRestDB(IEnumerable <AdjustRest> UpdateadjustRestList, bool isupdate)
        {
            _LeaveRequestItem.UseList = "";
            //初始化要扣除的调休
            List <AdjustRest> adjustRestList = new List <AdjustRest>();

            foreach (AdjustRest rest in UpdateadjustRestList)
            {
                AdjustRest adjustRest = _IAdjustRest.GetAdjustRestByAccountIDAndYear(_AccountID, rest.AdjustYear);
                adjustRestList.Add(adjustRest);
            }
            if (adjustRestList.Count > 0)
            {
                foreach (AdjustRest rest in _AdjustRestDay)
                {
                    AdjustRest adjustFirst  = ContainByYear(rest.AdjustYear, adjustRestList);
                    AdjustRest adjustSecond = Contain(rest.AdjustYear, adjustRestList);
                    //同年说明只扣一条记录
                    if (adjustFirst.AdjustYear.Year == adjustSecond.AdjustYear.Year)
                    {
                        adjustFirst.SurplusHours -= rest.SurplusHours;
                        adjustFirst.ChangeHours  += rest.SurplusHours;
                    }
                    else
                    {
                        //不同年则扣第二年的记录,如果扣不了,则还是扣第一年的记录
                        decimal chagehour = adjustSecond.SurplusHours - rest.SurplusHours;
                        if (chagehour < 0)
                        {
                            if (adjustSecond.SurplusHours > 0)
                            {
                                adjustFirst.SurplusHours += chagehour;
                                adjustFirst.ChangeHours  += (-chagehour);
                                adjustSecond.ChangeHours += adjustSecond.SurplusHours;
                                adjustSecond.SurplusHours = 0;
                            }
                            else
                            {
                                adjustFirst.SurplusHours -= rest.SurplusHours;
                                adjustFirst.ChangeHours  += rest.SurplusHours;
                            }
                        }
                        else
                        {
                            adjustSecond.ChangeHours += rest.SurplusHours;
                            adjustSecond.SurplusHours = chagehour;
                        }
                    }
                }
                foreach (AdjustRest rest in adjustRestList)
                {
                    if (rest.SurplusHours < 0)
                    {
                        HrmisUtility.ThrowException("剩余调休不足");
                    }
                    if (isupdate)
                    {
                        _IAdjustRest.UpdateAdjustRest(rest);
                        _LeaveRequestItem.UseList =
                            string.Format("{0},{1}/{2}", rest.AdjustRestID, rest.ChangeHours,
                                          _LeaveRequestItem.UseList);
                    }
                }
                if (isupdate)
                {
                    //记录下使用情况
                    _LeaveRequestDal.UpdateLeaveRequestItemUseDetail(_LeaveRequestItem);
                }
            }
            else
            {
                HrmisUtility.ThrowException("剩余调休不足");
            }
        }