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
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;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|