protected override void ExcuteSelf() { try { _OverWork.DiyProcess = _OverWorkDiyProcessUtility.GetOverWorkDiyProcessByAccountID(_OverWork.Account.Id); using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { int _CurrentId = _OverWorkDal.InsertOverWork(_OverWork); _OverWork.PKID = _CurrentId; if (_OverWork.Item != null) { foreach (OverWorkItem item in _OverWork.Item) { item.AdjustHour = new UpdateAdjustRestByOverWork(item, _OverWork.Account.Id).GetItemAdjustHour(); int itemid = _OverWorkDal.InsertOverWorkItem(_CurrentId, item); if (item.Status == RequestStatus.Submit) { OverWorkFlow flow = new OverWorkFlow(0, _OverWork.Account, _OverWork.SubmitDate, _OverWork.Reason, item.Status, 1); _OverWorkDal.InsertOverWorkFlow(itemid, flow); } } } ts.Complete(); } } catch { HrmisUtility.ThrowException(HrmisUtility._DbError); } new OverWorkMailAndPhoneDelegate().SubmitOperation(_OverWork.PKID, _CCList); }
protected override void Validation() { if (_OldOverWork == null) { HrmisUtility.ThrowException(HrmisUtility._OverWorkItem_Not_Exit); } if (new GetEmployeeAdjustRule().GetAdjustRuleByAccountID(_OverWork.Account.Id) == null) { HrmisUtility.ThrowException(HrmisUtility._Employee_NotHave_AdjustRule); } _OverWork.DiyProcess = _OverWorkDiyProcessUtility.GetOverWorkDiyProcessByAccountID(_OverWork.Account.Id); if (_OverWork.DiyProcess == null) { HrmisUtility.ThrowException(HrmisUtility._No_OverWork_DiyProcess); } foreach (OverWorkItem item in _OverWork.Item) { if (item.CostTime == 0) { HrmisUtility.ThrowException(HrmisUtility._OverWorkItem_CanNot_Zero); } } new ValidateRequestItemRepeat(_OverWork, false).Excute(); }