From 94c4586c35e471f7e3ef689cb72035cbe9217c01 Mon Sep 17 00:00:00 2001 From: Piotr Kus Date: Wed, 2 Apr 2025 21:25:13 +0200 Subject: [PATCH] * Additional Functions added to services * Changes in MaterialTransaction mapping --- .../Services/IScheduleOrderDetailsService.cs | 3 + .../Services/IScheduleOrderService.cs | 1 + .../Services/ScheduleOrderDetailsService.cs | 6 ++ .../Services/ScheduleOrderService.cs | 9 +++ .../Dtos/MaterialTransactionDto.cs | 56 +++++++++---------- .../Entities/MaterialTransaction.cs | 56 +++++++++---------- .../Services/IMaterialTransactionService.cs | 1 + .../Services/MaterialTransactionService.cs | 7 +++ .../SytelineSaAppDbContext.cs | 5 +- 9 files changed, 86 insertions(+), 58 deletions(-) diff --git a/FaKrosnoEfDataModel/Services/IScheduleOrderDetailsService.cs b/FaKrosnoEfDataModel/Services/IScheduleOrderDetailsService.cs index 1500513..0f3fc63 100644 --- a/FaKrosnoEfDataModel/Services/IScheduleOrderDetailsService.cs +++ b/FaKrosnoEfDataModel/Services/IScheduleOrderDetailsService.cs @@ -10,5 +10,8 @@ namespace FaKrosnoEfDataModel.Services public interface IScheduleOrderDetailsService { Task?> GetScheduleOrderDetailsAsync(int scheduleOrderId); + + Task?> GetScheduleOrderDetailMiscsAsync( + IList scheduleOrderDetailIds, string miscName); } } diff --git a/FaKrosnoEfDataModel/Services/IScheduleOrderService.cs b/FaKrosnoEfDataModel/Services/IScheduleOrderService.cs index e0199f9..74f133f 100644 --- a/FaKrosnoEfDataModel/Services/IScheduleOrderService.cs +++ b/FaKrosnoEfDataModel/Services/IScheduleOrderService.cs @@ -12,6 +12,7 @@ namespace FaKrosnoEfDataModel.Services Task> GetEntities(); Task GetById(int id); Task> GetByRecipientId(int recipientId); + Task> GetByPurchaserId(int purchaserId); Task> GetEntitiesByLastUpdateDate(DateTime date); Task> GetByRecipientAndLastUpdateDate(int recipientId, DateTime date); } diff --git a/FaKrosnoEfDataModel/Services/ScheduleOrderDetailsService.cs b/FaKrosnoEfDataModel/Services/ScheduleOrderDetailsService.cs index eed0a92..728a45d 100644 --- a/FaKrosnoEfDataModel/Services/ScheduleOrderDetailsService.cs +++ b/FaKrosnoEfDataModel/Services/ScheduleOrderDetailsService.cs @@ -21,5 +21,11 @@ namespace FaKrosnoEfDataModel.Services return await Context.ScheduleOrderDetails.Where(x => x.ScheduleOrderID == scheduleOrderId) .ProjectTo(Mapper.ConfigurationProvider).ToListAsync(); } + + public async Task?> GetScheduleOrderDetailMiscsAsync(IList scheduleOrderDetailIds, string miscName) + { + return await Context.ScheduleOrderDetailMiscs.Where(x => x.ID == scheduleOrderDetailIds.First()) + .ProjectTo(Mapper.ConfigurationProvider).ToListAsync(); + } } } diff --git a/FaKrosnoEfDataModel/Services/ScheduleOrderService.cs b/FaKrosnoEfDataModel/Services/ScheduleOrderService.cs index 3c16c08..1cc53a3 100644 --- a/FaKrosnoEfDataModel/Services/ScheduleOrderService.cs +++ b/FaKrosnoEfDataModel/Services/ScheduleOrderService.cs @@ -26,6 +26,15 @@ namespace FaKrosnoEfDataModel.Services return scheduleOrders.Where(x => x?.RecipientID == recipientId); } + public async Task> GetByPurchaserId(int purchaserId) + { + return await Context.ScheduleOrders.Include(x => x.Recipient).ThenInclude(x => x.Purchaser) + .Include(x => x.ScheduleOrderDetails).ThenInclude(x => x.ScheduleOrderDetailMiscs) + .Include(x => x.ScheduleOrderDetails).ThenInclude(x => x.ScheduleOrderDetailDetails) + .Where(x => x.Recipient.Purchaser.ID == purchaserId).Select(x => Mapper.Map(x)) + .ToListAsync(); + } + public async Task> GetByRecipientAndLastUpdateDate(int recipientId, DateTime date) { IList scheduleOrders = (await GetEntitiesByLastUpdateDate(date)).ToList(); diff --git a/SytelineSaAppEfDataModel/Dtos/MaterialTransactionDto.cs b/SytelineSaAppEfDataModel/Dtos/MaterialTransactionDto.cs index f9290cb..0643fea 100644 --- a/SytelineSaAppEfDataModel/Dtos/MaterialTransactionDto.cs +++ b/SytelineSaAppEfDataModel/Dtos/MaterialTransactionDto.cs @@ -2,40 +2,40 @@ namespace SytelineSaAppEfDataModel.Dtos; public class MaterialTransactionDto { - public string MTGroup { get; set; } - public string MTGroupNum { get; set; } - public long TransNum { get; set; } - public string Item { get; set; } + public string? MTGroup { get; set; } + public string? MTGroupNum { get; set; } + public decimal? TransNum { get; set; } + public string? Item { get; set; } public DateTime? TransDate { get; set; } public decimal? Qty { get; set; } public decimal? Cost { get; set; } - public string Whse { get; set; } - public string Loc { get; set; } - public string RefNum { get; set; } + public string? Whse { get; set; } + public string? Loc { get; set; } + public string? RefNum { get; set; } public short? RefLineSuf { get; set; } public short? RefRelease { get; set; } - public string ReasonCode { get; set; } - public string TransType { get; set; } - public string RefType { get; set; } - public string MTReasonType { get; set; } - public string PrefixId { get; set; } - public string SequenceId { get; set; } - public string WhseSequenceId { get; set; } - public bool WhseSplit { get; set; } + public string? ReasonCode { get; set; } + public string? TransType { get; set; } + public string? RefType { get; set; } + public string? MTReasonType { get; set; } + public long? PrefixId { get; set; } + public long? SequenceId { get; set; } + public long? WhseSequenceId { get; set; } + public bool? WhseSplit { get; set; } public Guid? VariableId { get; set; } - public string FormName { get; set; } - public bool InWorkflow { get; set; } - public bool NoteExistsFlag { get; set; } - public DateTime RecordDate { get; set; } - public Guid RowPointer { get; set; } - public string CreatedBy { get; set; } - public string UpdatedBy { get; set; } - public DateTime CreateDate { get; set; } - public string CustNum { get; set; } - public string VendNum { get; set; } + public string? FormName { get; set; } + public bool? InWorkflow { get; set; } + public bool? NoteExistsFlag { get; set; } + public DateTime? RecordDate { get; set; } + public Guid? RowPointer { get; set; } + public string? CreatedBy { get; set; } + public string? UpdatedBy { get; set; } + public DateTime? CreateDate { get; set; } + public string? CustNum { get; set; } + public string? VendNum { get; set; } public int? RecipNum { get; set; } - public string Uf_FKR_internal_num_matltran_zn { get; set; } + public string? Uf_FKR_internal_num_matltran_zn { get; set; } public Guid? Session_Id { get; set; } - public string Uf_MobileAppUser { get; set; } - public string NR_KARTY_KONTROLNEJ { get; set; } + public string? Uf_MobileAppUser { get; set; } + public string? NR_KARTY_KONTROLNEJ { get; set; } } \ No newline at end of file diff --git a/SytelineSaAppEfDataModel/Entities/MaterialTransaction.cs b/SytelineSaAppEfDataModel/Entities/MaterialTransaction.cs index cf7dd43..48e0a8e 100644 --- a/SytelineSaAppEfDataModel/Entities/MaterialTransaction.cs +++ b/SytelineSaAppEfDataModel/Entities/MaterialTransaction.cs @@ -2,40 +2,40 @@ namespace SytelineSaAppEfDataModel.Entities; public class MaterialTransaction { - public string MTGroup { get; set; } - public string MTGroupNum { get; set; } - public long TransNum { get; set; } - public string Item { get; set; } + public string? MTGroup { get; set; } + public string? MTGroupNum { get; set; } + public decimal? TransNum { get; set; } + public string? Item { get; set; } public DateTime? TransDate { get; set; } public decimal? Qty { get; set; } public decimal? Cost { get; set; } - public string Whse { get; set; } - public string Loc { get; set; } - public string RefNum { get; set; } + public string? Whse { get; set; } + public string? Loc { get; set; } + public string? RefNum { get; set; } public short? RefLineSuf { get; set; } public short? RefRelease { get; set; } - public string ReasonCode { get; set; } - public string TransType { get; set; } - public string RefType { get; set; } - public string MTReasonType { get; set; } - public string PrefixId { get; set; } - public string SequenceId { get; set; } - public string WhseSequenceId { get; set; } - public bool WhseSplit { get; set; } + public string? ReasonCode { get; set; } + public string? TransType { get; set; } + public string? RefType { get; set; } + public string? MTReasonType { get; set; } + public long? PrefixId { get; set; } + public long? SequenceId { get; set; } + public long? WhseSequenceId { get; set; } + public bool? WhseSplit { get; set; } public Guid? VariableId { get; set; } - public string FormName { get; set; } - public bool InWorkflow { get; set; } - public bool NoteExistsFlag { get; set; } - public DateTime RecordDate { get; set; } - public Guid RowPointer { get; set; } - public string CreatedBy { get; set; } - public string UpdatedBy { get; set; } - public DateTime CreateDate { get; set; } - public string CustNum { get; set; } - public string VendNum { get; set; } + public string? FormName { get; set; } + public bool? InWorkflow { get; set; } + public bool? NoteExistsFlag { get; set; } + public DateTime? RecordDate { get; set; } + public Guid? RowPointer { get; set; } + public string? CreatedBy { get; set; } + public string? UpdatedBy { get; set; } + public DateTime? CreateDate { get; set; } + public string? CustNum { get; set; } + public string? VendNum { get; set; } public int? RecipNum { get; set; } - public string Uf_FKR_internal_num_matltran_zn { get; set; } + public string? Uf_FKR_internal_num_matltran_zn { get; set; } public Guid? Session_Id { get; set; } - public string Uf_MobileAppUser { get; set; } - public string NR_KARTY_KONTROLNEJ { get; set; } + public string? Uf_MobileAppUser { get; set; } + public string? NR_KARTY_KONTROLNEJ { get; set; } } \ No newline at end of file diff --git a/SytelineSaAppEfDataModel/Services/IMaterialTransactionService.cs b/SytelineSaAppEfDataModel/Services/IMaterialTransactionService.cs index 86ef880..47e4ebf 100644 --- a/SytelineSaAppEfDataModel/Services/IMaterialTransactionService.cs +++ b/SytelineSaAppEfDataModel/Services/IMaterialTransactionService.cs @@ -6,5 +6,6 @@ public interface IMaterialTransactionService { Task> GetAll(); Task GetByWzNumber(string wzNumber); + Task> GetByWzNumbers(ISet wzNumbers); Task> GetByOrderNumber(string orderNumber); } \ No newline at end of file diff --git a/SytelineSaAppEfDataModel/Services/MaterialTransactionService.cs b/SytelineSaAppEfDataModel/Services/MaterialTransactionService.cs index edb47ab..6902679 100644 --- a/SytelineSaAppEfDataModel/Services/MaterialTransactionService.cs +++ b/SytelineSaAppEfDataModel/Services/MaterialTransactionService.cs @@ -17,6 +17,13 @@ public class MaterialTransactionService(SytelineSaAppDbContext context, IMapper .Where(x => x.MTGroupNum == wzNumber) .Select(x => mapper.Map(x)).FirstOrDefaultAsync(); } + + public async Task> GetByWzNumbers(ISet wzNumbers) + { + return await context.MaterialTransactions + .Where(x => !string.IsNullOrWhiteSpace(x.MTGroupNum) && wzNumbers.Contains(x.MTGroupNum)) + .Select(x => mapper.Map(x)).ToListAsync(); + } public async Task> GetByOrderNumber(string orderNumber) { diff --git a/SytelineSaAppEfDataModel/SytelineSaAppDbContext.cs b/SytelineSaAppEfDataModel/SytelineSaAppDbContext.cs index 7a386c9..ec06d4d 100644 --- a/SytelineSaAppEfDataModel/SytelineSaAppDbContext.cs +++ b/SytelineSaAppEfDataModel/SytelineSaAppDbContext.cs @@ -714,7 +714,7 @@ namespace SytelineSaAppEfDataModel entity.Property(e => e.TransNum) .HasColumnName("trans_num") - .HasColumnType("bigint"); + .HasColumnType("decimal"); entity.Property(e => e.Item) .HasColumnName("item") @@ -795,7 +795,8 @@ namespace SytelineSaAppEfDataModel entity.Property(e => e.WhseSplit) .HasColumnName("WhseSplit") - .HasColumnType("tinyint"); + .HasColumnType("tinyint") + .IsRequired(false);; entity.Property(e => e.VariableId) .HasColumnName("VariableId")