コード例 #1
0
        public List <AttendanceBase> GetAttendanceByCondition(int employeeId, DateTime theDayFrom, DateTime theDayTo,
                                                              AttendanceTypeEmnu AttendaceType)
        {
            List <AttendanceBase> attendances = new List <AttendanceBase>();
            SqlCommand            cmd         = new SqlCommand();

            //cmd.Parameters.Add(_EmployeeName, SqlDbType.NVarChar, 50).Value = employeeName;
            cmd.Parameters.Add(_EmployeeId, SqlDbType.Int).Value     = employeeId;
            cmd.Parameters.Add(_DayFrom, SqlDbType.DateTime).Value   = theDayFrom;
            cmd.Parameters.Add(_DayTo, SqlDbType.DateTime).Value     = theDayTo;
            cmd.Parameters.Add(_AttendanceType, SqlDbType.Int).Value = AttendaceType;

            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetAttendanceByCondition", cmd))
            {
                while (sdr.Read())
                {
                    switch ((AttendanceTypeEmnu)sdr[_DbAttendanceType])
                    {
                    case AttendanceTypeEmnu.Absenter:
                        AbsentAttendance absent =
                            new AbsentAttendance(Convert.ToInt32(sdr[_DbEmployeeId]),
                                                 Convert.ToDateTime(sdr[_DbTheDay]), Convert.ToDecimal(sdr[_DbDays]));
                        absent.AttendanceId = Convert.ToInt32(sdr[_DbPKID]);
                        absent.AddDutyDays  = Convert.ToDecimal(sdr[_DbAddDutyDays]);
                        absent.Days         = Convert.ToDecimal(sdr[_DbDays]);
                        //absent.EmployeeName = sdr[_DbEmployeeName].ToString();
                        attendances.Add(absent);
                        break;

                    case AttendanceTypeEmnu.Early:
                        EarlyLeaveAttendance early =
                            new EarlyLeaveAttendance(Convert.ToInt32(sdr[_DbEmployeeId]),
                                                     Convert.ToDateTime(sdr[_DbTheDay]),
                                                     Convert.ToInt32(sdr[_DbEarlyAndLateMunite]));

                        early.AttendanceId = Convert.ToInt32(sdr[_DbPKID]);
                        early.AddDutyDays  = Convert.ToDecimal(sdr[_DbAddDutyDays]);
                        early.Days         = Convert.ToDecimal(sdr[_DbDays]);
                        //early.EmployeeName = sdr[_DbEmployeeName].ToString();
                        attendances.Add(early);
                        break;

                    case AttendanceTypeEmnu.Late:
                        LaterAttendance late =
                            new LaterAttendance(Convert.ToInt32(sdr[_DbEmployeeId]),
                                                Convert.ToDateTime(sdr[_DbTheDay]),
                                                Convert.ToInt32(sdr[_DbEarlyAndLateMunite]));


                        late.AttendanceId = Convert.ToInt32(sdr[_DbPKID]);
                        late.AddDutyDays  = Convert.ToDecimal(sdr[_DbAddDutyDays]);
                        late.Days         = Convert.ToDecimal(sdr[_DbDays]);
                        //late.EmployeeName = sdr[_DbEmployeeName].ToString();
                        attendances.Add(late);
                        break;
                    }
                }
                return(attendances);
            }
        }
コード例 #2
0
 public List <AttendanceBase> GetCalendarByEmployee(int employeeId, DateTime theDayFrom, DateTime theDayTo,
                                                    AttendanceTypeEmnu AttendaceType)
 {
     throw new NotImplementedException();
 }
コード例 #3
0
        ///<summary>
        /// 转换为日历显示
        ///</summary>
        ///<param name="employeeId"></param>
        ///<param name="theDayFrom"></param>
        ///<param name="theDayTo"></param>
        ///<param name="attendaceType"></param>
        ///<returns></returns>
        public List <DayAttendance> GetCalendarByEmployee(int employeeId, DateTime theDayFrom, DateTime theDayTo, AttendanceTypeEmnu attendaceType)
        {
            //获取员工缺勤信息
            List <AttendanceBase> baseList = _AttendanceDal.GetCalendarByEmployee(employeeId, theDayFrom, theDayTo,
                                                                                  attendaceType);
            List <DayAttendance> dayAttendances = new List <DayAttendance>();

            //转换为日历
            foreach (AttendanceBase attendanceBase in baseList)
            {
                DayAttendance        dayAttendance = null;
                EarlyLeaveAttendance early;
                LaterAttendance      late;

                if (attendanceBase is AbsentAttendance)
                {
                    dayAttendance =
                        new DayAttendance(-1, attendanceBase.Name, attendanceBase.Days * 8, 0, attendanceBase.TheDay,
                                          string.Empty, CalendarType.Absent);
                }
                else if ((early = attendanceBase as EarlyLeaveAttendance) != null)
                {
                    dayAttendance = new DayAttendance(-1, early.Name, early.Days, early.EarlyLeaveMinutes, early.TheDay,
                                                      string.Empty, CalendarType.LeaveEarly);
                }
                else if ((late = attendanceBase as LaterAttendance) != null)
                {
                    dayAttendance =
                        new DayAttendance(-1, late.Name, late.Days, late.LaterMinutes, late.TheDay, string.Empty,
                                          CalendarType.Late);
                }
                dayAttendances.Add(dayAttendance);
            }
            return(dayAttendances);
        }