|
|
@ -53,7 +53,6 @@ public class TransferLibRequestEventHandler |
|
|
|
var entity = eventData.Entity; |
|
|
|
var enumTransSubType = Enum.Parse<EnumTransSubType>(entity.Type); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
if (entity.DirectCreateNote) |
|
|
|
{ |
|
|
@ -88,133 +87,6 @@ public class TransferLibRequestEventHandler |
|
|
|
|
|
|
|
input.Details.ForEach(p => { p.OnTheWayLocationCode = locationDto.Code; }); |
|
|
|
|
|
|
|
//校验
|
|
|
|
foreach (var detailObj in input.Details) |
|
|
|
{ |
|
|
|
if (detailObj.IsPackingCodeFrom) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendFromPackingCode != detailObj.HandledFromPackingCode) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐From箱码必须等于实际From箱码"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (detailObj.IsPackingCodeTo) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendToPackingCode != detailObj.HandledToPackingCode) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐To箱码必须等于实际To箱码"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (detailObj.IsLotFrom) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendFromLot != detailObj.HandledFromLot) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐From批次必须等于实际From批次"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (detailObj.IsLotTo) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendToLot != detailObj.HandledToLot) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐To批次必须等于实际To批次"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//if (detailObj.IsItemCodeFrom)
|
|
|
|
//{
|
|
|
|
//}
|
|
|
|
|
|
|
|
//if (detailObj.IsItemCodeTo)
|
|
|
|
//{
|
|
|
|
//}
|
|
|
|
|
|
|
|
//if (detailObj.IsStatusFrom)
|
|
|
|
//{
|
|
|
|
//}
|
|
|
|
|
|
|
|
//if (detailObj.IsStatusTo)
|
|
|
|
//{
|
|
|
|
//}
|
|
|
|
|
|
|
|
if (detailObj.IsLocationCodeFrom) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendFromLocationCode != detailObj.HandledFromLocationCode) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐From库位必须等于实际From库位"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (detailObj.IsLocationCodeTo) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendToLocationCode != detailObj.HandledToLocationCode) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐To库位必须等于实际To库位"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (detailObj.IsLocationGroupFrom) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendFromLocationGroup != detailObj.HandledFromLocationGroup) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐From库位组必须等于实际From库位组"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (detailObj.IsLocationGroupTo) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendToLocationGroup != detailObj.HandledToLocationGroup) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐To库位组必须等于实际To库位组"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (detailObj.IsLocationAreaFrom) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendFromLocationArea != detailObj.HandledFromLocationArea) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐From库区必须等于实际From库区"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (detailObj.IsLocationAreaTo) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendToLocationArea != detailObj.HandledToLocationArea) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐To库区必须等于实际To库区"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (detailObj.IsLocationErpCodeFrom) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendFromLocationErpCode != detailObj.HandledFromLocationErpCode) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐From ERP库区必须等于实际From ERP库区"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (detailObj.IsLocationErpCodeTo) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendToLocationErpCode != detailObj.HandledToLocationErpCode) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐To ERP库区必须等于实际To ERP库区"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (detailObj.IsQtyFrom) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendFromQty != detailObj.HandledFromQty) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐From数量必须等于实际From数量"); |
|
|
|
} |
|
|
|
} |
|
|
|
if (detailObj.IsQtyTo) |
|
|
|
{ |
|
|
|
if (detailObj.RecommendToQty != detailObj.HandledToQty) |
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"触发校验:推荐To数量必须等于实际To数量"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
await _transferLibJobManager.AddAsync(input).ConfigureAwait(false); |
|
|
|
} |
|
|
|
|
|
|
|