using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using PayRollDAL.DTO; using PayRollDAL.DTO.Job; using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PayRollDAL.CustomeCode.Job { public interface IJobDAL { Task GetSelectListJob(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool IsCount = false); Task GetJob(int JobId, LoginDTO LoginDTO); Task SaveJob(JobDTO JobDTO, LoginDTO LoginDTO, DbTransaction DbTransaction); Task UpdateJob(JobDTO JobDTO, LoginDTO LoginDTO, DbTransaction DbTransaction); Task DeleteJob(int JobId, LoginDTO LoginDTO); Task GetJobList(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); /// Mirrors TimeSlipDAL.GetPeriodAsync — used by JobBLL's financial-period validation. Task GetPeriodAsync(int PeriodId, LoginDTO LoginDTO, DbTransaction DbTransaction); /// Looks up MEMPLOYEE by EmployeeId for the "must be an employee" save-time check. Task GetEmployeeForJobAsync(int EmployeeId, LoginDTO LoginDTO, DbTransaction DbTransaction); /// /// GB4 parity: EmployeeBLL.GetJOBDetailReport / EmployeeQueryBuilder.GET_EMPLOYEE_JOB_DETAIL. /// Wide paged job-opening report (TJOB + GCM masters + party/employee/department joins). /// Task<(List Items, int Total)> GetJOBDetailReport( int firstNumber, int maxResult, CriteriaDTO criteriaDTO, LoginDTO loginDTO, CancellationToken ct); } }