Пример #1
0
 protected override void Validation()
 {
     if (_IEmployee.CountEmployeeByNationalityID(_NationalityID) > 0)
     {
         HrmisUtility.ThrowException(HrmisUtility._Nationality_HasBeenUsed);
     }
 }
        protected override void ExcuteSelf()
        {
            IContract iContract = new ContractDal();
            GetEmployee getEmployee = new GetEmployee();
            List<Employee> employeeList = new List<Employee>();
            employeeList.AddRange(
                getEmployee.GetEmployeeBasicInfoByBasicCondition(_EmployeeName, EmployeeTypeEnum.NormalEmployee, -1,
                                                                 _DepartmentID,
                                                                 true,-1));
            employeeList.AddRange(
                getEmployee.GetEmployeeBasicInfoByBasicCondition(_EmployeeName, EmployeeTypeEnum.ProbationEmployee, -1,
                                                                 _DepartmentID,
                                                                 true,-1));
            employeeList.AddRange(
                getEmployee.GetEmployeeBasicInfoByBasicCondition(_EmployeeName, EmployeeTypeEnum.BorrowedEmployee, -1,
                                                                 _DepartmentID,
                                                                 true,-1));
            employeeList.AddRange(
                getEmployee.GetEmployeeBasicInfoByBasicCondition(_EmployeeName, EmployeeTypeEnum.PartTimeEmployee, -1,
                                                                 _DepartmentID,
                                                                 true,-1));
            employeeList.AddRange(
                getEmployee.GetEmployeeBasicInfoByBasicCondition(_EmployeeName, EmployeeTypeEnum.PracticeEmployee, -1,
                                                                 _DepartmentID,
                                                                 true,-1));
            employeeList.AddRange(
                getEmployee.GetEmployeeBasicInfoByBasicCondition(_EmployeeName, EmployeeTypeEnum.Retirement, -1,
                                                                 _DepartmentID,
                                                                 true,-1));
            employeeList.AddRange(
                getEmployee.GetEmployeeBasicInfoByBasicCondition(_EmployeeName, EmployeeTypeEnum.RetirementHire, -1,
                                                                 _DepartmentID,
                                                                 true,-1));
            employeeList.AddRange(
                getEmployee.GetEmployeeBasicInfoByBasicCondition(_EmployeeName, EmployeeTypeEnum.WorkEmployee, -1,
                                                                 _DepartmentID,
                                                                 true,-1));
            employeeList = HrmisUtility.RemoteUnAuthEmployee(employeeList, AuthType.HRMIS, _Account, _Powers);
            foreach (Employee employee in employeeList)
            {

                string description = string.Empty;
                Contract contract = iContract.GetLastContractInAllTypeByAccountID(employee.Account.Id, _CurrentDate);
                if (contract == null)
                {
                    description = string.Format("{0}目前没有合同信息", employee.Account.Name);
                }
                if (string.IsNullOrEmpty(description))
                {
                    continue;
                }
                SystemError error = new SystemError(description, ErrorType.EmployeeContractError, employee.Account.Id);
                error.ErrorEmployee = employee;
                error.EditUrl =
                    string.Format("{0}employeeID={1}",
                                  ErrorType.EmployeeContractError.EditPageUrl,
                                  SecurityUtil.DECEncrypt(employee.Account.Id.ToString()));
                _SystemErrorList.Add(error);
            }
        }
Пример #3
0
 protected override void Validation()
 {
     if (_LeaveRequestTypeDal.GetLeaveRequestTypeByName(_LeaveRequestType.Name) != null)
     {
         HrmisUtility.ThrowException(HrmisUtility._LeaveRequestType_Name_Repeat);
     }
 }
Пример #4
0
        protected override void ExcuteSelf()
        {
            try
            {
                _OverWork.DiyProcess = _OverWorkDiyProcessUtility.GetOverWorkDiyProcessByAccountID(_OverWork.Account.Id);
                using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
                {
                    int _CurrentId = _OverWorkDal.InsertOverWork(_OverWork);
                    _OverWork.PKID = _CurrentId;
                    if (_OverWork.Item != null)
                    {
                        foreach (OverWorkItem item in _OverWork.Item)
                        {
                            item.AdjustHour =
                                new UpdateAdjustRestByOverWork(item, _OverWork.Account.Id).GetItemAdjustHour();
                            int itemid = _OverWorkDal.InsertOverWorkItem(_CurrentId, item);

                            if (item.Status == RequestStatus.Submit)
                            {
                                OverWorkFlow flow =
                                    new OverWorkFlow(0, _OverWork.Account, _OverWork.SubmitDate, _OverWork.Reason,
                                                     item.Status, 1);
                                _OverWorkDal.InsertOverWorkFlow(itemid, flow);
                            }
                        }
                    }
                    ts.Complete();
                }
            }
            catch
            {
                HrmisUtility.ThrowException(HrmisUtility._DbError);
            }
            new OverWorkMailAndPhoneDelegate().SubmitOperation(_OverWork.PKID, _CCList);
        }
Пример #5
0
 protected override void Validation()
 {
     if (_EmployeeAdjustRuleDal.CountAdjustRuleUsedByAdjustRuleID(_AdjustRuleID) > 0)
     {
         HrmisUtility.ThrowException(HrmisUtility._AdjustRule_Used);
     }
 }
Пример #6
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);
            }
        }
Пример #7
0
 protected override void Validation()
 {
     if (_IEmployeeDiyProcessDal.CountAccountByDiyProcessID(_DiyProcessID) > 0)
     {
         HrmisUtility.ThrowException(HrmisUtility._DiyProcess_Used);
     }
 }
Пример #8
0
 protected override void Validation()
 {
     if (_AdjustRuleDal.CountAdjustRuleByNameDiffPKID(_AdjustRule.AdjustRuleName, 0) > 0)
     {
         HrmisUtility.ThrowException(HrmisUtility._AdjustRule_Name_Repeat);
     }
 }
Пример #9
0
 private void Validation()
 {
     if (_VacationList == null || _VacationList.Count <= 0)
     {
         HrmisUtility.ThrowException("没有年假");
     }
 }
        /// <summary>
        /// </summary>
        protected override void ExcuteSelf()
        {
            try
            {
                List <Account> nextOperators = new List <Account>();
                foreach (OutApplicationItem item in _OutApplication.Item)
                {
                    Account nextOperator;
                    bool    ans =
                        ApproveOutApplicationItem.ApproveOneItem(item, _IsAgree, _Account, _OutApplication, _Remark,
                                                                 _DalOutApplication, _OutDiyProcess, item.Adjust, false, item.AdjustHour, out nextOperator);

                    if (ans)
                    {
                        new OutMailAndPhoneDelegate().ConfirmOperation(_OutApplication.PKID, item.ItemID, nextOperator,
                                                                       _Account);
                        if (!RequestUtility.ContinsAccount(nextOperators, nextOperator))
                        {
                            nextOperators.Add(nextOperator);
                        }
                    }
                }
                foreach (Account account in nextOperators)
                {
                    new OutMailAndPhoneDelegate().ConfirmOperationMail(_OutApplication.PKID, account, _Account);
                }
            }
            catch
            {
                HrmisUtility.ThrowException(HrmisUtility._DbError);
            }
        }
Пример #11
0
        /// <summary>
        /// 根据员工ID和时间获取员工工资历史
        /// </summary>
        /// <param name="employeeID"></param>
        /// <param name="dt"></param>
        /// <returns></returns>
        public EmployeeSalaryHistory GetEmployeeSalaryHistoryByEmployeeIdAndDateTime(int employeeID, DateTime dt)
        {
            //DateTime temp = Convert.ToDateTime(dt.Year + "-" + dt.Month);
            DateTime temp = new HrmisUtility().StartMonthByYearMonth(dt);

            return(_DalEmployeeSalary.GetEmployeeSalaryHistoryByEmployeeIdAndDateTime(employeeID, temp));
        }
Пример #12
0
 /// <summary>
 ///
 /// </summary>
 protected override void Validation()
 {
     _PositionApplication = _PositionApplicationDal.GetPositionApplicationByPKID(_PositionApplicationID);
     //判断信息是否为空
     if (_PositionApplication == null)
     {
         HrmisUtility.ThrowException(HrmisUtility._PositionApplication_Not_Exit);
     }
     else
     {
         //判断该账号是否有流程
         _PositionApplication.DiyProcess =
             _DalEmployeeDiyProcess.GetDiyProcessByProcessTypeAndAccountID(ProcessType.PositionApp,
                                                                           _PositionApplication.Account.Id);
         if (_PositionApplication.DiyProcess == null)
         {
             HrmisUtility.ThrowException(HrmisUtility._No_PositionApplication_DiyProcess);
         }
         //如果信息状态不是取消或提交状态,不能取消
         if (!RequestStatus.CanCancelStatus(_PositionApplication.Status))
         {
             HrmisUtility.ThrowException(HrmisUtility._PositionApplication_CanNot_BeCancled);
         }
     }
 }
Пример #13
0
 protected override void Validation()
 {
     if (_OldOutApplication == null)
     {
         HrmisUtility.ThrowException(HrmisUtility._OutApplication_Not_Exit);
     }
     if (_OutApplication.OutType.ID == OutType.OutCity.ID)
     {
         if (new GetEmployeeAdjustRule().GetAdjustRuleByAccountID(_OutApplication.Account.Id) == null)
         {
             HrmisUtility.ThrowException(HrmisUtility._Employee_NotHave_AdjustRule);
         }
     }
     _OutApplication.DiyProcess =
         _OutDiyProcessUtility.GetOutDiyProcessByAccountID(_OutApplication.Account.Id);
     if (_OutApplication.DiyProcess == null)
     {
         HrmisUtility.ThrowException(HrmisUtility._No_OutApplication_DiyProcess);
     }
     foreach (OutApplicationItem item in _OutApplication.Item)
     {
         if (item.CostTime == 0)
         {
             HrmisUtility.ThrowException(HrmisUtility._OutApplicationItem_CanNot_Zero);
         }
     }
     new ValidateRequestItemRepeat(_OutApplication, false).Excute();
 }
        /// <summary>
        /// 统计某个时间段内的某个部门以及其所有子部门的员工的报销统计情况
        /// </summary>
        /// <param name="startDt">统计的开始时间</param>
        /// <param name="endDt">统计的结束时间</param>
        /// <param name="departmentID">统计的部门编号</param>
        /// <returns></returns>
        /// <param name="companyID"></param>
        /// <param name="employeeName"></param>
        /// <param name="loginUser"></param>
        public List <EmployeeReimburseStatistics> EmployeeStatistics(DateTime startDt, DateTime endDt,
                                                                     int departmentID, int companyID, string employeeName,
                                                                     Account loginUser)
        {
            List <EmployeeReimburseStatistics> iRet = new List <EmployeeReimburseStatistics>();

            List <Employee> EmployeeList =
                new GetEmployee().GetEmployeeByConditionForReimburseStatistics
                    (employeeName, companyID, -1, departmentID, true);

            if (departmentID == -1) //如果查全部员工需去掉没有查询权限的员工
            {
                EmployeeList =
                    HrmisUtility.RemoteUnAuthEmployee(EmployeeList, AuthType.HRMIS, loginUser, HrmisPowers.A903);
            }
            //构建返回的List
            foreach (Employee employee in EmployeeList)
            {
                EmployeeReimburseStatistics employeeReimburseStatistics = new EmployeeReimburseStatistics();
                employeeReimburseStatistics.Employee = employee;
                CalculateEmployeeReimburse(employeeReimburseStatistics, employee.Account.Id, startDt, endDt);
                iRet.Add(employeeReimburseStatistics);
            }
            iRet = AddTotleItem(iRet);
            CaculateSumEmployeeReimburseStatistics(iRet);
            return(iRet);
        }
Пример #15
0
 protected override void Validation()
 {
     if (_IParameter.CountNationalityByName(_Nationality.Name) > 0)
     {
         HrmisUtility.ThrowException(HrmisUtility._Nationality_Name_Repeat);
     }
 }
 protected override void Validation()
 {
     if (_IDiyProcessDal.CountDiyProcessByNameDiffPKID(_DiyProcess.ID, _DiyProcess.Name) > 0)
     {
         HrmisUtility.ThrowException(HrmisUtility._DiyProcess_Name_Repeat);
     }
 }
        private void Import(DataTable dt)
        {
            List <EmployeeWelfare> employeeWelfarelist = new List <EmployeeWelfare>();
            List <Employee>        employeeList        =
                new GetEmployee().GetEmployeeBasicInfoByBasicCondition("", EmployeeTypeEnum.All,
                                                                       -1, -1,
                                                                       true, -1);

            employeeList =
                HrmisUtility.RemoteUnAuthEmployee(employeeList, AuthType.HRMIS, _Operator, HrmisPowers.A605);
            if (employeeList != null)
            {
                foreach (Employee employee in employeeList)
                {
                    EmployeeWelfare welfare =
                        _DalEmployeeWelfare.GetEmployeeWelfareByAccountID(employee.Account.Id);
                    if (welfare == null)
                    {
                        welfare = EmployeeWelfare.EmptyWelfare();
                    }
                    welfare.Owner = employee.Account;
                    employeeWelfarelist.Add(welfare);
                }
            }
            ValueItemsAndSave(employeeWelfarelist, dt);
        }
Пример #18
0
 private void GetAttendanceInfo(Employee employee, MailBody mailBody)
 {
     try
     {
         string   resultmonth = string.Empty;
         DateTime startdate   = new HrmisUtility().StartMonthByYearMonth(_CurrDate);
         DateTime enddate     = new HrmisUtility().EndMonthByYearMonth(_CurrDate);
         Employee emp         =
             new GetEmployeeAttendanceStatistics().GetAllEmployeeAttendanceByCondition(employee.Account.Id,
                                                                                       startdate,
                                                                                       enddate);
         string color;
         for (int i = 0; startdate.Date.AddDays(i) <= enddate.Date; i++)
         {
             string retstring =
                 emp.EmployeeAttendance.SetDefaultWeek(emp, "", startdate.Date.AddDays(i), "#000000", out color);
             if (retstring.Contains("数据有误"))
             {
                 resultmonth += "<br />" + startdate.Date.AddDays(i) + "考勤异常:" + retstring;
             }
         }
         mailBody.Body += resultmonth;
     }
     catch
     {
     }
 }
Пример #19
0
 protected override void Validation()
 {
     if (_AdjustRule == null)
     {
         HrmisUtility.ThrowException(HrmisUtility._Employee_NotHave_AdjustRule);
     }
 }
        ///<summary>
        ///</summary>
        ///<param name="TraineeApplicationID"></param>
        ///<returns></returns>
        public TraineeApplication GetTraineeApplicationByTraineeApplicationID(int TraineeApplicationID)
        {
            TraineeApplication app = new TraineeApplication();
            SqlCommand         cmd = new SqlCommand();

            cmd.Parameters.Add(_PKID, SqlDbType.Int).Value = TraineeApplicationID;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetTrainApplicationByPKID", cmd))
            {
                while (sdr.Read())
                {
                    app.PKID                         = TraineeApplicationID;
                    app.CourseName                   = (sdr[_DBCourseName]).ToString();
                    app.Applicant                    = new Account();
                    app.Applicant.Id                 = Convert.ToInt32(sdr[_DBApplicationId]);
                    app.TrainType                    = TrainScopeType.GetById(Convert.ToInt32(sdr[_DBTrainType]));
                    app.Trainer                      = (sdr[_DBTrainer]).ToString();
                    app.Skills                       = (sdr[_DBSkills]).ToString();
                    app.StratTime                    = Convert.ToDateTime(sdr[_DBStratTime]);
                    app.EndTime                      = Convert.ToDateTime(sdr[_DBEndTime]);
                    app.TrainPlace                   = (sdr[_DBTrianPlace]).ToString();
                    app.TrainOrgnatiaon              = (sdr[_DBTrainOrgnatiaon]).ToString();
                    app.TrainHour                    = Convert.ToInt32(sdr[_DBTrainHour]);
                    app.TrainCost                    = Convert.ToInt32(sdr[_DBTrainCost]);
                    app.EduSpuCost                   = HrmisUtility.ConvertToDecimal(sdr[_DbEduSpuCost]);
                    app.HasCertifacation             = (Convert.ToInt32(sdr[_DBHasCertification])).Equals(1);
                    app.NextStep                     = new DiyStep(Convert.ToInt32(sdr[_DBNextStepIndex]));
                    app.TraineeApplicationStatuss    = TraineeApplicationStatus.FindTraineeApplicationStatus(Convert.ToInt32(sdr[_DBApplicationStatus]));
                    app.TraineeApplicationDiyProcess = DiyProcessDal.ConvertToObject(sdr[_DbDiyProcess].ToString());
                    app.StudentList                  = GetAppTrainee(TraineeApplicationID);
                    app.TraineeApplicationFlowList   = GetApplicationFlows(TraineeApplicationID);
                }
                return(app);
            }
        }
Пример #21
0
 protected override void ExcuteSelf()
 {
     try
     {
         bool sendmail = false;
         foreach (OutApplicationItem item in _OutApplication.Item)
         {
             bool valide =
                 CancelOutApplicationItem.CancelOneItem(item, _OutApplication.Account, _Remark,
                                                        _DalOutApplication, _OutDiyProcessUtility, _OutApplication);
             if (valide)
             {
                 new OutMailAndPhoneDelegate().CancelOperation(_OutApplication.PKID, item.ItemID);
                 sendmail = true;
             }
         }
         if (sendmail)
         {
             new OutMailAndPhoneDelegate().CancelOperationMail(_OutApplication.PKID);
         }
     }
     catch
     {
         HrmisUtility.ThrowException(HrmisUtility._DbError);
     }
 }
Пример #22
0
 protected override void Validation()
 {
     _OutApplication = _DalOutApplication.GetOutApplicationByOutApplicationID(_OutApplicationID);
     if (_OutApplication == null)
     {
         HrmisUtility.ThrowException(HrmisUtility._OutApplication_Not_Exit);
     }
 }
Пример #23
0
 protected override void Validation()
 {
     _OverWorkItem = _OverWorkDal.GetOverWorkItemByItemID(_ItemID);
     if (_OverWorkItem == null)
     {
         HrmisUtility.ThrowException(HrmisUtility._OverWorkItem_Not_Exit);
     }
 }
Пример #24
0
 protected override void Validation()
 {
     _OverWork = new GetOverWork().GetOverWorkByOverWorkID(_OverWorkID);
     if (_OverWork == null)
     {
         HrmisUtility.ThrowException(HrmisUtility._OverWork_Not_Exit);
     }
 }
 /// <summary>
 ///
 /// </summary>
 protected override void Validation()
 {
     _PositionApplication = _PositionApplicationDal.GetPositionApplicationByPKID(_PositionApplicationID);
     if (_PositionApplication == null)
     {
         HrmisUtility.ThrowException(HrmisUtility._PositionApplication_Not_Exit);
     }
 }
Пример #26
0
 /// <summary>
 /// 查询
 /// </summary>
 public void ExecutEvent(string letter)
 {
     if (!ValidateFrom() || !ValidateTo())
     {
     }
     else
     {
         try
         {
             _View.ErrorMessage = string.Empty;
             EmployeeTypeEnum employeetype =
                 EmployeeTypeUtility.GetEmployeeTypeByID(Convert.ToInt32(_View.EmployeeType));
             //_EmployeeList =
             //    _IEmployeeFacade.GetEmployeeByBasicConditionAndFirstLetter(_View.EmployeeName, employeetype,
             //                                                               _View.PositionId, _View.DepartmentId,
             //                                                               _View.RecursionDepartment,
             //                                                               letter);
             //20090807  修改查询条件  by liudan
             _EmployeeList =
                 _IEmployeeFacade.GetEmployeeByBasicConditionWithFirstLetterAndCompanyAge(_View.EmployeeName, employeetype,
                                                                                          _View.PositionId, _View.DepartmentId,
                                                                                          _View.RecursionDepartment,
                                                                                          letter, AgeFrom, AgeTo, Convert.ToInt32(_View.EmployeeStatusId));
             _EmployeeList =
                 HrmisUtility.RemoteUnAuthEmployee(_EmployeeList, AuthType.HRMIS, _Operator, HrmisPowers.A401);
             List <Employee> emplyees = new List <Employee>();
             foreach (Employee emplyee in _EmployeeList)
             {
                 //根据所属公司id,得到所属公司名称
                 Employee temp = emplyee;
                 if (temp.EmployeeDetails == null || temp.EmployeeDetails.Work == null ||
                     temp.EmployeeDetails.Work.Company == null)
                 {
                 }
                 else
                 {
                     //todo noted by wsl transfer waiting for modify
                     temp.EmployeeDetails.Work.Company =
                         _IDepartmentBll.GetDepartmentById(
                             temp.EmployeeDetails.Work.Company.Id, new Account());
                 }
                 temp.EmployeeDetails              = temp.EmployeeDetails ?? new EmployeeDetails();
                 temp.EmployeeDetails.Work         = temp.EmployeeDetails.Work ?? new Work();
                 temp.EmployeeDetails.Work.Company = temp.EmployeeDetails.Work.Company ??
                                                     new Department();
                 emplyees.Add(temp);
             }
             _CardView.Employees = emplyees;
             _View.ErrorMessage  = "<span class='font14b'>共查到 </span>"
                                   + "<span class='fontred'>" + _EmployeeList.Count + "</span>"
                                   + "<span class='font14b'> 条信息</span>";
         }
         catch (Exception ex)
         {
             _View.ErrorMessage = "<span class='fontred'>" + ex.Message + "</span>";
         }
     }
 }
Пример #27
0
 /// <summary>
 ///
 /// </summary>
 protected override void Validation()
 {
     _LeaveRequest = _DalLeaveRequest.GetLeaveRequestByPKID(_LeaveRequestID);
     //判断请假信息是否为空
     if (_LeaveRequest == null)
     {
         HrmisUtility.ThrowException(HrmisUtility._LeaveRequest_Not_Exist);
     }
 }
Пример #28
0
        /// <summary>
        ///
        /// </summary>
        private void SendCancelToMail()
        {
            Account  mailToAccount = new MailAndPhoneUtility().GetMailToAccount(_PositionApplication, _NextStep);
            MailBody mailBody      = new MailBody();

            BuildSubmitMailBody(mailBody, mailToAccount);
            mailBody.MailTo = HrmisUtility.GetMail(mailToAccount);
            _MailGateWay.Send(mailBody);
        }
Пример #29
0
        protected override void ExcuteSelf()
        {
            DateTime endMonthDate = new HrmisUtility().EndMonthByYearMonth(_CurrDate);

            if (DateTime.Compare(_CurrDate.Date, endMonthDate.Date) == 0)
            {
                string          employeeNameFailEmail = "";
                List <Employee> employees             = _GetEmployee.GetAllEmployeeBasicInfo();
                foreach (Employee employee in employees)
                {
                    if (employee.EmployeeType == EmployeeTypeEnum.BorrowedEmployee)
                    {
                        continue;
                    }
                    if (employee.EmployeeType == EmployeeTypeEnum.DimissionEmployee)
                    {
                        employee.EmployeeDetails =
                            _GetEmployee.GetEmployeeByAccountID(employee.Account.Id).EmployeeDetails;
                        if (
                            DateTime.Compare(employee.EmployeeDetails.Work.DimissionInfo.DimissionDate,
                                             _CurrDate.AddDays(1 - _CurrDate.Date.Day)) < 0)
                        {
                            continue;
                        }
                    }
                    //没有排版表的人不需要提醒
                    List <PlanDutyDetail> planDutyDetailList =
                        _IPlanDutyDal.GetPlanDutyDetailByAccount(employee.Account.Id, _CurrDate.AddDays(1).AddMonths(-1),
                                                                 _CurrDate);
                    if (planDutyDetailList.Count == 0)
                    {
                        continue;
                    }
                    try
                    {
                        SendEmailToEmployee(employee);
                    }
                    catch
                    {
                        if (string.IsNullOrEmpty(employeeNameFailEmail))
                        {
                            employeeNameFailEmail = employee.Account.Name;
                        }
                        else
                        {
                            employeeNameFailEmail += "," + employee.Account.Name;
                        }
                    }
                    employee.EmployeeDetails = null;
                }
                if (!string.IsNullOrEmpty(employeeNameFailEmail))
                {
                    throw new Exception("发送邮件失败。以下" + employeeNameFailEmail.Split(',').Length + "位员工没有获得系统提醒:" +
                                        employeeNameFailEmail);
                }
            }
        }
Пример #30
0
        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);
            }
        }