Beispiel #1
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);
            }
        }
Beispiel #2
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);
         }
     }
 }
Beispiel #3
0
        protected override void ExcuteSelf()
        {
            try
            {
                DiyStep currentStep = _TraineeApplication.TraineeApplicationDiyProcess.FindStep
                                          (_TraineeApplication.NextStep.DiyStepID);
                //TraineeApplicationStatus traineeApplicationStatus = _TraineeApplication.TraineeApplicationStatuss;
                DiyStep nextStep = _TraineeApplication.TraineeApplicationDiyProcess.FindNextStep
                                       (_TraineeApplication.NextStep.DiyStepID);
                if (nextStep == null)
                {
                    nextStep = new DiyStep(0, "结束", OperatorType.Others, 0);
                }
                if (_Status.Id == TraineeApplicationStatus.ApproveFail.Id)
                {
                    nextStep = new DiyStep(0, "结束", OperatorType.Others, 0);
                }

                _TraineeApplication.NextStep    = nextStep;
                _TraineeApplication.CurrentStep = currentStep;
                if (nextStep.DiyStepID != 0)
                {
                    _TraineeApplication.TraineeApplicationStatuss = TraineeApplicationStatus.Approving;
                }
                else
                {
                    _TraineeApplication.TraineeApplicationStatuss = _Status;
                }
                //_TraineeApplication.TraineeApplicationFlowList =
                //    new List<TraineeApplicationFlow>();
                //_TraineeApplication.TraineeApplicationFlowList.Add(
                //    new TraineeApplicationFlow(_LoginUser, DateTime.Now,
                //                               _TraineeApplication.TraineeApplicationStatuss));
                TraineeApplicationFlow flow =
                    new TraineeApplicationFlow(_LoginUser, DateTime.Now,
                                               _TraineeApplication.TraineeApplicationStatuss);
                flow.Remark = _Remark;
                _TraineeApplication.TraineeApplicationFlowList = new List <TraineeApplicationFlow>();
                _TraineeApplication.TraineeApplicationFlowList.Add(flow);
                _DalTraineeApplication.ApproveTraineeApplication(_LoginUser, _TraineeApplication,
                                                                 _TraineeApplication.TraineeApplicationStatuss);
                DiyProcess hrDiyProcess = _DalEmployeeDiyProcess.
                                          GetDiyProcessByProcessTypeAndAccountID(ProcessType.HRPrincipal,
                                                                                 _TraineeApplication.Applicant.Id);

                List <Account> accountList = new List <Account>();
                if (hrDiyProcess != null && hrDiyProcess.DiySteps != null && hrDiyProcess.DiySteps.Count > 0)
                {
                    accountList = hrDiyProcess.DiySteps[0].MailAccount;
                }
                new TraineeApplicationMailAndPhoneDelegate().ConfirmOperation(_TraineeApplication,
                                                                              accountList, _LoginUser.Id);
            }
            catch
            {
                BllUtility.ThrowException(BllExceptionConst._DbError);
            }
        }
 protected override void Validation()
 {
     _PositionApplication.DiyProcess =
         _DalEmployeeDiyProcess.GetDiyProcessByProcessTypeAndAccountID(ProcessType.PositionApp,
                                                                       _PositionApplication.Account.Id);
     if (_PositionApplication.DiyProcess == null)
     {
         HrmisUtility.ThrowException(HrmisUtility._No_PositionApplication_DiyProcess);
     }
 }
Beispiel #5
0
 protected override void Validation()
 {
     //判断该账号是否有培训申请流程
     _TraineeApplication.TraineeApplicationDiyProcess =
         _DalEmployeeDiyProcess.GetDiyProcessByProcessTypeAndAccountID
             (ProcessType.TraineeApplication, _TraineeApplication.Applicant.Id);
     if (_TraineeApplication.TraineeApplicationDiyProcess == null)
     {
         throw new ApplicationException("该账号没有培训申请流程!");
     }
 }
        /// <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);
            }

            //如果请假信息状态不是提交或取消请假状态,不能审批
            foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems)
            {
                if (item.LeaveRequestItemID == _LeaveRequestItemID)
                {
                    _LeaveRequestItem = item;
                    if (!RequestStatus.CanApproveStatus(item.Status))
                    {
                        HrmisUtility.ThrowException(HrmisUtility._LeaveRequest_Partial_CanNot_BeApproved);
                    }
                    item.CurrentStep.OperatorID =
                        new GetLeaveRequest().ChangeOperatorToEmployee(_LeaveRequest, item.CurrentStep);

                    if (item.CurrentStep.OperatorID != _OperatorID)
                    {
                        HrmisUtility.ThrowException(HrmisUtility._No_Auth_To_Approve);
                    }
                }
            }
        }
Beispiel #7
0
        /// <summary>
        /// 有效性判断
        /// </summary>
        protected override void Validation()
        {
            if (_OldLeaveRequest == null)
            {
                HrmisUtility.ThrowException(HrmisUtility._LeaveRequest_Not_Exist);
            }
            //判断时间是否重叠
            new ValidateRequestItemRepeat(_DalOverWork, _DalLeaveRequest, _DalOutApplication, _LeaveRequest, false).
            Excute();

            //判断该账号是否有请假流程
            _LeaveRequest.DiyProcess =
                _DalEmployeeDiyProcess.GetDiyProcessByProcessTypeAndAccountID(ProcessType.LeaveRequest,
                                                                              _LeaveRequest.Account.Id);
            if (_LeaveRequest.DiyProcess == null)
            {
                HrmisUtility.ThrowException(HrmisUtility._No_LeaveRequest_DiyProcess);
            }

            //判断如果请的是年假,请假时间是否超过他的剩余年假天数
            if (_LeaveRequest.LeaveRequestType.LeaveRequestTypeID == (int)LeaveRequestTypeEnum.AnnualLeave)
            {
                if (!new GetLeaveRequest(_IVacationDal, _DalLeaveRequestType, _DalPlanDutyDal).
                    AdjudgeVacationDaysAvailable(_LeaveRequest))
                {
                    HrmisUtility.ThrowException(HrmisUtility._Over_Vacation);
                }
            }

            //判断如果请的是调休,请假时间是否超过他的剩余调休
            if (_LeaveRequest.LeaveRequestType.LeaveRequestTypeID == (int)LeaveRequestTypeEnum.AdjustRest)
            {
                if (!new GetAdjustRest(_IAdjustRestDal, _DalLeaveRequest, _DalLeaveRequestFlow).AdjudgeAdjustAvailable(_LeaveRequest))
                {
                    HrmisUtility.ThrowException(HrmisUtility._Over_AdjustRest);
                }
            }

            foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems)
            {
                if (item.CostTime == 0)
                {
                    HrmisUtility.ThrowException(HrmisUtility._LeaveRequestItem_CanNot_Zero);
                }
            }
            new JudgeProbation(_LeaveRequest.LeaveRequestItems, _LeaveRequest.Account.Id, _LeaveRequest.LeaveRequestType,
                               _DalEmployee).Excute();
        }
Beispiel #8
0
        /// <summary>
        /// 获取员工的自定义流程
        /// </summary>
        /// <param name="accountId"></param>
        /// <returns></returns>
        public List <DiyProcess> GetEmployeeDiyProcesses(int accountId)
        {
            List <DiyProcess> processes   = new List <DiyProcess>();
            DiyProcess        leaveRequst = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.LeaveRequest, accountId);

            if (leaveRequst != null)
            {
                processes.Add(leaveRequst);
            }
            DiyProcess outProcess = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.ApplicationTypeOut, accountId);

            if (outProcess != null)
            {
                processes.Add(outProcess);
            }
            DiyProcess overProcess = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.ApplicationTypeOverTime, accountId);

            if (overProcess != null)
            {
                processes.Add(overProcess);
            }
            DiyProcess assess = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.Assess, accountId);

            if (assess != null)
            {
                processes.Add(assess);
            }
            DiyProcess hrPrincipal = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.HRPrincipal, accountId);

            if (hrPrincipal != null)
            {
                processes.Add(hrPrincipal);
            }
            //DiyProcess reimburse = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.Reimburse, accountId);
            //if (reimburse != null)
            //    processes.Add(reimburse);
            DiyProcess traineeApplication = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.TraineeApplication, accountId);

            if (traineeApplication != null)
            {
                processes.Add(traineeApplication);
            }

            return(processes);
        }
Beispiel #9
0
        protected override void Validation()
        {
            _LeaveRequest = _DalLeaveRequest.GetLeaveRequestByPKID(_LeaveRequestID);
            //判断请假信息是否为空
            if (_LeaveRequest == null)
            {
                ResultMessage = HrmisUtility._LeaveRequest_Not_Exist;
                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);
            }
        }
Beispiel #10
0
        protected override void Validation()
        {
            //当前AssessEmployeeID是否离职
            if (_AssessActivity.ItsEmployee.EmployeeType == EmployeeTypeEnum.DimissionEmployee)
            {
                BllUtility.ThrowException(BllExceptionConst._Employee_HasLeft);
            }

            //当前AssessEmployeeID是否有正在开启的考评活动
            if (_Dal.CountOpeningAssessActivityByAccountId(_AssessActivity.ItsEmployee.Account.Id, _AssessActivity.AssessCharacterType) > 0)
            {
                BllUtility.ThrowException(BllExceptionConst._Exist_Opening_AssessActivity);
            }

            //当前员工是否存在考评规则
            _AssessActivity.DiyProcess = _DalEmployeeDiyProcess.GetDiyProcessByProcessTypeAndAccountID(ProcessType.Assess, _AssessActivity.ItsEmployee.Account.Id);
            if (_AssessActivity.DiyProcess == null)
            {
                HrmisUtility.ThrowException(HrmisUtility._No_Assess_DiyProcess);
            }
        }
Beispiel #11
0
        protected override void Validation()
        {
            //ÅжϸÃÕ˺ÅÊÇ·ñÓÐÅàѵÉêÇëÁ÷³Ì
            _TraineeApplication.TraineeApplicationDiyProcess =
                _DalEmployeeDiyProcess.GetDiyProcessByProcessTypeAndAccountID
                    (ProcessType.TraineeApplication, _TraineeApplication.Applicant.Id);
            if (_TraineeApplication.TraineeApplicationDiyProcess == null)
            {
                throw new ApplicationException("¸ÃÕ˺ÅûÓÐÅàѵÉêÇëÁ÷³Ì!");
            }
            TraineeApplication _TraineeApplicationOld = _DalTraineeApplication.
                                                        GetTraineeApplicationByTraineeApplicationID(_TraineeApplication.PKID);

            //ÑéÖ¤ÅàѵÉêÇëÒÑ´æÔÚ£¬ÅàѵÉêÇëÒѽøÈëÅàѵÉêÇëÁ÷³Ì²»¿ÉÐ޸Ļòɾ³ý
            if (_TraineeApplicationOld == null)
            {
                throw new ApplicationException("¸ÃÅàѵÉêÇë²»´æÔÚ!");
            }
            else if (_TraineeApplicationOld.TraineeApplicationStatuss.Id
                     != TraineeApplicationStatus.New.Id)
            {
                throw new ApplicationException("ÅàѵÉêÇëÒѽøÈëÅàѵÉêÇëÁ÷³Ì²»¿ÉÐ޸Ļòɾ³ý!");
            }
        }
Beispiel #12
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="accountId"></param>
 /// <returns></returns>
 public DiyProcess GetOutDiyProcessByAccountID(int accountId)
 {
     return(_EmployeeDiyProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.ApplicationTypeOut, accountId));
 }