/// <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); } } }
/// <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("剩余调休不足"); } }