using System.Threading.Tasks; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Wms.Inventory.Application.Contracts; using Win_in.Sfs.Wms.Store.Domain.Acl.ItemBasic; using Win_in.Sfs.Wms.Store.Domain.Acl.Location; namespace Win_in.Sfs.Wms.Store.Event; public static class TransactionCreateInputExtensions { public static async Task TrySetItemAndLocationAsync(this TransactionEditInput transaction, IItemBasicAclService itemBasicAppService, ILocationAclService locationAppService) { if (string.IsNullOrEmpty(transaction.ItemName)) { var item = await itemBasicAppService.GetByCodeAsync(transaction.ItemCode).ConfigureAwait(false); if (item != null) { transaction.ItemName = item.Name; transaction.ItemDesc1 = item.Desc1; transaction.ItemDesc2 = item.Desc2; } } if (string.IsNullOrEmpty(transaction.LocationErpCode)) { var location = await locationAppService.GetByCodeAsync(transaction.LocationCode).ConfigureAwait(false); if (location != null) { transaction.LocationArea = location.AreaCode; transaction.LocationGroup = location.LocationGroupCode; transaction.LocationErpCode = location.ErpLocationCode; if (string.IsNullOrEmpty(transaction.WarehouseCode)) { transaction.WarehouseCode = location.WarehouseCode; } } } } }