Exemple #1
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);
        }
        /// <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>
        /// 通过帐号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>
        /// 获得所有待审核的请假单
        /// </summary>
        /// <returns></returns>
        public List <LeaveRequest> GetConfirmLeaveRequest()
        {
            List <LeaveRequest> LeaveRequestList = new List <LeaveRequest>();
            SqlCommand          cmd = new SqlCommand();

            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetConfirmLeaveRequest", cmd))
            {
                while (sdr.Read())
                {
                    LeaveRequest leaveRequest = new LeaveRequest();
                    leaveRequest.PKID       = Convert.ToInt32(sdr[_DBPKID]);
                    leaveRequest.Reason     = sdr[_DBReason].ToString();
                    leaveRequest.SubmitDate = (DateTime)sdr[_DBSubmitDate];
                    leaveRequest.Account    = new Account((int)sdr[_DBAccountID], "", "");
                    leaveRequest.FromDate   = (DateTime)sdr[_DBFromDate];
                    leaveRequest.ToDate     = (DateTime)sdr[_DBToDate];
                    leaveRequest.CostTime   = Convert.ToDecimal(sdr[_DBCostTime]);
                    LegalHoliday legalHoliday;
                    if ((int)sdr[_DBLeaveRequestTypeIncludeNationalHolidays] == 0)
                    {
                        legalHoliday = LegalHoliday.UnInclude;
                    }
                    else
                    {
                        legalHoliday = LegalHoliday.Include;
                    }
                    RestDay restDay;
                    if ((int)sdr[_DBLeaveRequestTypeIncludeRestDay] == 0)
                    {
                        restDay = RestDay.UnInclude;
                    }
                    else
                    {
                        restDay = RestDay.Include;
                    }
                    leaveRequest.LeaveRequestType =
                        new LeaveRequestType((int)sdr[_DBLeaveRequestTypeID], sdr[_DBLeaveRequestTypeName].ToString(),
                                             sdr[_DBLeaveRequestTypeDescription].ToString(),
                                             legalHoliday, restDay,
                                             (decimal)sdr[_DBLeaveRequestTypeLeastHour]);

                    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(leaveRequest.PKID, leaveRequest.DiyProcess);
                    LeaveRequestList.Add(leaveRequest);
                }
            }
            return(LeaveRequestList);
        }