From 6977708099df038b1f367dd6d5c8779039da4300 Mon Sep 17 00:00:00 2001 From: Piotr Kus Date: Sun, 6 Apr 2025 17:16:22 +0200 Subject: [PATCH] * Added GetOrderNumbersByWz method to MaterialTransactionService --- .../Services/IMaterialTransactionService.cs | 1 + .../Services/MaterialTransactionService.cs | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/SytelineSaAppEfDataModel/Services/IMaterialTransactionService.cs b/SytelineSaAppEfDataModel/Services/IMaterialTransactionService.cs index 60774ee..9050da6 100644 --- a/SytelineSaAppEfDataModel/Services/IMaterialTransactionService.cs +++ b/SytelineSaAppEfDataModel/Services/IMaterialTransactionService.cs @@ -8,4 +8,5 @@ public interface IMaterialTransactionService Task GetByWzNumber(string wzNumber); Task> GetByWzNumbers(ISet wzNumbers); Task> GetByOrderNumber(string orderNumber); + Task> GetOrderNumbersByWz(ISet wzNumbers); } \ No newline at end of file diff --git a/SytelineSaAppEfDataModel/Services/MaterialTransactionService.cs b/SytelineSaAppEfDataModel/Services/MaterialTransactionService.cs index e278475..a2e9fb8 100644 --- a/SytelineSaAppEfDataModel/Services/MaterialTransactionService.cs +++ b/SytelineSaAppEfDataModel/Services/MaterialTransactionService.cs @@ -45,4 +45,25 @@ public class MaterialTransactionService(SytelineSaAppDbContext context, IMapper return await context.MaterialTransactions.Where(x => x.RefNum == orderNumber).OrderByDescending(x => x.TransDate) .Select(x => mapper.Map(x)).ToListAsync(); } + + public async Task> GetOrderNumbersByWz(ISet wzNumbers) + { + if (!wzNumbers.Any()) + return []; + + var wzNumbersList = string.Join(",", wzNumbers.Select(w => $"'{w}'")); + + var sql = $@" + SELECT z.* + FROM ZPL_InternalNum_Matltran z + WHERE z.MTGroupNum <> '' + AND z.MTGroupNum IN ({wzNumbersList})"; + + IList result = await context.MaterialTransactions + .FromSqlRaw(sql) + .AsNoTracking() + .ToListAsync(); + + return result.Select(x => mapper.Map(x)); + } } \ No newline at end of file