using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using MMDAL.DTO.AccountBooksDetail; using MMDAL.DTO.MMHead; using MMDAL.DTO.MMReports; namespace MMDAL.CustomCode.MMReports { public interface IMMReportsDAL { IAsyncEnumerable MMHeadRegister( int OrderbyType, int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool IsDocument = false, bool Count = false, CancellationToken cancellationToken = default); /// /// Active/UnApproved/Cancelled counts+totals per BizTransactionClass (UNION ALL'd with a /// pending-allocation-based row, see EmployeeQB-style shared-DTO-both-halves-populated pattern). /// Task<(List Items, int Total)> GetMMPendingStatusReport( int firstNumber, int maxResult, string bizTransactionClassIds, int? ouId, DateTime periodFromDate, DateTime periodToDate, LoginDTO loginDTO, CancellationToken ct = default); Task<(List Items, int Total)> GetMMRegisterPartyWiseSummaryReport( int firstNumber, int maxResult, string bizTransactionClassIds, int type, int? ouId, LoginDTO loginDTO, CancellationToken ct = default); Task<(List Items, int Total)> GetMMRegisterItemWiseReport( int firstNumber, int maxResult, string bizTransactionClassIds, int? ouId, LoginDTO loginDTO, CancellationToken ct = default); Task<(List Items, int Total)> GetMMPendingRegisterListReport( int firstNumber, int maxResult, string bizTransactionClassIds, int? ouId, LoginDTO loginDTO, CancellationToken ct = default); /// BizProcess Phase 8 -- open-document count per BizTransactionTypeId, no paging (dashboard overlay, small result set). Task> GetPendingCountsByTransactionType( IEnumerable bizTransactionTypeIds, LoginDTO loginDTO, CancellationToken ct = default); // Procurement Overview Dashboard (Phase 1) -- one composite method per tile, each // aggregating several of the primitives above plus the new MV_MMRegister-based queries // in MMReportsQB.cs. See the Procurement dashboard plan for the tile-by-tile scope. Task GetProcurementSpendOverview( string bizTransactionClassIdsCsv, IEnumerable bizTransactionClassIds, int? ouId, DateTime periodFromDate, DateTime periodToDate, LoginDTO loginDTO, CancellationToken ct = default); Task GetPRToPOTrackerDashboard( int firstNumber, int maxResult, int prBizTransactionClassId, int inquiryBizTransactionClassId, int quotationBizTransactionClassId, int poBizTransactionClassId, int? ouId, DateTime periodFromDate, DateTime periodToDate, LoginDTO loginDTO, CancellationToken ct = default); Task GetPOMonitoringDashboard( string poBizTransactionClassIdsCsv, int poBizTransactionClassId, int grnBizTransactionClassId, int? ouId, DateTime periodFromDate, DateTime periodToDate, LoginDTO loginDTO, CancellationToken ct = default); Task GetSpendAnalysisDashboard( string bizTransactionClassIdsCsv, IEnumerable bizTransactionClassIds, int? ouId, DateTime periodFromDate, DateTime periodToDate, LoginDTO loginDTO, CancellationToken ct = default); // Sales Overview Dashboard (Phase 1) -- Enquiry->Quotation->Order funnel tile. Reuses the // same generic GetFunnelStage/aging/open-list primitives GetPRToPOTrackerDashboard uses. Task GetSalesFunnelDashboard( int firstNumber, int maxResult, int enquiryBizTransactionClassId, int quotationBizTransactionClassId, int orderBizTransactionClassId, int? ouId, LoginDTO loginDTO, CancellationToken ct = default); } }