shanji 2 years ago
parent
commit
359a9714f3
  1. 13
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  2. 2
      BBWYB.Server.Model/Dto/Request/PurchaseOrder/AssociationPurchaseOrderRequest.cs

13
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -542,6 +542,7 @@ namespace BBWYB.Server.Business
/// <param name="request"></param>
public void AssociatePurchaseOrder(AssociationOrderRequest request)
{
nLogManager.Default().Info($"AssociatePurchaseOrder {JsonConvert.SerializeObject(request)}");
var dbOrder = fsql.Select<Order>(request.OrderId).ToOne();
if (dbOrder == null)
throw new BusinessException("订单不存在");
@ -560,6 +561,18 @@ namespace BBWYB.Server.Business
if (request.AssociationPurchaseOrderList.Any(x => dbInvalidPurchaseOrderIdList.Contains(x.PurchaseOrderId)))
throw new BusinessException("关联采购单时不能包含历史采购单");
#region 数据验证
var validation_groups_pid = request.AssociationPurchaseOrderList.GroupBy(po => po.PurchaseOrderId);
if (validation_groups_pid.Any(x => x.Count() > 1))
throw new BusinessException("不允许包含重复的采购单");
foreach (var apo in request.AssociationPurchaseOrderList)
{
if (Math.Abs(apo.PurchaseAmount - apo.AssocationOrderCostDetailList.Sum(aocd => aocd.SkuAmount)) > 1)
throw new BusinessException($"采购单{apo.PurchaseOrderId}的采购货款与明细采购货款总和误差不能超过1");
}
#endregion
#region 读取采购单中的采购账号/采购方案
IList<string> purchaseAccountIdList = request.AssociationPurchaseOrderList.Select(x => string.IsNullOrEmpty(x.PurchaseAccountId) ?
x.PurchaseAccountName :

2
BBWYB.Server.Model/Dto/Request/PurchaseOrder/AssociationPurchaseOrderRequest.cs

@ -35,7 +35,7 @@
public string PurchaserName { get; set; }
/// <summary>
/// 采购金额
/// 采购金额(货款)
/// </summary>
public decimal PurchaseAmount { get; set; }

Loading…
Cancel
Save