You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.5 KiB

2 years ago
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;
}
}
}
}
}