using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using PayRollDAL.DTO.Leave; namespace PayRollDAL.CustomeCode.Leave { public interface ILeaveDAL { Task GetLeave(int LeaveId, LoginDTO LoginDTO); Task SaveLeave(LeaveDTO LeaveDTO, LoginDTO LoginDTO); Task UpdateLeave(LeaveDTO LeaveDTO, LoginDTO LoginDTO); // ADD THIS Task UpdateLeaveStatusAsync(long leaveId, int status, LoginDTO loginDTO); Task DeleteLeave(int LeaveId, LoginDTO LoginDTO); Task GetSelectListLeave(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); Task GetRootsEmployeePermissionInfo(int EmployeeId, DateTime Date, LoginDTO LoginDTO); //Task CheckDuplicateLeaveAsync(string leaveCode, int tenantId); Task> GetEmployeeDetailsAsync( LoginDTO loginDTO, int? employeeId = null, int? ouId = null, int? departmentId = null); Task> GetEmployeePermissionDetailsAsync( LoginDTO loginDTO, DateTime? periodFrom, DateTime? periodTo, int? employeeId = null, int? ouId = null, int? departmentId = null, CancellationToken cancellationToken = default); Task> GetEmployeeLeaveCreditDebitDetailsAsync( LoginDTO loginDTO, DateTime? periodFrom = null, DateTime? periodTo = null, int? employeeId = null, int? ouId = null, int? departmentId = null); Task> GetEmployeeLeaveRequestDetailsAsync( LoginDTO loginDTO, DateTime? periodFrom = null, DateTime? periodTo = null, int? employeeId = null, int? ouId = null, int? departmentId = null); Task> GetEmployeePunchDetailsAsync( LoginDTO loginDTO, DateTime? periodFrom = null, DateTime? periodTo = null, int? employeeId = null, int? ouId = null, int? departmentId = null, CancellationToken cancellationToken = default); Task> GetEmployeeMissedPunchAsync( LoginDTO loginDTO, DateTime? periodFrom = null, DateTime? periodTo = null, int? employeeId = null, string type = "PUNCH", CancellationToken cancellationToken = default); Task> GetEmployeeLeaveOnDutyRequestAsync( LoginDTO loginDTO, DateTime? periodFrom = null, DateTime? periodTo = null, int? employeeId = null, int? ouId = null, int? departmentId = null); Task> GetEmployeeDailyAttendanceAsync( LoginDTO loginDTO, DateTime? periodFrom = null, DateTime? periodTo = null, int? employeeId = null, int? ouId = null, int? departmentId = null); Task GetSelectListMLeave(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool IsCount = false); Task GetEmployeeIdByUserCodeAsync(string userCode, LoginDTO loginDTO); } }