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)); }
/// <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); }
/// <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); }
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); } } } }