コード例 #1
0
        /// <summary>
        /// 为leaveRequestItemList在最后一行添加空的item项,AccountSetParaID为-1
        /// </summary>
        /// <param name="leaveRequestItemList"></param>
        /// <returns></returns>
        public static List <LeaveRequestItem> AddNullItem(List <LeaveRequestItem> leaveRequestItemList)
        {
            LeaveRequestItem item = new LeaveRequestItem(-1, DateTime.Now, DateTime.Now, 0, RequestStatus.New);

            leaveRequestItemList.Add(item);
            return(leaveRequestItemList);
        }
コード例 #2
0
 /// <summary>
 /// 计算要扣除的小时数
 /// </summary>
 /// <param name="item"></param>
 private void InitCostHour(LeaveRequestItem item)
 {
     if (_LastVacation != null)
     {
         if (_SecondLastVacation != null)
         {
             foreach (DayAttendance attendance in _DayAttendanceList)
             {
                 if (attendance.Date.Date <= _SecondLastVacation.VacationEndDate.Date)
                 {
                     _SecondDeleteHour += attendance.Hours;
                 }
                 else
                 {
                     _LastDeleteHour += attendance.Hours;
                 }
             }
             if (_SecondLastVacation.SurplusDayNum * 8 < _SecondDeleteHour)
             {
                 _LastDeleteHour  += _SecondDeleteHour - _SecondLastVacation.SurplusDayNum * 8;
                 _SecondDeleteHour = _SecondLastVacation.SurplusDayNum * 8;
             }
         }
         else
         {
             _LastDeleteHour += item.CostTime;
         }
     }
 }
コード例 #3
0
        private void InitVacation(LeaveRequestItem item)
        {
            _SecondDeleteHour   = 0;
            _LastDeleteHour     = 0;
            _LastVacation       = null;
            _SecondLastVacation = null;
            List <Vacation> vacationList = new List <Vacation>();

            foreach (Vacation vacation in _VacationList)
            {
                if (vacation.VacationStartDate <= item.ToDate && vacation.SurplusDayNum > 0)
                {
                    vacationList.Add(vacation);
                }
            }
            if (vacationList.Count > 0)
            {
                vacationList  = vacationList.OrderByDescending(x => x.VacationEndDate).ToList();
                _LastVacation = vacationList[0];
                if (vacationList.Count > 1)
                {
                    _SecondLastVacation = vacationList[1];
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// 通过帐号ID查找相关的帐套项
        /// </summary>
        /// <param name="leaveRequestID"></param>
        /// <param name="diyProcess"></param>
        /// <returns></returns>
        private static List <LeaveRequestItem> GetLeaveRequestItemByLeaveRequestID(int leaveRequestID, DiyProcess diyProcess)
        {
            List <LeaveRequestItem> leaveRequestItemList = new List <LeaveRequestItem>();
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_ParmLeaveRequestID, SqlDbType.Int).Value = leaveRequestID;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetLeaveRequestItemByLeaveRequestID", cmd))
            {
                while (sdr.Read())
                {
                    LeaveRequestItem leaveRequestItem =
                        new LeaveRequestItem((int)sdr[_DBPKID], Convert.ToDateTime(sdr[_DBFromDate]),
                                             Convert.ToDateTime(sdr[_DBToDate]), Convert.ToDecimal(sdr[_DBAbsentHours]),
                                             RequestStatus.FindRequestStatus((int)sdr[_DBLeaveRequestStatus]));
                    leaveRequestItem.UseList = sdr[_DBUseList].ToString();

                    if (diyProcess != null)
                    {
                        leaveRequestItem.CurrentStep = diyProcess.FindStep((int)sdr[_DBNextProcessID]);
                    }

                    leaveRequestItemList.Add(leaveRequestItem);
                }
            }
            return(leaveRequestItemList);
        }
コード例 #5
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);
            }
        }
コード例 #6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="leaveRequestID"></param>
 /// <param name="item"></param>
 /// <param name="nextStep"></param>
 public LeaveRequestCancelPhone(int leaveRequestID, LeaveRequestItem item, DiyStep nextStep)
 {
     _LeaveRequest         = _DalLeaveRequest.GetLeaveRequestByPKID(leaveRequestID);
     _LeaveRequest.Account = _AccountBll.GetAccountById(_LeaveRequest.Account.Id);
     _LeaveRequestItem     = item;
     _NextStep             = nextStep;
 }
コード例 #7
0
 /// <summary>
 ///
 /// </summary>
 public LeaveRequestOverPhone(int leaveRequestID, LeaveRequestItem item, int nowAccountID)
 {
     _LeaveRequest         = _DalLeaveRequest.GetLeaveRequestByPKID(leaveRequestID);
     _LeaveRequest.Account = _AccountBll.GetAccountById(_LeaveRequest.Account.Id);
     _LeaveRequestItem     = _DalLeaveRequest.GetLeaveRequestItemByPKID(item.LeaveRequestItemID);
     _NowAccount           = nowAccountID;
 }
コード例 #8
0
 /// <summary>
 /// for test
 /// </summary>
 public RestoreAdjustRestByLeaveRequest(LeaveRequestItem item, int accountid, int leaveRequestID,
                                        IAdjustRest mockIAdjustRest, IAdjustRestHistory mockIAdjustRestHistory)
     : this(item, accountid, leaveRequestID)
 {
     _IAdjustRest        = mockIAdjustRest;
     _IAdjustRestHistory = mockIAdjustRestHistory;
 }
コード例 #9
0
 private void UpdateAdjustHour(LeaveRequestItem item)
 {
     //批量计算调休信息,并修改剩余调休和追加日志
     if (_LeaveRequest.LeaveRequestType.LeaveRequestTypeID == (int)LeaveRequestTypeEnum.AdjustRest)
     {
         new UpdateAdjustRestByLeaveRequest(item, _LeaveRequest.Account.Id, _LeaveRequest.PKID).Excute();
     }
 }
コード例 #10
0
        /// <summary>
        ///
        /// </summary>
        public int UpdateLeaveRequestItemUseDetail(LeaveRequestItem item)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_ParmLeaveRequestItemID, SqlDbType.Int).Value = item.LeaveRequestItemID;
            cmd.Parameters.Add(_ParmUseList, SqlDbType.NVarChar, 200).Value  = item.UseList;
            return(SqlHelper.ExecuteNonQuery("UpdateLeaveRequestItemUseDetail", cmd));
        }
コード例 #11
0
        /// <summary>
        ///
        /// </summary>
        private string BuildBody(LeaveRequestItem item)
        {
            StringBuilder Content = new StringBuilder();

            Content.AppendFormat("请审批{0}提交的请假申请,从{2}到{3},请{1},共{4}小时,理由:{5}",
                                 _LeaveRequest.Account.Name, _LeaveRequest.LeaveRequestType.Name, item.FromDate,
                                 item.ToDate, item.CostTime, _LeaveRequest.Reason);
            return(Content.ToString());
        }
コード例 #12
0
        /// <summary>
        /// 准备流程所需的插入数据
        /// </summary>
        /// <returns></returns>
        private LeaveRequestFlow PrepareLeaveRequestFlow(LeaveRequestItem item)
        {
            LeaveRequestFlow leaveRequestFlow = new LeaveRequestFlow();

            leaveRequestFlow.LeaveRequestStatus = item.Status;
            leaveRequestFlow.Account            = _LeaveRequest.Account;
            leaveRequestFlow.LeaveRequestItem   = item;
            leaveRequestFlow.OperationTime      = _LeaveRequest.SubmitDate;
            leaveRequestFlow.Remark             = _LeaveRequest.Reason;
            return(leaveRequestFlow);
        }
コード例 #13
0
        private void AddItemFlowForAutoCancel(LeaveRequestItem item)
        {
            LeaveRequestFlow leaveRequestFlow = new LeaveRequestFlow();

            leaveRequestFlow.LeaveRequestItem   = item;
            leaveRequestFlow.LeaveRequestStatus = item.Status;
            leaveRequestFlow.Account            = _OldLeaveRequest.Account;
            leaveRequestFlow.OperationTime      = DateTime.Now;
            leaveRequestFlow.Remark             = _OldLeaveRequest.Account.Name + "已经重新编辑请假单" + _OldLeaveRequest.PKID +
                                                  ",系统自动批准取消,并退回年假调休记录。";
            _DalLeaveRequestFlow.InsertLeaveRequestFlow(leaveRequestFlow);
        }
コード例 #14
0
        /// <summary>
        /// 给下一步操作人发邮件
        /// </summary>
        public void SendPhoneToNextOperator(int nextOperator, LeaveRequestItem item, int nowAccount)
        {
            ConfirmMessage confirmmessage = new ConfirmMessage();

            confirmmessage.FinishPhoneMessageOperationByAssessorID(
                new PhoneMessageType(PhoneMessageEnumType.LeaveRequest,
                                     item.LeaveRequestItemID), nowAccount);
            Account phoneToAccount = _AccountBll.GetAccountById(nextOperator);

            confirmmessage.SendConfirmMessage(phoneToAccount,
                                              new PhoneMessageType(PhoneMessageEnumType.LeaveRequest,
                                                                   item.LeaveRequestItemID));
        }
コード例 #15
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="item"></param>
 private void UpdateVacationDaysAvailable(LeaveRequestItem item)
 {
     if (_LeaveRequest.LeaveRequestType.LeaveRequestTypeID == (int)LeaveRequestTypeEnum.AnnualLeave)
     {
         if (!IsAgreed(item) && _RequestStatus.Id == RequestStatus.ApproveCancelFail.Id)
         {
             List <LeaveRequestItem> leaveRequestItems = new List <LeaveRequestItem>();
             leaveRequestItems.Add(item);
             new DeleteVacationByLeaveReuqest(_LeaveRequest.Account.Id, leaveRequestItems,
                                              _LeaveRequest.LeaveRequestType);
         }
     }
 }
コード例 #16
0
        protected override void ExcuteSelf()
        {
            RequestStatus    status;
            LeaveRequestItem item = _DalLeaveRequest.GetLeaveRequestItemByPKID(PhoneMessage.PhoneMessageType.PKID);
            RequestStatus    s    = item.Status;

            if (Operation)
            {
                switch (s.Id)
                {
                case 1:
                case 7:
                    status = RequestStatus.ApprovePass;
                    break;

                case 4:
                case 8:
                    status = RequestStatus.ApproveCancelPass;
                    break;

                default:
                    status = RequestStatus.ApprovePass;
                    break;
                }
                //status = RequestStatus.ApprovePass;
            }
            else
            {
                switch (s.Id)
                {
                case 1:
                case 7:
                    status = RequestStatus.ApproveFail;
                    break;

                case 4:
                case 8:
                    status = RequestStatus.ApproveCancelFail;
                    break;

                default:
                    status = RequestStatus.ApproveFail;
                    break;
                }
                //status = RequestStatus.ApproveFail;
            }
            int leaverequestID = item.LeaveRequestID;
            ApproveLeaveRequestItem approveWholeLeaveRequest = new ApproveLeaveRequestItem(leaverequestID, PhoneMessage.PhoneMessageType.PKID, _PhoneMessage.Assessor.Id, status, Remark);

            approveWholeLeaveRequest.Excute();
        }
コード例 #17
0
        /// <summary>
        /// 用于判断是否该请假被审核同意过
        /// </summary>
        /// <returns></returns>
        private bool IsAgreed(LeaveRequestItem item)
        {
            List <LeaveRequestFlow> leaveRequestFlows =
                _DalLeaveRequestFlow.GetLeaveRequestFlowByLeaveRequestItemID(item.LeaveRequestItemID);

            foreach (LeaveRequestFlow leaveRequestFlow in leaveRequestFlows)
            {
                if (leaveRequestFlow.LeaveRequestStatus.Id == RequestStatus.ApprovePass.Id)
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #18
0
        private void InitDayAttandanceList(LeaveRequestItem item)
        {
            //当测试时,不调用这个方法
            if (_IsTest)
            {
                return;
            }
            _DayAttendanceList = new List <DayAttendance>();
            CalculateCostHour cal =
                new CalculateCostHour(item.FromDate, item.ToDate, _AccountID,
                                      _Type.LeaveRequestTypeID);

            cal.Excute();
            _DayAttendanceList.AddRange(cal.DayAttendanceList);
        }
コード例 #19
0
        /// <summary>
        /// 审核
        /// </summary>
        public void ConfirmOperation(LeaveRequest leaveRequest, LeaveRequestItem item, List <Account> hrAccount,
                                     int currentAccountID, DiyStep currentStep, DiyStep nextStep)
        {
            Account mailToAccount = new MailAndPhoneUtility().GetMailToAccount(leaveRequest, nextStep);

            if (nextStep.DiyStepID == 0 || nextStep.Status == "取消")
            {
                _LeaveRequestPhone.SendConfirmOverPhone(leaveRequest.PKID, item, currentStep, currentAccountID);
            }
            else if (mailToAccount != null)
            {
                _LeaveRequestPhone.SendPhoneToNextOperator(leaveRequest.PKID, item, mailToAccount.Id,
                                                           currentAccountID);
            }
        }
コード例 #20
0
        /// <summary>
        /// 新增请假项
        /// </summary>
        /// <param name="leaveRequestID"></param>
        /// <param name="item"></param>
        /// <param name="nextProcessID"></param>
        /// <param name="conn"></param>
        /// <param name="trans"></param>
        private static void InsertLeaveRequestItem(int leaveRequestID, LeaveRequestItem item, int nextProcessID, SqlConnection conn,
                                                   SqlTransaction trans)
        {
            int        pkid;
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_ParmLeaveRequestID, SqlDbType.Int).Value     = leaveRequestID;
            cmd.Parameters.Add(_ParmFromDate, SqlDbType.DateTime).Value      = item.FromDate;
            cmd.Parameters.Add(_ParmToDate, SqlDbType.DateTime).Value        = item.ToDate;
            cmd.Parameters.Add(_ParmAbsentHours, SqlDbType.Decimal).Value    = item.CostTime;
            cmd.Parameters.Add(_ParmLeaveRequestStatus, SqlDbType.Int).Value = item.Status.Id;
            cmd.Parameters.Add(_ParmNextProcessID, SqlDbType.Int).Value      = nextProcessID;
            cmd.Parameters.Add(_ParmPKID, SqlDbType.Int).Direction           = ParameterDirection.Output;
            SqlHelper.TransExecuteNonQueryReturnPKID("InsertLeaveRequestItem", cmd, conn, trans, out pkid);
        }
コード例 #21
0
        private List <AdjustRest> InitDayAttendanceList(LeaveRequestItem item)
        {
            List <AdjustRest> adjustRestList = new List <AdjustRest>();
            CalculateCostHour cal            =
                new CalculateCostHour(item.FromDate, item.ToDate, _AccountID,
                                      Convert.ToInt32(LeaveRequestTypeEnum.AdjustRest));

            cal.Excute();
            foreach (DayAttendance attendance in cal.DayAttendanceList)
            {
                AdjustRest ar = new AdjustRest();
                ar.AdjustYear   = attendance.Date;
                ar.SurplusHours = attendance.Hours;
                adjustRestList.Add(ar);
            }
            return(adjustRestList);
        }
コード例 #22
0
        /// <summary>
        /// 判断是否曾经审核通过的item
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        private bool AdjustIfApprovePass(LeaveRequestItem item)
        {
            List <LeaveRequestFlow> LeaveRequestFlows =
                _DalLeaveRequestFlow.GetLeaveRequestFlowByLeaveRequestItemID(item.LeaveRequestItemID);

            bool ifApprovePass = false;

            foreach (LeaveRequestFlow flow in LeaveRequestFlows)
            {
                if (flow.LeaveRequestStatus.Id == RequestStatus.ApprovePass.Id)
                {
                    ifApprovePass = true;
                    break;
                }
            }

            return(ifApprovePass);
        }
コード例 #23
0
 /// <summary>
 /// 扣除,如果不够,则报错
 /// </summary>
 private void DeleteVacationHour(Vacation vacation, decimal deletehour, LeaveRequestItem item)
 {
     if (vacation != null)
     {
         vacation.UsedDayNum    += (deletehour / 8);
         vacation.SurplusDayNum -= (deletehour / 8);
         if (vacation.SurplusDayNum < 0)
         {
             HrmisUtility.ThrowException("剩余年假不足");
         }
         else if (_IsUpdateVacation)
         {
             _VacationDal.Update(vacation);
             item.UseList = string.Format("{0},{1}/{2}", vacation.VacationID, deletehour, item.UseList);
             _LeaveRequestDal.UpdateLeaveRequestItemUseDetail(item);
         }
     }
 }
コード例 #24
0
        /// <summary>
        ///
        /// </summary>
        public List <LeaveRequestItem> GetVacationUsedDetailByAccountID(int accountID)
        {
            List <LeaveRequestItem> LeaveRequestItemList = new List <LeaveRequestItem>();
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_ParmAccountID, SqlDbType.Int).Value = accountID;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetVacationUsedDetailByAccountID", cmd))
            {
                while (sdr.Read())
                {
                    LeaveRequestItem item = new LeaveRequestItem((int)sdr[_DBPKID], Convert.ToDateTime(sdr[_DBFromDate]),
                                                                 Convert.ToDateTime(sdr[_DBToDate]), Convert.ToDecimal(sdr[_DBAbsentHours]),
                                                                 RequestStatus.FindRequestStatus((int)sdr[_DBLeaveRequestStatus]));
                    item.Remark = sdr[_DBReason].ToString();
                    LeaveRequestItemList.Add(item);
                }
            }
            return(LeaveRequestItemList);
        }
コード例 #25
0
        /// <summary>
        /// 通过帐号ID查找相关的帐套项
        /// </summary>
        /// <param name="leaveRequestItemID"></param>
        /// <returns></returns>
        public LeaveRequestItem GetLeaveRequestItemByPKID(int leaveRequestItemID)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_ParmPKID, SqlDbType.Int).Value = leaveRequestItemID;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetLeaveRequestItemByPKID", cmd))
            {
                while (sdr.Read())
                {
                    LeaveRequestItem leaveRequestItem =
                        new LeaveRequestItem((int)sdr[_DBPKID], Convert.ToDateTime(sdr[_DBFromDate]),
                                             Convert.ToDateTime(sdr[_DBToDate]), Convert.ToDecimal(sdr[_DBAbsentHours]),
                                             RequestStatus.FindRequestStatus((int)sdr[_DBLeaveRequestStatus]));
                    leaveRequestItem.LeaveRequestID = (int)sdr[_DBLeaveRequestID];
                    return(leaveRequestItem);
                }
            }
            return(null);
        }
コード例 #26
0
        /// <summary>
        /// 通过帐号ID查找相关的帐套项
        /// </summary>
        /// <param name="leaveRequestID"></param>
        /// <returns></returns>
        private static List <LeaveRequestItem> GetLeaveRequestItemByLeaveRequestIDForCalendar(int leaveRequestID)
        {
            List <LeaveRequestItem> leaveRequestItemList = new List <LeaveRequestItem>();
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_ParmLeaveRequestID, SqlDbType.Int).Value = leaveRequestID;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetLeaveRequestItemByLeaveRequestIDForCalendar", cmd))
            {
                while (sdr.Read())
                {
                    LeaveRequestItem leaveRequestItem =
                        new LeaveRequestItem((int)sdr[_DBPKID], Convert.ToDateTime(sdr[_DBFromDate]),
                                             Convert.ToDateTime(sdr[_DBToDate]), Convert.ToDecimal(sdr[_DBAbsentHours]),
                                             RequestStatus.FindRequestStatus((int)sdr[_DBLeaveRequestStatus]));

                    leaveRequestItemList.Add(leaveRequestItem);
                }
            }
            return(leaveRequestItemList);
        }
コード例 #27
0
        private List <LeaveRequestItem> GetGridViewValue()
        {
            List <LeaveRequestItem> iRet = new List <LeaveRequestItem>();

            for (int i = 0; i < gvLeaveRequestItemList.Rows.Count; i++)
            {
                TextBox  txtRemark = (TextBox)gvLeaveRequestItemList.Rows[i].FindControl("txtRemark");
                CheckBox chbId     = (CheckBox)gvLeaveRequestItemList.Rows[i].FindControl("chbId");

                DropDownList ddlStatus = (DropDownList)gvLeaveRequestItemList.Rows[i].FindControl("ddlStatus");

                if (chbId.Checked)
                {
                    LeaveRequestItem item = new LeaveRequestItem(Convert.ToInt32(chbId.Text));
                    item.Remark = txtRemark.Text.Trim();
                    item.Status = new RequestStatus(Convert.ToInt32(ddlStatus.SelectedValue), ddlStatus.SelectedItem.Text);
                    iRet.Add(item);
                }
            }
            return(iRet);
        }
コード例 #28
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="accountID"></param>
        /// <param name="leaveRequestType"></param>
        /// <param name="requestStatus"></param>
        /// <returns></returns>
        public List <LeaveRequestItem> GetLeaveRequestItemByAccountIDAndRequestStatus(int accountID,
                                                                                      LeaveRequestTypeEnum leaveRequestType, RequestStatus requestStatus)
        {
            List <LeaveRequestItem> leaveRequestItemList = new List <LeaveRequestItem>();
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_ParmAccountID, SqlDbType.Int).Value          = accountID;
            cmd.Parameters.Add(_ParmLeaveRequestTypeID, SqlDbType.Int).Value = (int)leaveRequestType;
            cmd.Parameters.Add(_ParmLeaveRequestStatus, SqlDbType.Int).Value = requestStatus.Id;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetLeaveRequestItemByAccountIDAndRequestStatus", cmd))
            {
                while (sdr.Read())
                {
                    LeaveRequestItem leaveRequestItem =
                        new LeaveRequestItem((int)sdr[_DBPKID], Convert.ToDateTime(sdr[_DBFromDate]),
                                             Convert.ToDateTime(sdr[_DBToDate]), Convert.ToDecimal(sdr[_DBAbsentHours]),
                                             RequestStatus.FindRequestStatus((int)sdr[_DBLeaveRequestStatus]));

                    leaveRequestItemList.Add(leaveRequestItem);
                }
            }
            return(leaveRequestItemList);
        }
コード例 #29
0
        private void ChangeRequestStatus(LeaveRequestItem item)
        {
            //-1 全部;0 新增;1 提交;2 审核不通过;3 审核通过;4 取消请假;
            //5 拒绝取消假期;6 批准取消假期;7 审核中;8 取消审核中
            switch (item.Status.Id)
            {
            case 1:
            case 7:
                if (_RequestStatus.Id == RequestStatus.ApproveCancelPass.Id)
                {
                    _RequestStatus = RequestStatus.ApprovePass;
                }
                break;

            case 4:
            case 8:
                if (_RequestStatus.Id == RequestStatus.ApprovePass.Id)
                {
                    _RequestStatus = RequestStatus.ApproveCancelPass;
                }
                break;
            }
        }
コード例 #30
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);
            }

            //如果请假信息状态不是提交或取消请假状态,不能审批
            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);
                    }
                }
            }
        }