Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
            }
        }
Exemple #3
0
 /// <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);
         }
     }
 }
Exemple #4
0
        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);
        }