/// <summary> /// /// </summary> protected override void ExcuteSelf() { try { DiyStep currentStep = _PositionApplication.DiyProcess.FindCancelStep(); DiyStep nextStep = _PositionApplication.DiyProcess.FindCancelNextStep(); using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { _PositionApplicationDal.UpdatePositionApplicationStatusByPositionApplicationID(_PositionApplicationID, _RequestStatus, nextStep.DiyStepID); PositionApplicationFlow flow = new PositionApplicationFlow(0, _PositionApplicationID, new Account(_OperatorID, "", ""), DateTime.Now, _RequestStatus, _Reason, _PositionApplication); _PositionApplicationDal.InsertPositionApplicationFlow(flow); ts.Complete(); } List <string> accounts = new GetDiyProcess(_DalEmployeeDiyProcess).GetAccountMailListByDiyProcessIDAccountID( currentStep, _PositionApplication.Account.Id); new PositionApplicationMailAndPhoneDelegate().CancelMail(_PositionApplication.PKID, accounts, nextStep); } catch { BllUtility.ThrowException(BllExceptionConst._DbError); } }
/// <summary> /// /// </summary> /// <param name="positionApplicationID"></param> /// <param name="currentStepAccountlist"></param> /// <param name="nextStep"></param> public PositionApplicationCancelMail(int positionApplicationID, List <string> currentStepAccountlist, DiyStep nextStep) { _PositionApplication = new GetPositionApplication().GetPositionApplicationByPKID(positionApplicationID); _PositionApplication.Account = _AccountBll.GetAccountById(_PositionApplication.Account.Id); _NextStep = nextStep; _CurrentStepAccountlist = currentStepAccountlist; }
/// <summary> /// 通过帐号ID查找相关的帐套项 /// </summary> /// <param name="diyProcessID"></param> /// <returns></returns> private static List <DiyStep> GetDiyStepsByDiyProcessID(int diyProcessID) { List <DiyStep> diySteps = new List <DiyStep>(); SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_DiyProcessID, SqlDbType.Int).Value = diyProcessID; using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetDiyStepByDiyProcessID", cmd)) { while (sdr.Read()) { DiyStep diyStep = new DiyStep((int)sdr[_DBPKID], sdr[_DBStatus].ToString(), new OperatorType((int)sdr[_DBOperatorType], OperatorType.FindOperatorTypeByID((int)sdr[_DBOperatorType])), (int)sdr[_DBOperatorID]); string[] mailAccount = sdr[_DBMailAccount].ToString().Split('|'); foreach (string accountId in mailAccount) { int id; if (int.TryParse(accountId, out id)) { diyStep.MailAccount.Add(new Account(Convert.ToInt32(accountId), string.Empty, string.Empty)); } } diySteps.Add(diyStep); } } return(diySteps); }
/// <summary> /// 根据ID获得请假 /// </summary> /// <param name="leaveRequestID"></param> /// <returns></returns> public LeaveRequest GetLeaveRequestByPKID(int leaveRequestID) { SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_ParmPKID, SqlDbType.Int).Value = leaveRequestID; using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetLeaveRequestByPKID", cmd)) { while (sdr.Read()) { LeaveRequest leaveRequest = new LeaveRequest(); leaveRequest.PKID = leaveRequestID; leaveRequest.Account = new Account((int)sdr[_DBAccountID], "", ""); leaveRequest.FromDate = (DateTime)sdr[_DBFromDate]; leaveRequest.ToDate = (DateTime)sdr[_DBToDate]; leaveRequest.CostTime = (decimal)sdr[_DBAbsentHours]; leaveRequest.LeaveRequestType = new LeaveRequestType(Convert.ToInt32(sdr[_DBLeaveRequestTypeID]), sdr[_DBAbsenceTypeName].ToString(), sdr[_DBLeaveRequestTypeDescription].ToString(), ((LegalHoliday)sdr[_DBLeaveRequestTypeIncludeNationalHolidays]), ((RestDay)sdr[_DBLeaveRequestTypeIncludeRestDay]), Convert.ToInt32(sdr[_DBLeastHour])); leaveRequest.SubmitDate = Convert.ToDateTime(sdr[_DBSubmitDate]); leaveRequest.Reason = sdr[_DBReason].ToString(); List <DiyStep> diyStepList = new List <DiyStep>(); string diyProcess = sdr[_DbDiyProcess].ToString(); string[] diySteps = diyProcess.Split(';'); foreach (string diyStep in diySteps) { string[] steps = diyStep.Split('|'); if (steps.Length > 4) { DiyStep step = new DiyStep(Convert.ToInt32(steps[0]), steps[1], new OperatorType(Convert.ToInt32(steps[2]), OperatorType.FindOperatorTypeByID(Convert.ToInt32(steps[2]))), Convert.ToInt32(steps[3])); string[] mailAccounts = steps[4].Split(','); foreach (string mailAccount in mailAccounts) { if (!string.IsNullOrEmpty(mailAccount)) { step.MailAccount.Add(new Account(Convert.ToInt32(mailAccount), "", "")); } } diyStepList.Add(step); } } leaveRequest.DiyProcess = new DiyProcess(); leaveRequest.DiyProcess.DiySteps = diyStepList; leaveRequest.LeaveRequestItems = GetLeaveRequestItemByLeaveRequestID(leaveRequestID, leaveRequest.DiyProcess); return(leaveRequest); } return(null); } }
/// <summary> /// </summary> public static DiyProcess GetDiyProcess(string processtest) { List <DiyStep> diyStepList = new List <DiyStep>(); string diyProcess = processtest; string[] diySteps = diyProcess.Split(';'); foreach (string diyStep in diySteps) { string[] steps = diyStep.Split('|'); if (steps.Length > 4) { DiyStep step = new DiyStep(Convert.ToInt32(steps[0]), steps[1], new OperatorType(Convert.ToInt32(steps[2]), OperatorType.FindOperatorTypeByID(Convert.ToInt32(steps[2]))), Convert.ToInt32(steps[3])); string[] mailAccounts = steps[4].Split(','); foreach (string mailAccount in mailAccounts) { if (!string.IsNullOrEmpty(mailAccount)) { step.MailAccount.Add(new Account(Convert.ToInt32(mailAccount), "", "")); } } diyStepList.Add(step); } } DiyProcess diyprocess = new DiyProcess(); diyprocess.DiySteps = diyStepList; return(diyprocess); }
/// <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; }
/// <summary> /// /// </summary> /// <param name="leaveRequestID"></param> /// <param name="hrAccount"></param> /// <param name="currentStep"></param> public LeaveRequestOverMail(int leaveRequestID, List <Account> hrAccount, DiyStep currentStep) { _LeaveRequest = _DalLeaveRequest.GetLeaveRequestByPKID(leaveRequestID); _LeaveRequest.Account = _AccountBll.GetAccountById(_LeaveRequest.Account.Id); _HRAccount = hrAccount; _CurrentStep = currentStep; }
/// <summary> /// 新增请假单 /// </summary> protected override void ExcuteSelf() { if (_IfSubmit) { foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems) { item.Status = RequestStatus.Submit; } DiyStep currentStep = _LeaveRequest.DiyProcess.FindFirstStep(); DiyStep nextStep = _LeaveRequest.DiyProcess.FindSecondStep(); _LeaveRequest.PKID = _DalLeaveRequest.InsertLeaveRequest(_LeaveRequest, nextStep.DiyStepID); _LeaveRequest = _DalLeaveRequest.GetLeaveRequestByPKID(_LeaveRequest.PKID); foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems) { _DalLeaveRequestFlow.InsertLeaveRequestFlow(PrepareLeaveRequestFlow(item)); } new LeaveRequestMailAndPhoneDelegate().SubmitOperation(_LeaveRequest.PKID, _LeaveRequest.MailCC ?? new List <Account>(), currentStep.MailAccount, nextStep); } else { foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems) { item.Status = RequestStatus.New; } DiyStep nextStep = _LeaveRequest.DiyProcess.FindFirstStep(); _LeaveRequest.PKID = _DalLeaveRequest.InsertLeaveRequest(_LeaveRequest, nextStep.DiyStepID); } }
/// <summary> /// /// </summary> /// <param name="leaveRequestID"></param> /// <param name="diyProcessAccountlist"></param> /// <param name="nextStep"></param> public LeaveRequestCancelMail(int leaveRequestID, List <Account> diyProcessAccountlist, DiyStep nextStep) { _LeaveRequest = _DalLeaveRequest.GetLeaveRequestByPKID(leaveRequestID); _LeaveRequest.Account = _AccountBll.GetAccountById(_LeaveRequest.Account.Id); _NextStep = nextStep; _DiyProcessAccountlist = diyProcessAccountlist; }
/// <summary> /// /// </summary> /// <param name="positionApplication"></param> /// <param name="nextStep"></param> /// <returns></returns> public Account GetMailToAccount(PositionApplication positionApplication, DiyStep nextStep) { int accountID = new GetPositionApplication().ChangeOperatorToEmployee(positionApplication, nextStep); Account account = _AccountBll.GetAccountById(accountID); return(account); }
/// <summary> /// /// </summary> /// <param name="leaveRequest"></param> /// <param name="nextStep"></param> /// <returns></returns> public Account GetMailToAccount(LeaveRequest leaveRequest, DiyStep nextStep) { int accountID = new GetLeaveRequest().ChangeOperatorToEmployee(leaveRequest, nextStep); Account account = _AccountBll.GetAccountById(accountID); return(account); }
/// <summary> /// /// </summary> /// <param name="traineeApplication"></param> /// <returns></returns> /// <param name="diyStep"></param> public Account GetMailToAccount(TraineeApplication traineeApplication, DiyStep diyStep) { int accountID = new GetTraineeApplication().ChangeOperatorToEmployee(traineeApplication, diyStep); Account account = _AccountBll.GetAccountById(accountID); return(account); }
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); } }
/// <summary> /// /// </summary> protected override void ExcuteSelf() { int failCount = 0; int successCount = 0; List <List <Account> > account = new List <List <Account> >(); List <DiyStep> csteps = new List <DiyStep>(); List <DiyStep> nsteps = new List <DiyStep>(); foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems) { //-1 全部;0 新增;1 提交;2 审核不通过;3 审核通过;4 取消请假;5 拒绝取消假期; //6 批准取消假期;7 审核中;8 审核取消中 switch (item.Status.Id) { case 1: case 7: _RequestStatus = RequestStatus.ApprovePass; break; case 4: case 8: _RequestStatus = RequestStatus.ApproveCancelPass; break; } try { ApproveLeaveRequestItem approveLeaveRequestItem = new ApproveLeaveRequestItem(_LeaveRequestID, item.LeaveRequestItemID, _AccountID, _RequestStatus, _Reason, _DalLeaveRequest, _DalLeaveRequestFlow, _DalEmployeeDiyProcess, _DalVacation, _IAdjustRestDal, _DalPlanDutyDal, _DalLeaveRequestType); List <Account> mailaccountlist; DiyStep cstep; DiyStep nstep; approveLeaveRequestItem.ConfirmItem(out mailaccountlist, out cstep, out nstep); if (!DiyStep.Contains(nsteps, nstep)) { account.Add(mailaccountlist); csteps.Add(cstep); nsteps.Add(nstep); } successCount++; } catch { failCount++; } ResultMessage = successCount + "个请假项审核成功," + failCount + "个请假项审核失败";; } for (int i = 0; i < nsteps.Count; i++) { new LeaveRequestMailAndPhoneDelegate().ConfirmOperationMail(_LeaveRequest, account[i], _AccountID, csteps[i], nsteps[i]); } }
/// <summary> /// /// </summary> /// <param name="leaveRequestID"></param> /// <param name="cclist"></param> /// <param name="diyProcesslist"></param> /// <param name="nextStep"></param> public LeaveRequestSubmitMail(int leaveRequestID, List <Account> cclist, List <Account> diyProcesslist, DiyStep nextStep) { _LeaveRequest = _DalLeaveRequest.GetLeaveRequestByPKID(leaveRequestID); _LeaveRequest.Account = _AccountBll.GetAccountById(_LeaveRequest.Account.Id); _CCList = cclist; _DiyProcesslist = diyProcesslist; _NextStep = nextStep; }
/// <summary> /// /// </summary> /// <param name="positionApplicationID"></param> /// <param name="cclist"></param> /// <param name="diyProcesslist"></param> /// <param name="nextStep"></param> public PositionApplicationSubmitMail(int positionApplicationID, List <Account> cclist, List <string> diyProcesslist, DiyStep nextStep) { _PositionApplication = new GetPositionApplication().GetPositionApplicationByPKID(positionApplicationID); _PositionApplication.Account = _AccountBll.GetAccountById(_PositionApplication.Account.Id); _CCList = cclist; _DiyProcesslist = diyProcesslist; _NextStep = nextStep; }
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); } }
private void ChangeRequestStatus(DiyStep nextStep) { if (nextStep.Status != "取消" && _RequestStatus.Id == RequestStatus.ApprovePass.Id) { _RequestStatus = RequestStatus.Approving; } if (nextStep.Status != "结束" && _RequestStatus.Id == RequestStatus.ApproveCancelPass.Id) { _RequestStatus = RequestStatus.CancelApproving; } }
/// <summary> /// 审核 /// </summary> public void ConfirmOperationMail(LeaveRequest leaveRequest, List <Account> hrAccount, int currentAccountID, DiyStep currentStep, DiyStep nextStep) { Account mailToAccount = new MailAndPhoneUtility().GetMailToAccount(leaveRequest, nextStep); if (nextStep.DiyStepID == 0 || nextStep.Status == "取消") { _LeaveRequestMail.SendConfirmOverMail(leaveRequest.PKID, hrAccount, currentStep); } else if (mailToAccount != null) { _LeaveRequestMail.SendMailToNextOperator(leaveRequest.PKID, mailToAccount); } }
/// <summary> /// 交换第id行<==>第id+1行 /// </summary> /// <param name="id"></param> public void DiyStepChangedForDownEvent(string id) { List <DiyStep> items = _IDiyProcessView.DiyStepList; int currRow = Convert.ToInt32(id); if (currRow + 1 == items.Count) { return; } DiyStep tempItem = items[currRow + 1]; items[currRow + 1] = items[currRow]; items[currRow] = tempItem; _IDiyProcessView.DiyStepList = items; }
/// <summary> /// 在rowIndex下新增空行 /// </summary> /// <param name="rowIndex"></param> public void DiyStepForAddAtEvent(string rowIndex) { List <DiyStep> items = new List <DiyStep>(); for (int i = 0; i < _IDiyProcessView.DiyStepList.Count; i++) { items.Add(_IDiyProcessView.DiyStepList[i]); if (Convert.ToInt32(rowIndex) == i) { DiyStep item = new DiyStep(-1, "", OperatorType.YourSelf, 0); items.Add(item); } } _IDiyProcessView.DiyStepList = items; }
/// <summary> /// 修改请假单 /// </summary> protected override void ExcuteSelf() { try { using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { if (_OldLeaveRequest.IfAutoCancel) { AutoCancelLeaveRequest(); } if (_IfSubmit) { foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems) { item.Status = RequestStatus.Submit; } DiyStep currentStep = _LeaveRequest.DiyProcess.FindFirstStep(); DiyStep nextStep = _LeaveRequest.DiyProcess.FindSecondStep(); _DalLeaveRequest.UpdateLeaveRequest(_LeaveRequest, nextStep.DiyStepID); _LeaveRequest = _DalLeaveRequest.GetLeaveRequestByPKID(_LeaveRequest.PKID); foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems) { _DalLeaveRequestFlow.InsertLeaveRequestFlow(PrepareLeaveRequestFlow(item)); } new LeaveRequestMailAndPhoneDelegate().SubmitOperation(_LeaveRequest.PKID, _LeaveRequest.MailCC ?? new List <Account>(), currentStep.MailAccount, nextStep); } else { foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems) { item.Status = RequestStatus.New; } DiyStep nextStep = _LeaveRequest.DiyProcess.FindFirstStep(); _DalLeaveRequest.UpdateLeaveRequest(_LeaveRequest, nextStep.DiyStepID); } ts.Complete(); } } catch { HrmisUtility.ThrowException(HrmisUtility._DbError); } }
/// <summary> /// /// </summary> private void ConfirmItem(out DiyStep cstep, out DiyStep nstep) { Validation(); cstep = null; nstep = null; try { DiyStep currentStep = _PositionApplication.DiyProcess.FindStep(_PositionApplication.CurrentStep.DiyStepID); DiyStep nextStep = _PositionApplication.DiyProcess.FindNextStep(_PositionApplication.CurrentStep.DiyStepID); if (nextStep == null) { nextStep = new DiyStep(0, "结束", OperatorType.Others, 0); } ChangeRequestStatus(nextStep); if (_RequestStatus.Id == RequestStatus.ApproveFail.Id || _RequestStatus.Id == RequestStatus.ApproveCancelFail.Id) { nextStep = new DiyStep(0, "结束", OperatorType.Others, 0); } _PositionApplication.Status = _RequestStatus; using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { _PositionApplicationDal.UpdatePositionApplication(_PositionApplication); _PositionApplicationDal.UpdatePositionApplicationStatusByPositionApplicationID(_PositionApplication.PKID, _RequestStatus, nextStep.DiyStepID); PositionApplicationFlow flow = new PositionApplicationFlow(0, _PositionApplication.PKID, new Account(_OperatorID, "", ""), DateTime.Now, _RequestStatus, _Reason, _PositionApplication); _PositionApplicationDal.InsertPositionApplicationFlow(flow); ts.Complete(); } new PositionApplicationMailAndPhoneDelegate().ConfirmOperationMail(_PositionApplication, _OperatorID, currentStep, nextStep); cstep = currentStep; nstep = nextStep; } catch { BllUtility.ThrowException(BllExceptionConst._DbError); } }
/// <summary> /// /// </summary> protected override void ExcuteSelf() { int failCount = 0; int successCount = 0; List <List <Account> > account = new List <List <Account> >(); List <DiyStep> csteps = new List <DiyStep>(); List <DiyStep> nsteps = new List <DiyStep>(); foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems) { try { ChangeRequestStatus(item); ApproveLeaveRequestItem approveLeaveRequestItem = new ApproveLeaveRequestItem(_LeaveRequestID, item.LeaveRequestItemID, _AccountID, _RequestStatus, _Reason, _DalLeaveRequest, _DalLeaveRequestFlow, _DalEmployeeDiyProcess, _DalVacation, _IAdjustRestDal, _DalPlanDutyDal, _DalLeaveRequestType); List <Account> mailaccountlist; DiyStep cstep; DiyStep nstep; approveLeaveRequestItem.ConfirmItem(out mailaccountlist, out cstep, out nstep); if (!DiyStep.Contains(nsteps, nstep)) { account.Add(mailaccountlist); csteps.Add(cstep); nsteps.Add(nstep); } successCount++; } catch { failCount++; } ResultMessage = successCount + "个请假项审核成功," + failCount + "个请假项审核失败";; } for (int i = 0; i < nsteps.Count; i++) { new LeaveRequestMailAndPhoneDelegate().ConfirmOperationMail(_LeaveRequest, account[i], _AccountID, csteps[i], nsteps[i]); } }
/// <summary> /// 获取hr负责人流程字符串 /// </summary> /// <param name="diyStep"></param> /// <returns></returns> private string GetHRPrincipalProcessString(DiyStep diyStep) { StringBuilder operate = new StringBuilder(); try { if (diyStep.MailAccount != null) { foreach (Account account in diyStep.MailAccount) { operate.Append(_IAccountBll.GetAccountById(account.Id).Name); operate.Append(" "); } } } catch {} return(operate.ToString()); }
private List <DiyStep> CollerctDiySteps(List <DiyStep> process) { switch (_ItsView.ProcessType.Id) { //外出申请流程 case 1: //加班申请流程 case 2: List <DiyStep> iRet = new List <DiyStep>(); DiyStep firststep = new DiyStep(process[0].DiyStepID, process[0].Status, new OperatorType(0, "本人"), 0);; firststep.MailAccount = process[0].MailAccount; firststep.IfSystem = true; iRet.Add(firststep); for (int i = 1; i < process.Count; i++) { DiyStep step = new DiyStep(process[i].DiyStepID, process[i].Status, process[i - 1].OperatorType, process[i - 1].OperatorID); step.MailAccount = process[i].MailAccount; iRet.Add(step); } return(iRet); //请假流程 case 0: //考评流程 case 3: //人事负责人 case 4: //报销流程 case 5: //培训申请流程 case 6: return(process); default: return(new List <DiyStep>()); } }
/// <summary> /// 新增自定义步骤 /// </summary> /// <param name="diyProcessID"></param> /// <param name="diyStep"></param> /// <param name="conn"></param> /// <param name="trans"></param> private static void InsertDiySteps(int diyProcessID, DiyStep diyStep, SqlConnection conn, SqlTransaction trans) { int pkid; SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_DiyProcessID, SqlDbType.Int).Value = diyProcessID; cmd.Parameters.Add(_Status, SqlDbType.NVarChar, 50).Value = diyStep.Status; cmd.Parameters.Add(_OperatorType, SqlDbType.Int).Value = diyStep.OperatorType.Id; cmd.Parameters.Add(_OperatorID, SqlDbType.Int).Value = diyStep.OperatorID; string mailAccount = ""; foreach (Account account in diyStep.MailAccount) { mailAccount += account.Id + "|"; } cmd.Parameters.Add(_MailAccount, SqlDbType.NVarChar, 255).Value = mailAccount; cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction = ParameterDirection.Output; SqlHelper.TransExecuteNonQueryReturnPKID("InsertDiySteps", cmd, conn, trans, out pkid); }
/// <summary> /// /// </summary> /// <param name="step"></param> /// <param name="accountID"></param> /// <returns></returns> public List <string> GetAccountMailListByDiyProcessIDAccountID(DiyStep step, int accountID) { List <string> mailToList = new List <string>(); List <Account> accounts = step.MailAccount; for (int i = 0; i < step.MailRole.Count; i++) { DiyProcess hrProcess = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(step.MailRole[i], accountID); accounts.AddRange(hrProcess.DiySteps[0].MailAccount); } foreach (Account account in accounts) { Account innaccount = _IAccountBll.GetAccountById(account.Id); mailToList.AddRange(HrmisUtility.GetMail(innaccount)); } RequestUtility.CleanMailAddress(mailToList); return(mailToList); }
/// <summary> /// 修改 /// </summary> protected override void ExcuteSelf() { try { using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { if (_OldPositionApplication.IfAutoCancel) { AutoCancelPositionApplication(); } if (_IfSubmit) { _PositionApplication.Status = RequestStatus.Submit; DiyStep currentStep = _PositionApplication.DiyProcess.FindFirstStep(); DiyStep nextStep = _PositionApplication.DiyProcess.FindSecondStep(); _PositionApplication.NextStep = nextStep; _PositionApplicationDal.UpdatePositionApplication(_PositionApplication); PositionApplicationFlow flow = new PositionApplicationFlow(0, _PositionApplication.PKID, _PositionApplication.Account, DateTime.Now, RequestStatus.Submit, "", _PositionApplication); _PositionApplicationDal.InsertPositionApplicationFlow(flow); List <string> accounts = new GetDiyProcess(_DalEmployeeDiyProcess).GetAccountMailListByDiyProcessIDAccountID( currentStep, _PositionApplication.Account.Id); new PositionApplicationMailAndPhoneDelegate().SubmitOperation(_PositionApplication.PKID, accounts, nextStep); } else { _PositionApplication.Status = RequestStatus.New; _PositionApplication.NextStep = _PositionApplication.DiyProcess.FindFirstStep(); _PositionApplicationDal.UpdatePositionApplication(_PositionApplication); } ts.Complete(); } } catch { HrmisUtility.ThrowException(HrmisUtility._DbError); } }
private List <DiyStep> CollerctDiySteps() { switch (_ItsView.ProcessType.Id) { //外出申请流程 case 1: //加班申请流程 case 2: List <DiyStep> iRet = new List <DiyStep>(); for (int i = 0; i < _ItsView.DiyStepList.Count - 1; i++) { DiyStep step = new DiyStep(_ItsView.DiyStepList[i].DiyStepID, _ItsView.DiyStepList[i].Status, _ItsView.DiyStepList[i + 1].OperatorType, _ItsView.DiyStepList[i + 1].OperatorID); step.MailAccount = _ItsView.DiyStepList[i].MailAccount; iRet.Add(step); } DiyStep lasestep = new DiyStep(_ItsView.DiyStepList[_ItsView.DiyStepList.Count - 1].DiyStepID, _ItsView.DiyStepList[_ItsView.DiyStepList.Count - 1].Status, new OperatorType(0, ""), 0); lasestep.MailAccount = _ItsView.DiyStepList[_ItsView.DiyStepList.Count - 1].MailAccount; iRet.Add(lasestep); return(iRet); //请假流程 case 0: //考评流程 case 3: //人事负责人 case 4: //报销流程 case 5: //培训申请流程 case 6: return(_ItsView.DiyStepList); default: return(new List <DiyStep>()); } }