using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using PayRollDAL.DTO.DailyAttendance; namespace PayRollDAL.CustomeCode.DailyAttendance { public interface IDailyAttendanceDAL { Task GetDailyAttendanceEmployeeDetail(int EmployeeId, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); Task GetEmployeeShift(int employeeId, LoginDTO loginDTO); Task GetLeaveIncludeHoliday(int leaveId, LoginDTO loginDTO); Task> GetAttendanceDayTypeForEmployee(int employeeId, CriteriaDTO CriteriaDTO, LoginDTO loginDTO, bool includeHoliday); Task> GetDailyAttendanceReport(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool Count = false); Task> LoadDailyAttendanceFromPunch( DailyAttendanceFilterDTO DailyAttendanceFilterDTO, LoginDTO LoginDTO, int FirstNumber, int MaxResult, bool Count); Task LoadAndUpdateDailyAttendanceFromPunch( DailyAttendanceFilterDTO DailyAttendanceFilterDTO, LoginDTO LoginDTO); Task UpdateAttendanceDayType(int Type, DailyAttendanceFilterDTO DailyAttendanceFilterDTO, LoginDTO LoginDTO); /// /// GB4 parity: PayProcessBLL.IsUpdatePossible(-1,-1,EmployeeId,EffectiveFrom,EffectiveFrom,LoginDTO) /// guard used by EmployeeBLL.RegisterDeletion. Returns true if a processed pay period already /// covers an attendance date on/after EffectiveFrom for this employee (deletion not allowed). /// Task IsPayProcessDoneFromDate(int employeeId, DateTime effectiveFrom, LoginDTO loginDTO, CancellationToken ct); /// /// GB4 parity: EmployeeBLL.RegisterDeletion — deletes TDAILYATTENDANCE rows for the employee /// from EffectiveFrom onward (was raw string-concatenated SQL in GB4, now parameterized). /// Task DeleteDailyAttendanceFromDate(int employeeId, DateTime effectiveFrom, LoginDTO loginDTO, CancellationToken ct); /// /// GB4 parity: DailyAttendanceBLL/DAL.GetDailyAttendanceMultiEmployeeDetail (WCF op /// DailyAttendanceMultiEmployeeDetail, route /MultipleEmployee/). Bulk multi-employee /// attendance grid with the full 16-field criteria filter set. The GB4 error-log /// temp-table correlation (LMW-only customization) is intentionally not ported — /// ErrorLogId/Code/Name are always left at the DTO's default (-1/-1/""). /// Task<(List Items, int Total)> GetDailyAttendanceMultipleEmployee( int firstNumber, int maxResult, CriteriaDTO criteriaDTO, LoginDTO loginDTO, CancellationToken ct); /// /// GB4 parity: AdjustmentBLL.SaveAdjustment's post-save TDAILYATTENDANCE re-sync /// (UpdateDailyattendanceforSameAndAcrossDateFineTuned). Re-derives daily attendance /// rows for the OU across the given date range after an adjustment is saved. /// Task UpdateDailyattendanceforSameAndAcrossDateFineTuned( DateTime fromDate, DateTime toDate, DailyAttendanceFilterDTO dailyAttendanceFilterDTO, LoginDTO loginDTO); } }