* Added GetOrderNumbersByWz method to MaterialTransactionService

This commit is contained in:
2025-04-06 17:16:22 +02:00
parent d7f49829a2
commit 6977708099
2 changed files with 22 additions and 0 deletions

View File

@@ -8,4 +8,5 @@ public interface IMaterialTransactionService
Task<MaterialTransactionDto?> GetByWzNumber(string wzNumber);
Task<IEnumerable<MaterialTransactionDto>> GetByWzNumbers(ISet<string> wzNumbers);
Task<IEnumerable<MaterialTransactionDto>> GetByOrderNumber(string orderNumber);
Task<IEnumerable<MaterialTransactionDto>> GetOrderNumbersByWz(ISet<string> wzNumbers);
}

View File

@@ -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<MaterialTransactionDto>(x)).ToListAsync();
}
public async Task<IEnumerable<MaterialTransactionDto>> GetOrderNumbersByWz(ISet<string> 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<MaterialTransaction> result = await context.MaterialTransactions
.FromSqlRaw(sql)
.AsNoTracking()
.ToListAsync();
return result.Select(x => mapper.Map<MaterialTransactionDto>(x));
}
}