diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/UnplannedReceiptNoteEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/UnplannedReceiptNoteEventHandler.cs index e48588536..6168c04d2 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/UnplannedReceiptNoteEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/UnplannedReceiptNoteEventHandler.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -20,13 +21,28 @@ public class UnplannedReceiptNoteEventHandler public virtual async Task HandleEventAsync(SfsCreatedEntityEventData eventData) { var entity = eventData.Entity; - await AddExchangeDataAsync(entity).ConfigureAwait(false); + var copy = CopyEntity(entity); + if (entity.Details != null && entity.Details.Count > 0) + { + await AddExchangeDataAsync(copy).ConfigureAwait(false); + } + + } [UnitOfWork] public virtual async Task HandleEventAsync(SfsCreatedEntityEventData> eventData) { var entities = eventData.Entity; + List notelist = new List(); + foreach (var entity in entities) + { + if (entity.Details != null && entity.Details.Count > 0) + { + var copy = CopyEntity(entity); + notelist.Add(copy); + } + } await AddExchangeDataAsync(entities).ConfigureAwait(false); } @@ -40,5 +56,19 @@ public class UnplannedReceiptNoteEventHandler var exchangeData = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, ExchangeDataType, dtos).ConfigureAwait(false); await AddManyAsync(exchangeData).ConfigureAwait(false); } + private UnplannedReceiptNote CopyEntity(UnplannedReceiptNote p_note) + { + var json = System.Text.Json.JsonSerializer.Serialize(p_note); + var copy = System.Text.Json.JsonSerializer.Deserialize(json); + + + foreach (var detail in copy.Details) + { + detail.Qty = detail.Qty != 0 ? -Math.Abs(detail.Qty) : 0; + detail.HandledQty = detail.HandledQty != 0 ? -Math.Abs(detail.HandledQty) : 0; + detail.RecommendQty = detail.RecommendQty != 0 ? -Math.Abs(detail.RecommendQty) : 0; + } + return copy; + } }