diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs index af8b2d953..6620567aa 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs @@ -98,6 +98,27 @@ public class PurchaseOrderAppService : return dictionary; } + /// + /// 【创建】采购订单 + /// + /// + /// + [HttpPost("")] + public override async Task CreateAsync(PurchaseOrderEditInput input) + { + if (string.IsNullOrWhiteSpace(input.Number)) + { + input.Number = await _purchaseOrderManager + .GenerateNumberAsync(nameof(PurchaseOrder), Clock.Normalize(input.ActiveDate)).ConfigureAwait(false); + } + + var entity = ObjectMapper.Map(input); + + await _purchaseOrderManager.CreateAsync(entity).ConfigureAwait(false); + + return ObjectMapper.Map(entity); + } + #region 校验 /// @@ -140,27 +161,6 @@ public class PurchaseOrderAppService : #endregion - /// - /// 【创建】采购订单 - /// - /// - /// - [HttpPost("")] - public override async Task CreateAsync(PurchaseOrderEditInput input) - { - if (string.IsNullOrWhiteSpace(input.Number)) - { - input.Number = await _purchaseOrderManager - .GenerateNumberAsync(nameof(PurchaseOrder), Clock.Normalize(input.ActiveDate)).ConfigureAwait(false); - } - - var entity = ObjectMapper.Map(input); - - await _purchaseOrderManager.CreateAsync(entity).ConfigureAwait(false); - - return ObjectMapper.Map(entity); - } - /// /// 【批量创建】采购订单 /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Orders/PurchaseOrders/PurchaseOrderManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Orders/PurchaseOrders/PurchaseOrderManager.cs index c87e0fc62..721b1c17c 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Orders/PurchaseOrders/PurchaseOrderManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Orders/PurchaseOrders/PurchaseOrderManager.cs @@ -54,8 +54,8 @@ public class PurchaseOrderManager : SfsStoreManagerBase diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Orders/PurchaseOrderEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Orders/PurchaseOrderEventHandler.cs index 5b8074599..143c43909 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Orders/PurchaseOrderEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Orders/PurchaseOrderEventHandler.cs @@ -107,6 +107,10 @@ public class PurchaseOrderEventHandler //供应商窗口 var supplierTimeWindowDtos = await _supplierTimeWindowAppService.GetListBySupplierCodeAsync(purchaseOrder.SupplierCode).ConfigureAwait(false); + if (!supplierTimeWindowDtos.Any()) + { + throw new UserFriendlyException($"供应商窗口【{purchaseOrder.SupplierCode}】没设置"); + } //一次性返回所有物品信息 var itemBasicDtos = await _itemBasicAppService.GetByCodesAsync(itemCodes).ConfigureAwait(false); @@ -173,13 +177,13 @@ public class PurchaseOrderEventHandler //todo 一个物品多个包装?怎么取值 //标包数 - var itemPackDto=ItemPacks.First(p => p.ItemCode == purchaseOrderDetaildetail.ItemCode); + var itemPackDto = itemBasicDtos.First(p=>p.Code== purchaseOrderDetaildetail.ItemCode).StdPackQty; //总箱数 - var itemPackingCount = (int)(itemQty / itemPackDto.Qty); - if (itemQty > itemPackDto.Qty) + var itemPackingCount = (int)(itemQty / itemPackDto); + if (itemQty > itemPackDto) { - if (itemQty % itemPackDto.Qty != 0) + if (itemQty % itemPackDto != 0) { itemPackingCount++; } @@ -214,7 +218,7 @@ public class PurchaseOrderEventHandler supplierAsnDetailInput.ItemDesc2 = itemBasicDto.Desc2; //标包 - supplierAsnDetailInput.StdPackQty = itemPackDto.Qty; + supplierAsnDetailInput.StdPackQty = itemPackDto; supplierAsnDetailInput.SupplierPackQty = supplierItemDto.SupplierPackQty; supplierAsnDetailInput.SupplierPackUom = supplierItemDto.SupplierPackUom; @@ -228,11 +232,11 @@ public class PurchaseOrderEventHandler supplierAsnDetailInput.RecommendErpCode = purchaseOrderDetaildetail.LocationErpCode; supplierAsnDetailInput.PoNumber = purchaseOrder.Number; - supplierAsnDetailInput.Qty = itemQty>itemPackDto.Qty ? itemPackDto.Qty : itemQty; + supplierAsnDetailInput.Qty = itemQty>itemPackDto ? itemPackDto : itemQty; - itemQty-=itemPackDto.Qty; + itemQty-=itemPackDto; - var InventoryLabelEditInput = await BuildInventoryLabelEditInputAsync(supplierAsnEditInput, supplierAsnDetailInput, supplierDto, itemBasicDto, supplierItemDto, itemPackDto).ConfigureAwait(false); + var InventoryLabelEditInput = await BuildInventoryLabelEditInputAsync(supplierAsnEditInput, supplierAsnDetailInput, supplierDto, itemBasicDto, supplierItemDto).ConfigureAwait(false); inventoryLabelEditInputs.Add(InventoryLabelEditInput); supplierAsnEditInput.Details.Add(supplierAsnDetailInput); @@ -260,8 +264,7 @@ public class PurchaseOrderEventHandler SupplierAsnDetailInput supplierAsnDetail, SupplierDTO supplierDto, ItemBasicDTO itemBasicDto, - SupplierItemDTO supplierItemDto, - ItemPackDTO itemPackDto) + SupplierItemDTO supplierItemDto) { if (itemBasicDto == null) @@ -308,7 +311,7 @@ public class PurchaseOrderEventHandler inputLabel.LabelStatus = LabelStatus.Enable; inputLabel.Specifications = itemBasicDto.Color; - inputLabel.StdPackQty = itemPackDto.Qty; + inputLabel.StdPackQty = itemBasicDto.StdPackQty; inputLabel.SupplierItemCode = supplierItemDto.SupplierItemCode; inputLabel.SupplierItemName = supplierItemDto.ItemName;