protected override void ExcuteSelf() { int currentID = _OutApplication.PKID; try { using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { if (_OldOutApplication.IfAutoCancel) { AutoCancelOutApplication(); } _OutApplicationDal.UpdateOutApplication(_OutApplication); _OutApplicationDal.DeleteOutApplicationItemByOutApplicationID(currentID); if (_OutApplication.Item != null) { foreach (OutApplicationItem item in _OutApplication.Item) { if (_OutApplication.OutType == OutType.OutCity) { item.Adjust = true; item.AdjustHour = new UpdateAdjustRestByOut(item, _OutApplication.Account.Id).GetItemAdjustHour(); } int itemid = _OutApplicationDal.InsertOutApplicationItem(currentID, item); if (item.Status == RequestStatus.Submit) { OutApplicationFlow flow = new OutApplicationFlow(0, _OutApplication.Account, _OutApplication.SubmitDate, _OutApplication.Reason, item.Status, 1); _OutApplicationDal.InsertOutApplicationFlow(itemid, flow); } } } ts.Complete(); } } catch { HrmisUtility.ThrowException(HrmisUtility._DbError); } new OutMailAndPhoneDelegate().SubmitOperation(_OutApplication.PKID, _CCList); }