using AccountsDAL.DTO.AccountsReports; using AccountsDAL.DTO.Reports; using GB5Shared.DTO.Framework.Login; namespace AccountsDAL.CustomCode.AccountReports.AccountTrialBalance { public interface IAccountTrialBalanceReportDAL { Task GetTrialBalanceReport( int firstNumber, int maxResult, AccountReportCriteria criteria, List sortBy, LoginDTO loginDTO); // Detailed variant (Opening/Debit/Credit/Closing). If criteria.PeriodFromDate/PeriodToDate // are both unset (DateTime.MinValue), resolves them from MGBPERIOD/MGBPERIODDETAIL via // criteria.PeriodType + criteria.AsOnDate first (the "Periodic" mode) — otherwise uses the // caller-supplied explicit range as-is. Task GetTrialBalanceDetailReport( int firstNumber, int maxResult, AccountReportCriteria criteria, List sortBy, LoginDTO loginDTO); // Comparative variant — Account level, Summary shape, one row per (account, axis-value). Task GetTrialBalanceComparativeReport( int firstNumber, int maxResult, AccountReportCriteria criteria, List sortBy, LoginDTO loginDTO); // Periodic variant — Account level, Summary shape, one row per (account, period-bucket). // criteria.PeriodFromDate/PeriodToDate bound the overall range to break down (defaulted by // the BLL to current-financial-year-to-date when unset); criteria.PeriodType selects the // bucket size (Daily/Weekly/Monthly/Quarterly/... via MGBPERIOD.PERIODTYPE). Task GetTrialBalancePeriodicReport( int firstNumber, int maxResult, AccountReportCriteria criteria, List sortBy, LoginDTO loginDTO); } }