using Dapper; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using PayRollDAL.DTO; using PayRollDAL.DTO.PayProcess; using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace PayRollDAL.CustomeCode.PayProcess { public interface IPayProcessDAL { Task> GetPaySlipReport(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool Count = false, int Type = 0); Task GetAdditionDeductionPicklist(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool IsCount = false); Task GetPayProcessAddonPicklist(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); //Task> GetPeriodAsync(int workPeriodId, LoginDTO loginDTO, CancellationToken cancellationToken = default); //Task ExecuteValidTillDateLeaveAsync(DateTime periodFrom, DateTime periodTo, string ouId, LoginDTO loginDTO, CancellationToken cancellationToken = default); Task> GetPeriodAsync( int workPeriodId, LoginDTO loginDTO, CancellationToken cancellationToken = default); Task ExecuteLeaveStatusPreProcessingAsync( DateTime periodFrom, DateTime periodTo, string ouId, LoginDTO loginDTO, CancellationToken cancellationToken = default); Task> GetLeaveStatusReportAsync( DateTime periodFrom, DateTime periodTo, string ouIds, int toIncludeDebitClass, LoginDTO loginDTO, int? employeeId = null, bool isScreenPeriod = false, int? departmentId = null, int? leaveTypeId = null, int? employeeTypeId = null, int? staffTypeId = null, int? payGroupId = null, CancellationToken cancellationToken = default); // ── PayProcessForSepration (GB4 spelling preserved for route/BLL-comment traceability) ── Task GetSeparationDuplicateCount(int ouId, int payConfigurationId, int employeeId, LoginDTO loginDTO, DbTransaction transaction); Task UndoSeparationPayProcess(int ouId, int payConfigurationId, int employeeId, LoginDTO loginDTO, DbTransaction transaction); Task InsertSeparationPayProcessHeader( int startNumber, int payPeriodId, int payConfigurationId, int ouId, decimal numberOfDays, int totalDays, DateTime fromDate, DateTime toDate, int weeklyOff, int employeeId, LoginDTO loginDTO, DbTransaction transaction); Task UpdateSeparationDailyAttendanceSum(int ouId, int payConfigurationId, int employeeId, LoginDTO loginDTO, DbTransaction transaction); Task> GetFixedAdditionDeductionFields(LoginDTO loginDTO, DbTransaction transaction); Task> GetVariableAdditionDeductionFields(LoginDTO loginDTO, DbTransaction transaction); Task> GetCreditLeaveCodes(LoginDTO loginDTO, DbTransaction transaction); Task InsertSeparationPayProcessAddon( int startNumber, int payConfigurationId, int ouId, DateTime fromDate, DateTime toDate, int employeeId, string dynamicColumns, string dynamicValues, LoginDTO loginDTO, DbTransaction transaction); Task> GetFormulaFields(LoginDTO loginDTO, DbTransaction transaction); Task GetMaxFormulaPhase(LoginDTO loginDTO, DbTransaction transaction); Task UpdatePayProcessAddonByFormula(int payPeriodId, int payConfigurationId, int employeeId, string strUpdate, LoginDTO loginDTO, DbTransaction transaction); Task UpdateTotalEarningDeduction(int payConfigurationId, int payPeriodId, int ouId, string totalEarningExpr, string totalDeductionExpr, string totalAdditionExpr, LoginDTO loginDTO, DbTransaction transaction); Task UpdateNetSalary(int payConfigurationId, int payPeriodId, int ouId, LoginDTO loginDTO, DbTransaction transaction); Task UpdateC2C(int payConfigurationId, int payPeriodId, int ouId, string replaceFieldsExpr, LoginDTO loginDTO, DbTransaction transaction); } }