Exemplo n.º 1
0
        /// <summary>
        /// 获得员工AccountID的人事负责人
        /// </summary>
        /// <param name="accountId"></param>
        /// <returns></returns>
        public List <Account> GetHRPrincipalByAccountID(int accountId)
        {
            List <Account> retList            = new List <Account>();
            DiyProcess     processHRPrincipal =
                _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.HRPrincipal, accountId);

            if (processHRPrincipal == null || processHRPrincipal.DiySteps == null)
            {
                return(retList);
            }
            foreach (DiyStep diystep in processHRPrincipal.DiySteps)
            {
                if (diystep.MailAccount == null)
                {
                    continue;
                }
                foreach (Account account in diystep.MailAccount)
                {
                    Account accounttemp = _IAccountBll.GetAccountById(account.Id);
                    if (accounttemp == null)
                    {
                        continue;
                    }
                    retList.Add(accounttemp);
                }
            }
            return(retList);
        }
        public void OKEvent(object source, EventArgs e)
        {
            DiyProcessValidater diyProcessValidater = new DiyProcessValidater(_ItsView);

            if (diyProcessValidater.Vaildate())
            {
                try
                {
                    _ItsView.ResultMessage = string.Empty;
                    DiyProcessDataCollector dataCollector = new DiyProcessDataCollector(_ItsView);
                    DiyProcess diyProcess = new DiyProcess();
                    dataCollector.CompleteTheObject(ref diyProcess);

                    _IDiyProcessFacade.UpdateDiyProcess(diyProcess);

                    GoToListPage();
                }
                catch (Exception ex)
                {
                    _ItsView.ResultMessage =
                        //"&nbsp;&nbsp;&nbsp;<img src='../../image/icon03.jpg' align='absmiddle'' />&nbsp;&nbsp;&nbsp;<span class='fontred'>" +
                        ex.Message;// +"</span>";
                }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 新增自定义流程
        /// </summary>
        /// <param name="diyProcess"></param>
        /// <returns></returns>
        public int InsertDiyProcess(DiyProcess diyProcess)
        {
            SqlConnection _Conn = new SqlConnection(SqlHelper._ConnectionStringProfile);

            _Conn.Open();
            SqlTransaction _Trans = _Conn.BeginTransaction(IsolationLevel.ReadUncommitted);
            int            pkid;

            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Parameters.Add(_Name, SqlDbType.NVarChar, 50).Value = diyProcess.Name;
                cmd.Parameters.Add(_Type, SqlDbType.Int).Value          = diyProcess.Type.Id;
                cmd.Parameters.Add(_Remark, SqlDbType.Text).Value       = diyProcess.Remark;
                cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction      = ParameterDirection.Output;
                SqlHelper.ExecuteNonQueryReturnPKID("InsertDiyProcess", cmd, out pkid);
                //循环新增每一个项
                for (int i = 0; i < diyProcess.DiySteps.Count; i++)
                {
                    InsertDiySteps(pkid, diyProcess.DiySteps[i], _Conn, _Trans);
                }
                _Trans.Commit();
            }
            catch
            {
                _Trans.Rollback();
                throw;
            }
            finally
            {
                _Conn.Close();
            }

            return(pkid);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 将DiyProcess对象转化为字符串
        /// </summary>
        public static string ConvertToString(DiyProcess process)
        {
            string strProcess = String.Empty;

            if (process == null || process.DiySteps == null || process.DiySteps.Count == 0)
            {
                return(strProcess);
            }

            foreach (DiyStep step in process.DiySteps)
            {
                strProcess +=
                    step.DiyStepID + "|" +
                    step.Status + "|" +
                    step.OperatorType.Id + "|" +
                    step.OperatorID + "|";

                foreach (Account account in step.MailAccount)
                {
                    strProcess += account.Id + ",";
                }

                strProcess += ";";
            }
            if (strProcess.Length > 0)
            {
                strProcess = strProcess.Substring(0, strProcess.Length - 1);
            }

            return(strProcess);
        }
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="employee"></param>
        ///// <returns></returns>
        //public int InsertEmployeeDiyProcess(Employee employee)
        //{
        //    SqlConnection _Conn = new SqlConnection(SqlHelper._ConnectionStringProfile);
        //    _Conn.Open();
        //    SqlTransaction _Trans = _Conn.BeginTransaction(IsolationLevel.ReadUncommitted);
        //    int pkid;
        //    try
        //    {
        //        SqlCommand cmd = new SqlCommand();
        //        cmd.Parameters.Add(_Type, SqlDbType.Int).Value = employee.DiyProcessList[0].Type.Id;
        //        cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = employee.Account.Id;
        //        SqlHelper.ExecuteNonQuery("DeleteEmployeeDiyProcessByAccountIDAndType", cmd);

        //        cmd = new SqlCommand();
        //        cmd.Parameters.Add(_DiyProcessID, SqlDbType.Int).Value = employee.DiyProcessList[0].ID;
        //        cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = employee.Account.Id;
        //        cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction = ParameterDirection.Output;
        //        SqlHelper.ExecuteNonQueryReturnPKID("InsertEmployeeDiyProcess", cmd, out pkid);

        //        _Trans.Commit();
        //    }
        //    catch
        //    {
        //        _Trans.Rollback();
        //        throw;
        //    }
        //    finally
        //    {
        //        _Conn.Close();
        //    }

        //    return pkid;
        //}

        ///<summary>
        ///</summary>
        ///<param name="accountID"></param>
        ///<param name="diyProcess"></param>
        ///<returns></returns>
        public int InsertEmployeeDiyProcess(int accountID, DiyProcess diyProcess)
        {
            SqlConnection _Conn = new SqlConnection(SqlHelper._ConnectionStringProfile);

            _Conn.Open();
            SqlTransaction _Trans = _Conn.BeginTransaction(IsolationLevel.ReadUncommitted);
            int            pkid;

            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Parameters.Add(_Type, SqlDbType.Int).Value      = diyProcess.Type.Id;
                cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = accountID;
                SqlHelper.ExecuteNonQuery("DeleteEmployeeDiyProcessByAccountIDAndType", cmd);

                cmd = new SqlCommand();
                cmd.Parameters.Add(_DiyProcessID, SqlDbType.Int).Value = diyProcess.ID;
                cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value    = accountID;
                cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction     = ParameterDirection.Output;
                SqlHelper.ExecuteNonQueryReturnPKID("InsertEmployeeDiyProcess", cmd, out pkid);

                _Trans.Commit();
            }
            catch
            {
                _Trans.Rollback();
                throw;
            }
            finally
            {
                _Conn.Close();
            }

            return(pkid);
        }
Exemplo n.º 6
0
 private static void AddInsertParameters(SqlCommand cm, PositionApplication positionApplication)
 {
     cm.Parameters.AddWithValue("@Applicant", positionApplication.Account.Id);
     cm.Parameters.AddWithValue("@IsPublish", positionApplication.IsPublish);
     cm.Parameters.AddWithValue("@Type", positionApplication.Type.Id);
     cm.Parameters.AddWithValue("@Status", positionApplication.Status.Id);
     cm.Parameters.AddWithValue("@NextStep", positionApplication.NextStep.DiyStepID);
     cm.Parameters.AddWithValue("@DiyProcess", DiyProcess.ConvertToString(positionApplication.DiyProcess));
     cm.Parameters.AddWithValue("@PositionID", positionApplication.Position.Id);
     cm.Parameters.AddWithValue("@PositionName", positionApplication.Position.Name);
     cm.Parameters.AddWithValue("@PositionDescription", positionApplication.Position.Description);
     cm.Parameters.AddWithValue("@LevelId", positionApplication.Position.Grade.Id);
     cm.Parameters.AddWithValue("@Summary", positionApplication.Position.Summary);
     cm.Parameters.AddWithValue("@MainDuties", positionApplication.Position.MainDuties);
     cm.Parameters.AddWithValue("@ReportScope", positionApplication.Position.ReportScope);
     cm.Parameters.AddWithValue("@ControlScope", positionApplication.Position.ControlScope);
     cm.Parameters.AddWithValue("@Coordination", positionApplication.Position.Coordination);
     cm.Parameters.AddWithValue("@Authority", positionApplication.Position.Authority);
     cm.Parameters.AddWithValue("@Education", positionApplication.Position.Education);
     cm.Parameters.AddWithValue("@ProfessionalBackground", positionApplication.Position.ProfessionalBackground);
     cm.Parameters.AddWithValue("@WorkExperience", positionApplication.Position.WorkExperience);
     cm.Parameters.AddWithValue("@Qualification", positionApplication.Position.Qualification);
     cm.Parameters.AddWithValue("@Competence", positionApplication.Position.Competence);
     cm.Parameters.AddWithValue("@OtherRequirements", positionApplication.Position.OtherRequirements);
     cm.Parameters.AddWithValue("@KnowledgeAndSkills", positionApplication.Position.KnowledgeAndSkills);
     cm.Parameters.AddWithValue("@RelatedProcesses", positionApplication.Position.RelatedProcesses);
     cm.Parameters.AddWithValue("@ManagementSkills", positionApplication.Position.ManagementSkills);
     cm.Parameters.AddWithValue("@AuxiliarySkills", positionApplication.Position.AuxiliarySkills);
 }
Exemplo n.º 7
0
        private static PositionApplication FetchObject(IDataRecord sdr)
        {
            PositionApplication positionApplication = new PositionApplication();

            positionApplication.PKID       = (int)sdr["PKID"];
            positionApplication.Account    = new Account((int)sdr["Applicant"], "", "");
            positionApplication.IsPublish  = (int)sdr["IsPublish"];
            positionApplication.Type       = AppType.FindAppType((int)sdr["Type"]);
            positionApplication.Status     = RequestStatus.FindRequestStatus((int)sdr["Status"]);
            positionApplication.NextStep   = new DiyStep((int)sdr["NextStep"]);
            positionApplication.DiyProcess = DiyProcess.ConvertToObject(sdr["DiyProcess"].ToString());
            positionApplication.Position   = new Position((int)sdr["PositionID"], sdr["PositionName"].ToString(),
                                                          new PositionGrade((int)sdr["LevelId"], "", ""));
            positionApplication.Position.Description            = sdr["PositionDescription"].ToString();
            positionApplication.Position.Summary                = sdr["Summary"].ToString();
            positionApplication.Position.MainDuties             = sdr["MainDuties"].ToString();
            positionApplication.Position.ReportScope            = sdr["ReportScope"].ToString();
            positionApplication.Position.ControlScope           = sdr["ControlScope"].ToString();
            positionApplication.Position.Coordination           = sdr["Coordination"].ToString();
            positionApplication.Position.Authority              = sdr["Authority"].ToString();
            positionApplication.Position.Education              = sdr["Education"].ToString();
            positionApplication.Position.ProfessionalBackground = sdr["ProfessionalBackground"].ToString();
            positionApplication.Position.WorkExperience         = sdr["WorkExperience"].ToString();
            positionApplication.Position.Qualification          = sdr["Qualification"].ToString();
            positionApplication.Position.Competence             = sdr["Competence"].ToString();
            positionApplication.Position.OtherRequirements      = sdr["OtherRequirements"].ToString();
            positionApplication.Position.KnowledgeAndSkills     = sdr["KnowledgeAndSkills"].ToString();
            positionApplication.Position.RelatedProcesses       = sdr["RelatedProcesses"].ToString();
            positionApplication.Position.ManagementSkills       = sdr["ManagementSkills"].ToString();
            positionApplication.Position.AuxiliarySkills        = sdr["AuxiliarySkills"].ToString();
            return(positionApplication);
        }
Exemplo n.º 8
0
        /// <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);
        }
Exemplo n.º 9
0
        /// <summary>
        /// 获取某人流程中的详细步骤
        /// </summary>
        /// <param name="accountId">员工id</param>
        /// <param name="DiyprocessId">diy流程id</param>
        /// <returns></returns>
        public string GetDiyProcessStepString(int accountId, int DiyprocessId)
        {
            DiyProcess    process = _DiyProcessDal.GetDiyProcessByPKID(DiyprocessId);
            Account       account = _IAccountBll.GetAccountById(accountId);
            StringBuilder steps   = new StringBuilder();

            if (process != null)
            {
                if (process.DiySteps != null)
                {
                    if (process.Type.Id.Equals(ProcessType.ApplicationTypeOut.Id) ||
                        process.Type.Id.Equals(ProcessType.ApplicationTypeOverTime.Id))
                    {
                        return(steps.Append(GetOutAndOverWorkOperator(process, account)).ToString());
                    }
                    if (process.Type.Id.Equals(ProcessType.HRPrincipal.Id))
                    {
                        foreach (DiyStep step in process.DiySteps)
                        {
                            steps.Append(GetHRPrincipalProcessString(step));
                            steps.Append(";");
                        }
                        return(steps.ToString());
                    }

                    foreach (DiyStep step in process.DiySteps)
                    {
                        steps.Append(GetStepOperator(account, step));
                        steps.Append(";");
                    }
                    return(steps.ToString());
                }
            }
            return(steps.ToString());
        }
Exemplo n.º 10
0
        ///<summary>
        ///</summary>
        public static string DiyProcessToString(DiyProcess diyProcess)
        {
            StringBuilder processtext = new StringBuilder();

            if (diyProcess != null && diyProcess.DiySteps != null)
            {
                foreach (DiyStep step in diyProcess.DiySteps)
                {
                    processtext.Append(step.DiyStepID);
                    processtext.Append("|");
                    processtext.Append(step.Status);
                    processtext.Append("|");
                    processtext.Append(step.OperatorType.Id);
                    processtext.Append("|");
                    processtext.Append(step.OperatorID);
                    processtext.Append("|");

                    foreach (Account account in step.MailAccount)
                    {
                        processtext.Append(account.Id);
                        processtext.Append(",");
                    }

                    processtext.Append(";");
                }
            }
            return(processtext.ToString());
        }
Exemplo n.º 11
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);
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// </summary>
        public int GetNextStep(int step, DiyProcess diyprocess)
        {
            DiyProcess diyProcess = diyprocess;

            if (step >= diyProcess.DiySteps.Count)
            {
                step = -1;
            }
            return(step);
        }
Exemplo n.º 13
0
 public void CompleteTheObject(ref DiyProcess theObjectToComplete)
 {
     theObjectToComplete    = new DiyProcess();
     theObjectToComplete.ID = string.IsNullOrEmpty(_ItsView.DiyProcessID)
                                    ? 0
                                    : Convert.ToInt32(_ItsView.DiyProcessID);
     theObjectToComplete.Name     = _ItsView.Name;
     theObjectToComplete.Remark   = _ItsView.Remark;
     theObjectToComplete.Type     = _ItsView.ProcessType;
     theObjectToComplete.DiySteps = CollerctDiySteps();
 }
Exemplo n.º 14
0
        public bool DataBind(int diyProcessID)
        {
            DiyProcess theDataToBind = _IDiyProcessFacade.GetDiyProcessByPKID(diyProcessID);

            if (theDataToBind != null)
            {
                _ItsView.DiyProcessID = theDataToBind.ID.ToString();
                _ItsView.Name         = theDataToBind.Name;
                _ItsView.Remark       = theDataToBind.Remark;
                _ItsView.ProcessType  = theDataToBind.Type;
                return(true);
            }
            return(false);
        }
Exemplo n.º 15
0
        /// <summary>
        /// 根据PKID获取自定义流程
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public DiyProcess GetDiyProcessByPKID(int id)
        {
            DiyProcess iRet = _DiyProcessDal.GetDiyProcessByPKID(id);

            if (iRet != null && iRet.DiySteps != null)
            {
                for (int i = 0; i < iRet.DiySteps.Count; i++)
                {
                    for (int j = 0; j < iRet.DiySteps[i].MailAccount.Count; j++)
                    {
                        iRet.DiySteps[i].MailAccount[j] =
                            _IAccountBll.GetAccountById(iRet.DiySteps[i].MailAccount[j].Id);
                    }
                }
            }
            return(iRet);
        }
        /// <summary>
        /// 给要抄送的人发邮件,主要是人事,所以,在整个外出单审核结束后发送
        /// </summary>
        private List <string> SendMailToMailCC()
        {
            DiyProcess    diyProcess = _TraineeApplication.TraineeApplicationDiyProcess;
            List <string> mailToList = new List <string>();

            foreach (Account account in diyProcess.DiySteps[diyProcess.DiySteps.Count - 1].MailAccount)
            {
                Account innaccount = _AccountBll.GetAccountById(account.Id);
                mailToList.AddRange(TraineeApplicationUtility.GetMail(innaccount));
            }
            foreach (Account account in _TraineeApplication.CurrentStep.MailAccount)
            {
                Account innaccount = _AccountBll.GetAccountById(account.Id);
                mailToList.AddRange(TraineeApplicationUtility.GetMail(innaccount));
            }
            return(mailToList);
        }
Exemplo n.º 17
0
        public bool DataBindDiyStepList(int diyProcessID)
        {
            DiyProcess theDataToBind = _IDiyProcessFacade.GetDiyProcessByPKID(diyProcessID);

            if (theDataToBind != null)
            {
                for (int i = 0; i < theDataToBind.DiySteps.Count; i++)
                {
                    theDataToBind.DiySteps[i].IfSystem = (theDataToBind.DiySteps[i].Status == "提交") ||
                                                         (theDataToBind.DiySteps[i].Status == "取消") ||
                                                         (theDataToBind.DiySteps[i].Status == "发信");
                }
                _ItsView.DiyStepList = CollerctDiySteps(theDataToBind.DiySteps);
                return(true);
            }
            return(false);
        }
Exemplo n.º 18
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);
        }
Exemplo n.º 19
0
        /// <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);
        }
Exemplo n.º 20
0
        ///<summary>
        /// 根据自定义流程类型获取自定义流程
        ///</summary>
        ///<param name="processTypeId"></param>
        ///<returns></returns>
        public List <DiyProcess> GetDiyProcessByProcessType(int processTypeId)
        {
            List <DiyProcess> diyProcesses = new List <DiyProcess>();
            SqlCommand        cmd          = new SqlCommand();

            cmd.Parameters.Add(_Type, SqlDbType.Int).Value = processTypeId;

            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetDiyProcessByProcessType", cmd))
            {
                while (sdr.Read())
                {
                    DiyProcess diyProcess =
                        new DiyProcess((int)sdr[_DBPKID], sdr[_DBName].ToString(), sdr[_DBRemark].ToString(),
                                       new ProcessType((int)sdr[_DBType],
                                                       ProcessType.FindProcessTypeByID((int)sdr[_DBType])));
                    diyProcesses.Add(diyProcess);
                }
            }

            return(diyProcesses);
        }
Exemplo n.º 21
0
        /// <summary>
        /// 收集所选的diy流程数据
        /// </summary>
        private void HandleDiyProcess()
        {
            _TheEmployeeToComplete.DiyProcessList = new List <DiyProcess>();
            DiyProcess leaveRequest = new DiyProcess(_ItsView.leaveProcessId, string.Empty, string.Empty,
                                                     ProcessType.LeaveRequest);
            DiyProcess outProcess      = new DiyProcess(_ItsView.outProcessId, string.Empty, string.Empty, ProcessType.ApplicationTypeOut);
            DiyProcess overTimeProcess = new DiyProcess(_ItsView.OverTimeProcessId, string.Empty, string.Empty, ProcessType.ApplicationTypeOverTime);
            DiyProcess asseseeProcess  = new DiyProcess(_ItsView.AssessProcessId, string.Empty, string.Empty, ProcessType.Assess);
            DiyProcess hrPrincipal     = new DiyProcess(_ItsView.HRPrincipalProcessId, string.Empty, string.Empty, ProcessType.HRPrincipal);
            //DiyProcess reimburse = new DiyProcess(_ItsView.ReimburseProcessId, string.Empty, string.Empty, ProcessType.Reimburse);
            DiyProcess traineeApplicationProcess =
                new DiyProcess(_ItsView.TraineeApplicationProcessId, string.Empty, string.Empty, ProcessType.TraineeApplication);

            _TheEmployeeToComplete.DiyProcessList.Add(leaveRequest);
            _TheEmployeeToComplete.DiyProcessList.Add(outProcess);
            _TheEmployeeToComplete.DiyProcessList.Add(overTimeProcess);
            _TheEmployeeToComplete.DiyProcessList.Add(asseseeProcess);
            _TheEmployeeToComplete.DiyProcessList.Add(hrPrincipal);
            //_TheEmployeeToComplete.DiyProcessList.Add(reimburse);
            _TheEmployeeToComplete.DiyProcessList.Add(traineeApplicationProcess);
        }
Exemplo n.º 22
0
        /// <summary>
        /// 根据自定义流程
        /// </summary>
        /// <param name="diyProcessID"></param>
        /// <returns></returns>
        public DiyProcess GetDiyProcessByPKID(int diyProcessID)
        {
            DiyProcess diyProcess = null;
            SqlCommand cmd        = new SqlCommand();

            cmd.Parameters.Add(_PKID, SqlDbType.Int).Value = diyProcessID;

            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetDiyProcessByPKID", cmd))
            {
                while (sdr.Read())
                {
                    diyProcess =
                        new DiyProcess((int)sdr[_DBPKID], sdr[_DBName].ToString(), sdr[_DBRemark].ToString(),
                                       new ProcessType((int)sdr[_DBType],
                                                       ProcessType.FindProcessTypeByID((int)sdr[_DBType])));
                }
            }
            if (diyProcess != null)
            {
                diyProcess.DiySteps = GetDiyStepsByDiyProcessID(diyProcessID);
            }
            return(diyProcess);
        }
Exemplo n.º 23
0
        /// <summary>
        /// </summary>
        public bool CanChangeAdjust(DiyProcess diyProcess, OutApplicationItem item)
        {
            if (item.Status.Id == RequestStatus.Cancelled.Id || item.Status.Id == RequestStatus.CancelApproving.Id)
            {
                return(false);
            }
            List <OutApplicationFlow> flowList = item.OutApplicationFlow;

            if (flowList != null && diyProcess != null && diyProcess.DiySteps != null && flowList.Count > 0)
            {
                int step = flowList[flowList.Count - 1].Step;
                if (step == -1)
                {
                    return(false);
                }
                int nowStep = step + 1;
                if (diyProcess.DiySteps[nowStep - 1].Status.Contains("Еїан"))
                {
                    return(true);
                }
            }
            return(false);
        }
Exemplo n.º 24
0
        /// <summary>
        ///
        /// </summary>
        public Account GetNextOperator(DiyProcess diyProcess, int nowStep, int accountId)
        {
            if (nowStep == -1)
            {
                return(null);
            }
            Account retAccount;

            if (nowStep >= diyProcess.DiySteps.Count)
            {
                return(null);
            }
            DiyStep diystep = diyProcess.DiySteps[nowStep - 1];

            if (diystep.OperatorID > 0)
            {
                retAccount = _AccountBll.GetAccountById(diystep.OperatorID);
            }
            else
            {
                retAccount = GetAccountByOperatorType(diystep.OperatorType, accountId);
            }
            return(retAccount);
        }
Exemplo n.º 25
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);
        }
Exemplo n.º 26
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="diyProcess"></param>
        /// <param name="item"></param>
        /// <param name="accountId">谁都流程</param>
        /// <returns></returns>
        public Account GetNextOperator(DiyProcess diyProcess, OutApplicationItem item, int accountId)
        {
            int nowStep = item.OutApplicationFlow[item.OutApplicationFlow.Count - 1].Step;

            return(_RequestFindOperator.GetNextOperator(diyProcess, nowStep, accountId));
        }
Exemplo n.º 27
0
 /// <summary>
 ///
 /// </summary>
 public List <Account> GetLastMailCC(DiyProcess diyprocess)
 {
     return(diyprocess.DiySteps[diyprocess.DiySteps.Count - 1].MailAccount);
 }
Exemplo n.º 28
0
        /// <summary>
        ///
        /// </summary>
        public List <Account> GetMailCC(List <OutApplicationFlow> flowList, DiyProcess diyprocess)
        {
            int step = flowList[flowList.Count - 1].Step;

            return(diyprocess.DiySteps[step - 1].MailAccount);
        }
Exemplo n.º 29
0
        /// <summary>
        /// </summary>
        public int GetNextStep(List <OutApplicationFlow> flowList, DiyProcess diyprocess)
        {
            int step = flowList[flowList.Count - 1].Step + 1;

            return(_RequestFindOperator.GetNextStep(step, diyprocess));
        }
Exemplo n.º 30
0
 /// <summary>
 /// 得到当前这部的下一步审核人
 /// </summary>
 public Account GetNextOperator(DiyProcess diyProcess, int step, int accountId)
 {
     return(_RequestFindOperator.GetNextOperator(diyProcess, step, accountId));
 }