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.
51 lines
2.0 KiB
51 lines
2.0 KiB
using System.Threading.Tasks;
|
|
using Win_in.Sfs.Basedata.Application.Contracts;
|
|
using Win_in.Sfs.Shared.Domain;
|
|
using Win_in.Sfs.Wms.Store.Domain.Acl.Location;
|
|
|
|
namespace Win_in.Sfs.Wms.Store.Event;
|
|
|
|
public static class IHasLocationExtensions
|
|
{
|
|
public static async Task TrySetLocationAsync(this IHasLocation hasLocation, ILocationAclService locationAclService, string locationCode)
|
|
{
|
|
if (string.IsNullOrEmpty(hasLocation.LocationErpCode))
|
|
{
|
|
var location = await locationAclService.GetByCodeAsync(locationCode).ConfigureAwait(false);
|
|
if (location != null)
|
|
{
|
|
hasLocation.LocationErpCode = location.ErpLocationCode;
|
|
hasLocation.WarehouseCode = location.WarehouseCode;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static async Task TrySetLocationAsync(this IHasFromToLocation hasFromTolocation, ILocationAclService locationAclService)
|
|
{
|
|
if (string.IsNullOrEmpty(hasFromTolocation.FromLocationErpCode))
|
|
{
|
|
var location = await locationAclService.GetByCodeAsync(hasFromTolocation.FromLocationCode).ConfigureAwait(false);
|
|
if (location != null)
|
|
{
|
|
hasFromTolocation.FromLocationErpCode = location.ErpLocationCode;
|
|
if (string.IsNullOrEmpty(hasFromTolocation.FromWarehouseCode))
|
|
{
|
|
hasFromTolocation.FromWarehouseCode = location.WarehouseCode;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (string.IsNullOrEmpty(hasFromTolocation.ToLocationErpCode))
|
|
{
|
|
var location = await locationAclService.GetByCodeAsync(hasFromTolocation.ToLocationCode).ConfigureAwait(false);
|
|
if (location != null)
|
|
{
|
|
hasFromTolocation.ToLocationErpCode = location.ErpLocationCode;
|
|
if (string.IsNullOrEmpty(hasFromTolocation.ToWarehouseCode))
|
|
{
|
|
hasFromTolocation.ToWarehouseCode = location.WarehouseCode;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|