public WorkTypeInfo GetAdministrationWorkType(int id, int day) { WorkTypeInfo workTypeInfo = new WorkTypeInfo { Name = mAdministrativeMemberNameList[id], ClockInTime = GetClockInData(id, day), ClockOffTime = GetClockOffData(id, day) }; var workAddress = GlobalDefine.Instance.Config.GetWorkAddress(WorkerType.Administration, WorkAddressType.None); if (workTypeInfo.ClockInTime != null && !workAddress.IsInAddressRange(workTypeInfo.ClockInTime.Address)) { workTypeInfo.ClockInTime = null; } if (workTypeInfo.ClockOffTime != null && !workAddress.IsInAddressRange(workTypeInfo.ClockOffTime.Address)) { workTypeInfo.ClockOffTime = null; } if (workTypeInfo.ClockInTime == null && workTypeInfo.ClockOffTime == null) { workTypeInfo.WorkTimeType = workAddress.IsWeekendTime(day) ? WorkTimeType.WorkRest : WorkTimeType.WorkUnClockInAndOff; } else if (workTypeInfo.ClockInTime == workTypeInfo.ClockOffTime) { workTypeInfo.WorkTimeType = workTypeInfo.ClockInTime.IsMorningSign() ? WorkTimeType.WorkUnClockOff : WorkTimeType.WorkUnClockIn; if (workTypeInfo.WorkTimeType == WorkTimeType.WorkUnClockIn) { workTypeInfo.ClockInTime = null; } else { workTypeInfo.ClockOffTime = null; } } else if (workTypeInfo.ClockInTime == null) { workTypeInfo.WorkTimeType = WorkTimeType.WorkUnClockIn; } else if (workTypeInfo.ClockOffTime == null) { workTypeInfo.WorkTimeType = WorkTimeType.WorkUnClockOff; } else if (workTypeInfo.ClockOffTime != workTypeInfo.ClockInTime) { if (workAddress.IsClockInDelay(workTypeInfo.ClockInTime.SignTime)) { workTypeInfo.WorkTimeType = WorkTimeType.WorkLate; } if (workAddress.IsClockOffDelay(workTypeInfo.ClockOffTime.SignTime)) { workTypeInfo.WorkTimeType = workTypeInfo.WorkTimeType == WorkTimeType.WorkLate ? WorkTimeType.WorkLateAndLeveaEarly : WorkTimeType.WorkLeaveEarly; } } return(workTypeInfo); }
public WorkTypeInfo GetBusinessWorkType(int id, int day) { WorkTypeInfo workTypeInfo = new WorkTypeInfo { Name = mBusinessMemberNameList[id], ClockInTime = GetClockInData(id, day), ClockOffTime = GetClockOffData(id, day) }; if (workTypeInfo.ClockInTime == null && workTypeInfo.ClockOffTime == null) { var workAdress = GlobalDefine.Instance.Config.GetWorkAddress(WorkerType.Business, WorkAddressType.InCompany); workTypeInfo.WorkTimeType = workAdress.IsWeekendTime(day) ? WorkTimeType.WorkRest : WorkTimeType.WorkUnClockInAndOff; } else if (workTypeInfo.ClockInTime == workTypeInfo.ClockOffTime) { workTypeInfo.WorkTimeType = workTypeInfo.ClockInTime.IsMorningSign() ? WorkTimeType.WorkUnClockOff : WorkTimeType.WorkUnClockIn; if (workTypeInfo.WorkTimeType == WorkTimeType.WorkUnClockIn) { workTypeInfo.ClockInTime = null; } else { workTypeInfo.ClockOffTime = null; } } else if (workTypeInfo.ClockOffTime != workTypeInfo.ClockInTime) { WorkAddress workAddress = AttendanceDataManager.Instance.GetBusinessWorkAddress(workTypeInfo.ClockInTime, workTypeInfo.ClockOffTime); if (workAddress.IsClockInDelay(workTypeInfo.ClockInTime.SignTime)) { workTypeInfo.WorkTimeType = WorkTimeType.WorkLate; } if (workAddress.IsClockOffDelay(workTypeInfo.ClockOffTime.SignTime)) { workTypeInfo.WorkTimeType = workTypeInfo.WorkTimeType == WorkTimeType.WorkLate ? WorkTimeType.WorkLateAndLeveaEarly : WorkTimeType.WorkLeaveEarly; } } return(workTypeInfo); }