/// <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 { 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); } }
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); } } } }
/// <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(); }
/// <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); }
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); } }
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); } }
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("ÅàѵÉêÇëÒѽøÈëÅàѵÉêÇëÁ÷³Ì²»¿ÉÐ޸Ļòɾ³ý!"); } }
/// <summary> /// /// </summary> /// <param name="accountId"></param> /// <returns></returns> public DiyProcess GetOutDiyProcessByAccountID(int accountId) { return(_EmployeeDiyProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.ApplicationTypeOut, accountId)); }