using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using PayRollDAL.DTO; using PayRollDAL.DTO.TimeSlip; using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PayRollDAL.CustomeCode.TimeSlip { public interface ITimeSlipDAL { Task GetTimeSlip(int TimeSlipId, LoginDTO LoginDTO); Task GetSelectListTimeSlip(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool IsCount = false); Task> GetTimeSlipSummary(CriteriaDTO criteriaDTO, LoginDTO LoginDTO); Task GetNextTimeSlipNumber(LoginDTO login, DbTransaction tx); Task SaveTimeSlip(TimeSlipDTO dto, LoginDTO login, DbTransaction trans); Task UpdateTimeSlip(TimeSlipDTO dto, LoginDTO login, DbTransaction trans); Task DeleteTimeSlip(int TimeSlipId, LoginDTO LoginDTO); Task TimeSlip(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool IsCount = false); Task SelectList(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool IsCount = false); Task CheckDuplicateAsync(TimeSlipDTO dto, LoginDTO login, DbTransaction tx); Task GetPeriodAsync(int periodId, LoginDTO login, DbTransaction tx); Task CheckPermissionAsync(TimeSlipDTO dto, LoginDTO login, DbTransaction tx); /// /// Returns employee core fields + two-level reporting chain for DTO enrichment before save. /// Task GetEmployeeDataAsync(int employeeId, LoginDTO login, DbTransaction tx); Task GetTimeSlipBasic(int timeSlipId, LoginDTO login); } }