using AccountsDAL.DTO.ETDS; using AccountsDAL.Query.ETDS; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using System.Data.Common; namespace AccountsDAL.CustomCode.ETDS { public class EtdsDAL : IEtdsDAL { private readonly IQueryExecutor _queryExecutor; public EtdsDAL(IQueryExecutor queryExecutor) { _queryExecutor = queryExecutor; } public async Task> GetTDSReturnIdsForUndo(int ouId, int periodId, string fileType, string formNumber, string periodType, LoginDTO loginDTO) { var rows = await _queryExecutor .QueryAsync(loginDTO, EtdsQB.GET_TDS_RETURN_IDS_FOR_UNDO, new { OUId = ouId, PeriodId = periodId, FileType = fileType, FormNumber = formNumber, PeriodType = periodType }) .ConfigureAwait(false); return rows.ToList(); } public async Task UndoPostingTDSReturnForm(List tdsReturnIds, LoginDTO loginDTO, DbTransaction tx) { var param = new { TDSReturnIds = tdsReturnIds }; await _queryExecutor.ExecuteAsync(loginDTO, EtdsQB.DELETE_TDS_SECTION6A, param, tx).ConfigureAwait(false); await _queryExecutor.ExecuteAsync(loginDTO, EtdsQB.DELETE_TDS_SECTION16, param, tx).ConfigureAwait(false); await _queryExecutor.ExecuteAsync(loginDTO, EtdsQB.DELETE_TDS_SALARY_DETAIL, param, tx).ConfigureAwait(false); await _queryExecutor.ExecuteAsync(loginDTO, EtdsQB.DELETE_TDS_RETURN_EMPLOYEE, param, tx).ConfigureAwait(false); await _queryExecutor.ExecuteAsync(loginDTO, EtdsQB.DELETE_TDS_RETURN_CHALLAN, param, tx).ConfigureAwait(false); await _queryExecutor.ExecuteAsync(loginDTO, EtdsQB.DELETE_TDS_RETURN_BATCH, param, tx).ConfigureAwait(false); await _queryExecutor.ExecuteAsync(loginDTO, EtdsQB.DELETE_TDS_RETURN, param, tx).ConfigureAwait(false); } // ── Form24Q123 / GetTDSReturnForm ──────────────────────────────────── public async Task GetTDSReturn(int tdsReturnId, LoginDTO loginDTO) { var rows = await _queryExecutor .QueryAsync(loginDTO, EtdsQB.GET_ETDS_FORM_TDSRETURN, new { TDSReturnId = tdsReturnId }) .ConfigureAwait(false); return rows.FirstOrDefault(); } public async Task> GetTDSReturnBatch(int tdsReturnId, LoginDTO loginDTO) { var rows = await _queryExecutor .QueryAsync(loginDTO, EtdsQB.GET_ETDS_FORM_TDSRETURN_BATCH, new { TDSReturnId = tdsReturnId }) .ConfigureAwait(false); return rows.ToList(); } public async Task> GetTDSReturnChallan(int tdsReturnId, LoginDTO loginDTO) { var rows = await _queryExecutor .QueryAsync(loginDTO, EtdsQB.GET_ETDS_FORM_TDSRETURN_CHALLAN, new { TDSReturnId = tdsReturnId }) .ConfigureAwait(false); return rows.ToList(); } public async Task> GetTDSReturnEmployee(int tdsReturnId, LoginDTO loginDTO) { var rows = await _queryExecutor .QueryAsync(loginDTO, EtdsQB.GET_ETDS_FORM_TDSRETURN_EMPLOYEE, new { TDSReturnId = tdsReturnId }) .ConfigureAwait(false); return rows.ToList(); } public async Task> GetTDSSalaryDetail(int tdsReturnId, LoginDTO loginDTO) { var rows = await _queryExecutor .QueryAsync(loginDTO, EtdsQB.GET_ETDS_FORM_TDSSALARY_DETAIL, new { TDSReturnId = tdsReturnId }) .ConfigureAwait(false); return rows.ToList(); } public async Task> GetTDSSection16(int tdsReturnId, LoginDTO loginDTO) { var rows = await _queryExecutor .QueryAsync(loginDTO, EtdsQB.GET_ETDS_FORM_TDSSECTION16_DETAIL, new { TDSReturnId = tdsReturnId }) .ConfigureAwait(false); return rows.ToList(); } public async Task> GetTDSSection6A(int tdsReturnId, LoginDTO loginDTO) { var rows = await _queryExecutor .QueryAsync(loginDTO, EtdsQB.GET_ETDS_FORM_TDSSECTION6A_DETAIL, new { TDSReturnId = tdsReturnId }) .ConfigureAwait(false); return rows.ToList(); } } }