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.
74 lines
2.9 KiB
74 lines
2.9 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using Volo.Abp;
|
|
using Volo.Abp.DependencyInjection;
|
|
using Volo.Abp.Domain.Entities.Events.Distributed;
|
|
using Volo.Abp.EventBus.Distributed;
|
|
using Volo.Abp.ObjectMapping;
|
|
using Volo.Abp.Timing;
|
|
using Volo.Abp.Uow;
|
|
using Volo.Abp.Users;
|
|
using Win_in.Sfs.Shared.Event;
|
|
using Win_in.Sfs.Wms.Inventory.Domain;
|
|
|
|
namespace Win_in.Sfs.Wms.Inventory
|
|
{
|
|
/// <summary>
|
|
/// 采购收货记录触发的库存相关订阅事件
|
|
/// </summary>
|
|
public class PurchaseReceiptCreatedNoteEventHandler :
|
|
//IDistributedEventHandler<EntityCreatedEto<PurchaseReceiptNoteETO>>,
|
|
ITransientDependency
|
|
{
|
|
private readonly IObjectMapper _objectMapper;
|
|
private readonly IInventoryBalanceManager _inventoryBalanceManager;
|
|
private readonly IInventoryTransactionManager _inventoryTransactionManager;
|
|
public PurchaseReceiptCreatedNoteEventHandler(
|
|
IObjectMapper objectMapper,
|
|
IInventoryBalanceManager inventoryBalanceManager,
|
|
IInventoryTransactionManager inventoryTransactionManager
|
|
)
|
|
{
|
|
_objectMapper = objectMapper;
|
|
_inventoryBalanceManager = inventoryBalanceManager;
|
|
_inventoryTransactionManager = inventoryTransactionManager;
|
|
}
|
|
|
|
#region ------ 屏蔽此处订阅事件,调整在检验记录中入库 ------
|
|
|
|
/// <summary>
|
|
/// 采购收货记录创建时,入库(收货记录创建的时候,商品状态均为待检)(采购收货记录的状态来源为库位的默认库存状态)
|
|
/// </summary>
|
|
/// <param name="eventData"></param>
|
|
/// <returns></returns>
|
|
[UnitOfWork]
|
|
public virtual async Task HandleEventAsync(EntityCreatedEto<PurchaseReceiptNoteETO> eventData)
|
|
{
|
|
//判断
|
|
Check.NotNull(eventData, nameof(eventData));
|
|
//订阅:收货记录创建时,入库
|
|
var entity = eventData.Entity;
|
|
//采购收货记录详细信息
|
|
var details = eventData.Entity.Details;
|
|
try
|
|
{
|
|
//变更库存余额
|
|
var inventoryWithLocations =
|
|
_objectMapper.Map<List<PurchaseReceiptNoteDetailETO>, List<InventoryWithLocation>>(details);
|
|
var balance = await _inventoryBalanceManager.InboundAsync(inventoryWithLocations);
|
|
|
|
////添加库存事务
|
|
//var inventoryTransactions = _objectMapper.Map<List<PurchaseReceiptNoteDetailETO>, List<InventoryTransactionETO>>(details);
|
|
//await _inventoryTransactionManager.AddFromPurchaseReceiptNoteAsync(eventData.Entity);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new UserFriendlyException($"收货记录创建时,库存余额和库存事务更新失败!{Environment.NewLine}{ex.Message}");
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|
|
|