/// <summary> /// </summary> public static bool CancelOneItem(OutApplicationItem item, Account account, string remark, IOutApplication dalOutApplication, OutDiyProcessUtility outDiyProcessUtility, OutApplication outApplication) { item = dalOutApplication.GetOutApplicationItemByItemID(item.ItemID); bool valide = RequestStatus.CanCancelStatus(item.Status); if (valide) { using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { RequestStatus status = RequestStatus.Cancelled; if (outApplication.OutType.ID == OutType.InCity.ID || outApplication.OutType.ID == OutType.Train.ID) { status = RequestStatus.ApproveCancelPass; ConfirmMessage confirmmessage = new ConfirmMessage(); confirmmessage.FinishPhoneMessageOperation( new PhoneMessageType(PhoneMessageEnumType.OutApplication, item.ItemID)); valide = false; } dalOutApplication.UpdateOutApplicationItemStatusByItemID(item.ItemID, status); OutApplicationFlow OutApplicationFlow = new OutApplicationFlow(0, account, DateTime.Now, remark, RequestStatus.Cancelled, 1); dalOutApplication.InsertOutApplicationFlow(item.ItemID, OutApplicationFlow); ts.Complete(); } } return(valide); }
/// <summary> /// /// </summary> protected override void Validation() { _LeaveRequest = _DalLeaveRequest.GetLeaveRequestByPKID(_LeaveRequestID); //判断请假信息是否为空 if (_LeaveRequest == null) { HrmisUtility.ThrowException(HrmisUtility._LeaveRequest_Not_Exist); } //判断该账号是否有请假流程 _LeaveRequest.DiyProcess = _DalEmployeeDiyProcess.GetDiyProcessByProcessTypeAndAccountID(ProcessType.LeaveRequest, _LeaveRequest.Account.Id); if (_LeaveRequest.DiyProcess == null) { HrmisUtility.ThrowException(HrmisUtility._No_LeaveRequest_DiyProcess); } _LeaveRequestItem = _DalLeaveRequest.GetLeaveRequestItemByPKID(_LeaveRequestItemID); if (_LeaveRequestItem == null) { HrmisUtility.ThrowException(HrmisUtility._LeaveRequest_Not_Exist); } //如果请假信息状态不是取消或提交状态,不能取消 if (!RequestStatus.CanCancelStatus(_LeaveRequestItem.Status)) { HrmisUtility.ThrowException(HrmisUtility._LeaveRequest_Partial_CanNot_BeCancled); } }
/// <summary> /// /// </summary> protected override void Validation() { _PositionApplication = _PositionApplicationDal.GetPositionApplicationByPKID(_PositionApplicationID); //判断信息是否为空 if (_PositionApplication == null) { HrmisUtility.ThrowException(HrmisUtility._PositionApplication_Not_Exit); } else { //判断该账号是否有流程 _PositionApplication.DiyProcess = _DalEmployeeDiyProcess.GetDiyProcessByProcessTypeAndAccountID(ProcessType.PositionApp, _PositionApplication.Account.Id); if (_PositionApplication.DiyProcess == null) { HrmisUtility.ThrowException(HrmisUtility._No_PositionApplication_DiyProcess); } //如果信息状态不是取消或提交状态,不能取消 if (!RequestStatus.CanCancelStatus(_PositionApplication.Status)) { HrmisUtility.ThrowException(HrmisUtility._PositionApplication_CanNot_BeCancled); } } }
protected override void ExcuteSelf() { try { int cancelCount = 0; DiyStep currentStep = _LeaveRequest.DiyProcess.FindCancelStep(); DiyStep nextStep = _LeaveRequest.DiyProcess.FindCancelNextStep(); List <DiyStep> diysteplist = new List <DiyStep>(); List <List <Account> > mailAccountlist = new List <List <Account> >(); //如果请假信息状态不是取消或提交状态,不能取消 foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems) { using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { if (RequestStatus.CanCancelStatus(item.Status)) { _DalLeaveRequest.UpdateLeaveRequestItemStatusByLeaveRequestItemID(item.LeaveRequestItemID, _RequestStatus, nextStep.DiyStepID); _DalLeaveRequestFlow.InsertLeaveRequestFlow( PrepareLeaveRequestFlow(item.LeaveRequestItemID)); ts.Complete(); cancelCount++; } } new LeaveRequestMailAndPhoneDelegate().CancelOperation(_LeaveRequest.PKID, item, currentStep.MailAccount, nextStep); if (!DiyStep.Contains(diysteplist, nextStep)) { diysteplist.Add(nextStep); mailAccountlist.Add(currentStep.MailAccount); } } for (int i = 0; i < diysteplist.Count; i++) { new LeaveRequestMailAndPhoneDelegate().CancelMail(_LeaveRequest.PKID, mailAccountlist[i], diysteplist[i]); } if (cancelCount == _LeaveRequest.LeaveRequestItems.Count) { ResultMessage = string.Empty; } else if (cancelCount == 0) { ResultMessage = HrmisUtility._LeaveRequest_CanNot_BeCancled; } else if (cancelCount > 0) { ResultMessage = HrmisUtility._LeaveRequest_Partial_CanNot_BeCancled; } } catch { HrmisUtility.ThrowException(HrmisUtility._DbError); } }
/// <summary> /// </summary> public static bool CancelOneItem(OverWorkItem item, Account account, string remark, IOverWork dalOverWork, OverWorkDiyProcessUtility OverWorkDiyProcessUtility) { item = dalOverWork.GetOverWorkItemByItemID(item.ItemID); bool valide = RequestStatus.CanCancelStatus(item.Status); if (valide) { using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { dalOverWork.UpdateOverWorkItemStatusByItemID(item.ItemID, RequestStatus.Cancelled); OverWorkFlow OverWorkFlow = new OverWorkFlow(0, account, DateTime.Now, remark, RequestStatus.Cancelled, 1); dalOverWork.InsertOverWorkFlow(item.ItemID, OverWorkFlow); ts.Complete(); } } return(valide); }