Ejemplo n.º 1
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
     {
     }
 }
        ///<summary>
        /// 通过employeeID,开始结束时间得到员工的考勤信息,只获得已经结束的考勤
        ///</summary>
        ///<param name="employeeID"></param>
        ///<param name="startDt"></param>
        ///<param name="endDt"></param>
        ///<returns></returns>
        public Employee GetEmployeeAttendanceByCondition(int employeeID, DateTime startDt, DateTime endDt)
        {
            GetEmployeeAttendanceStatistics employeeAttendanceStatistics =
                new GetEmployeeAttendanceStatistics();

            return(employeeAttendanceStatistics.GetEmployeeAttendanceByCondition(employeeID, startDt, endDt));
        }
        ///<summary>
        /// 按部门,员工姓名查询员工考勤
        ///</summary>
        ///<returns></returns>
        public List <Employee> GetAllEmployeeAttendanceByCondition(string EmployeeName, int DepartmentID, int?gradesId,
                                                                   DateTime Form, DateTime To, Account account, int powers)
        {
            GetEmployeeAttendanceStatistics employeeAttendanceStatistics =
                new GetEmployeeAttendanceStatistics();

            return(employeeAttendanceStatistics.GetAllEmployeeAttendanceByCondition(EmployeeName, DepartmentID, gradesId, Form, To, account, powers));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 计算员工的考勤情况
        /// </summary>
        public Employee GetMonthAttendanceStatistics(int employeeID, DateTime fromDate, DateTime toDate)
        {
            Employee employee =
                new GetEmployeeAttendanceStatistics().GetEmployeeAttendanceByCondition(employeeID, fromDate, toDate);

            if (employee == null)
            {
                return(null);
            }
            MonthAttendanceCaculate(employee);
            return(employee);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 计算员工的考勤情况
        /// </summary>
        public List <Employee> GetMonthAttendanceStatistics(string employeeName, int departmentID, int?gradesId, DateTime fromDate,
                                                            DateTime toDate, Account account, int?powers)
        {
            List <Employee> employeeList =
                new GetEmployeeAttendanceStatistics().
                GetEmployeeAttendanceByCondition(employeeName, departmentID, gradesId, fromDate, toDate, account, powers);

            for (int i = 0; i < employeeList.Count; i++)
            {
                MonthAttendanceCaculate(employeeList[i]);
            }
            return(employeeList);
        }
Ejemplo n.º 6
0
        protected override void ExcuteSelf()
        {
            List <Employee> employeeList =
                new GetEmployeeAttendanceStatistics().GetAllEmployeeAttendanceByCondition(_EmployeeName, _DepartmentID, null,
                                                                                          _From, _To, _Operator,
                                                                                          _PowerID);

            foreach (Employee employee in employeeList)
            {
                for (DateTime from = _From; from <= _To; from = from.AddDays(1))
                {
                    employee.EmployeeAttendance.InAndOutStatistics(from);
                    bool   isIncludeOutInTime;
                    string absentString;
                    if (bool.TryParse(CompanyConfig.ATTENDANCEISNORMALISINCLUDEOUTINTIME, out isIncludeOutInTime) &&
                        isIncludeOutInTime && from.Date < DateTime.Now.Date &&
                        (employee.EmployeeAttendance.IsOutInTimeCondition(
                             OutInTimeConditionEnum.InOrOutTimeOnlyOneIsNull) ||
                         !employee.EmployeeAttendance.StatisticIsNormal(from, out absentString))
                        )
                    {
                        string description =
                            string.Format("{0}{1}µÄ¿¼ÇÚÊý¾ÝÒì³£", employee.Account.Name, from.Date.ToShortDateString());
                        SystemError error = new SystemError(description, ErrorType.AttendanceError, employee.Account.Id);
                        error.ErrorEmployee = employee;
                        error.EditUrl       =
                            string.Format("{0}employeeID={1}&DepartmentID={2}&SearchFrom={3}&SearchTo={4}",
                                          ErrorType.AttendanceError.EditPageUrl,
                                          SecurityUtil.DECEncrypt(employee.Account.Id.ToString()),
                                          SecurityUtil.DECEncrypt(employee.Account.Dept.Id.ToString()),
                                          SecurityUtil.DECEncrypt(from.ToShortDateString() + " 0:00:00"),
                                          SecurityUtil.DECEncrypt(from.ToShortDateString() + " 23:59:59"));
                        error.ErrorEmployee.EmployeeAttendance.PlanDutyTableList =
                            _PlanDutyDal.GetPlanDutyTableByConditionAndAccountID(from, from, employee.Account.Id);
                        _SystemErrorList.Add(error);
                    }
                }
            }
        }