using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using Microsoft.Extensions.Logging; using MMDAL.DTO.MMHead; using MMDAL.Query.MM; namespace MMDAL.CustomCode.MMDocument { public class MMDocumentDAL : IMMDocumentDAL { private readonly IQueryExecutor _QueryExecutor; private readonly ILogger _Logger; public MMDocumentDAL(IQueryExecutor queryExecutor, ILogger logger) { _QueryExecutor = queryExecutor; _Logger = logger; } public async Task> GetMMDocumentHeads( MMDocumentFilterDTO filter, LoginDTO login, CancellationToken ct) { var param = new { filter.FromDocumentId, filter.ToDocumentId, filter.BizTransactionTypeId, filter.BizTransactionClassId, filter.BizTransactionSubClassId, filter.OUId, filter.PartyId, filter.PartyBranchId, filter.NumberOfCopy, filter.CopyNameTypeId, filter.IsOriginalOnly, }; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_HEAD, param, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentDetails( int[] documentIds, bool includeB2BFields, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_DETAIL, new { DocumentIds = documentIds, IncludeB2BFields = includeB2BFields ? 1 : 0 }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentCharges( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_CHARGES, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetTermsandConditions( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_TERMS, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentLotDetails( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_LOT_DETAIL, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentSchedules( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_SCHEDULES, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentProcesses( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_PROCESSES, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentParameters( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_PARAMETERS, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentAddons( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_ADDONS, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentPackDetails( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_PACK_DETAILS, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentItemImages( int[] itemIds, LoginDTO login, CancellationToken ct) { if (itemIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_ITEM_IMAGES, new { ItemIds = itemIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentVoucherDetails( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_VOUCHER_DETAILS, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentBillAllocations( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_BILL_ALLOCATIONS, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentCostCenterAllocations( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_COST_CENTER_ALLOCATIONS, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentItemPartyDocuments( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_ITEM_PARTY, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } public async Task> GetMMDocumentPreDocumentChain( int[] documentIds, LoginDTO login, CancellationToken ct) { if (documentIds.Length == 0) return []; var result = await _QueryExecutor.QueryAsync( login, MMDocumentQB.GET_MM_DOCUMENT_PRE_DOCUMENTS, new { DocumentIds = documentIds }, cancellationToken: ct).ConfigureAwait(false); return result.ToList(); } } }