Browse Source

删除采购方案接口

yijia
shanji 2 years ago
parent
commit
1f3ff1e886
  1. 11
      BBWYB.Server.API/Controllers/PurchaseSchemeController.cs
  2. 83
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  3. 9
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/DeletePurchaseSchemeRequest.cs
  4. 11
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/DeletePurchaseSkuRequest.cs

11
BBWYB.Server.API/Controllers/PurchaseSchemeController.cs

@ -165,5 +165,16 @@ namespace BBWYB.Server.API.Controllers
{ {
return purchaseSchemeBusiness.EditPurchaseRatio(request); return purchaseSchemeBusiness.EditPurchaseRatio(request);
} }
/// <summary>
/// 删除采购Sku
/// </summary>
/// <param name="request"></param>
/// <returns>最新的采购方案成本</returns>
[HttpDelete]
public decimal DeletePurchaseSku([FromBody]DeletePurchaseSkuRequest request)
{
return purchaseSchemeBusiness.DeletePurchaseSku(request);
}
} }
} }

83
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -225,6 +225,14 @@ namespace BBWYB.Server.Business
throw new BusinessException("更新方案缺少ProductId/SkuId"); throw new BusinessException("更新方案缺少ProductId/SkuId");
} }
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList == null ||
ps.PurchaseSchemeProductList.Count() == 0 ||
ps.PurchaseSchemeProductList.Any(psp => psp.PurchaseSchemeProductSkuList == null ||
psp.PurchaseSchemeProductSkuList.Count() == 0)))
{
throw new BusinessException("更新方案缺少商品信息");
}
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) || if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
string.IsNullOrEmpty(pp.PurchaserId2) || string.IsNullOrEmpty(pp.PurchaserId2) ||
@ -250,6 +258,15 @@ namespace BBWYB.Server.Business
throw new BusinessException("新增方案缺少ProductId/SkuId"); throw new BusinessException("新增方案缺少ProductId/SkuId");
} }
if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList == null ||
ps.PurchaseSchemeProductList.Count() == 0 ||
ps.PurchaseSchemeProductList.Any(psp => psp.PurchaseSchemeProductSkuList == null ||
psp.PurchaseSchemeProductSkuList.Count() == 0)))
{
throw new BusinessException("新增方案缺少商品信息");
}
if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) || if (batchCURDSchemeRequest.AddPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
string.IsNullOrEmpty(pp.PurchaserId2) || string.IsNullOrEmpty(pp.PurchaserId2) ||
string.IsNullOrEmpty(pp.PurchaserName)))) string.IsNullOrEmpty(pp.PurchaserName))))
@ -870,16 +887,27 @@ namespace BBWYB.Server.Business
long? pssId = null; long? pssId = null;
foreach (var schemeProduct in scheme.PurchaseSchemeProductList) foreach (var schemeProduct in scheme.PurchaseSchemeProductList)
{ {
foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList) var tartegtPurchaseProductSku = schemeProduct.PurchaseSchemeProductSkuList.FirstOrDefault(pss => pss.SkuId == request.SkuId &&
pss.PurchaseSkuId == request.PurchaseSkuId);
if (tartegtPurchaseProductSku != null)
{ {
if (schemeProductSku.SkuId == request.SkuId && tartegtPurchaseProductSku.PurchaseRatio = request.Ratio;
schemeProductSku.PurchaseSkuId == request.PurchaseSkuId) pssId = tartegtPurchaseProductSku.Id;
{
schemeProductSku.PurchaseRatio = request.Ratio;
pssId = schemeProductSku.Id;
}
defaultCost += ((schemeProductSku.ActualPrice ?? schemeProductSku.PurchaseSkuPrice) ?? 0) * (schemeProductSku.PurchaseRatio ?? 1);
} }
defaultCost += schemeProduct.PurchaseSchemeProductSkuList.Sum(pss => ((pss.ActualPrice ?? pss.PurchaseSkuPrice) ?? 0) * (pss.PurchaseRatio ?? 1));
//foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList)
//{
// if (schemeProductSku.SkuId == request.SkuId &&
// schemeProductSku.PurchaseSkuId == request.PurchaseSkuId)
// {
// schemeProductSku.PurchaseRatio = request.Ratio;
// pssId = schemeProductSku.Id;
// }
// defaultCost += ((schemeProductSku.ActualPrice ?? schemeProductSku.PurchaseSkuPrice) ?? 0) * (schemeProductSku.PurchaseRatio ?? 1);
//}
} }
if (pssId == null) if (pssId == null)
throw new BusinessException("未找到需要更新的采购配件"); throw new BusinessException("未找到需要更新的采购配件");
@ -890,5 +918,44 @@ namespace BBWYB.Server.Business
}); });
return defaultCost; return defaultCost;
} }
public decimal DeletePurchaseSku(DeletePurchaseSkuRequest request)
{
if (request.SchemeId == 0 || string.IsNullOrEmpty(request.SkuId) || string.IsNullOrEmpty(request.PurchaseSkuId))
throw new BusinessException("参数不完整");
var schemeList = GetPurchaseSchemeList(new QuerySchemeRequest()
{
IncludePurchaseSkuBasicInfo = 1,
SchemeId = request.SchemeId
});
if (schemeList.Count() == 0)
throw new BusinessException("采购方案不存在");
var scheme = schemeList[0];
var defaultCost = 0M;
long? pssId = null;
foreach (var schemeProduct in scheme.PurchaseSchemeProductList)
{
var tartegtPurchaseProductSku = schemeProduct.PurchaseSchemeProductSkuList.FirstOrDefault(pss => pss.SkuId == request.SkuId &&
pss.PurchaseSkuId == request.PurchaseSkuId);
if (tartegtPurchaseProductSku != null)
{
if (schemeProduct.PurchaseSchemeProductSkuList.Count() == 1)
throw new BusinessException("最后一个采购sku不能被移除");
pssId = tartegtPurchaseProductSku.Id;
}
defaultCost += schemeProduct.PurchaseSchemeProductSkuList.Where(pss => !(pss.SkuId == request.SkuId && pss.PurchaseSkuId == request.PurchaseSkuId))
.Sum(pss => ((pss.ActualPrice ?? pss.PurchaseSkuPrice) ?? 0) * (pss.PurchaseRatio ?? 1));
}
if (pssId == null)
throw new BusinessException("未找到需要移除的采购sku");
fsql.Transaction(() =>
{
fsql.Update<PurchaseScheme>(request.SchemeId).Set(ps => ps.DefaultCost, defaultCost).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProductSku>(pssId.Value).ExecuteAffrows();
});
return defaultCost;
}
} }
} }

9
BBWYB.Server.Model/Dto/Request/PurchaseScheme/DeletePurchaseSchemeRequest.cs

@ -1,9 +0,0 @@
namespace BBWYB.Server.Model.Dto
{
public class DeletePurchaseSchemeRequest
{
public string ProductId { get; set; }
public string PurchaserId { get; set; }
}
}

11
BBWYB.Server.Model/Dto/Request/PurchaseScheme/DeletePurchaseSkuRequest.cs

@ -0,0 +1,11 @@
namespace BBWYB.Server.Model.Dto
{
public class DeletePurchaseSkuRequest
{
public long SchemeId { get; set; }
public string SkuId { get; set; }
public string PurchaseSkuId { get; set; }
}
}
Loading…
Cancel
Save