|
|
@ -297,12 +297,11 @@ namespace BBWYB.Server.Business |
|
|
|
if (psReq.SchemeGroupId == null || psReq.SchemeGroupId == 0) |
|
|
|
{ |
|
|
|
//新增分组
|
|
|
|
var saemSpuSchemeGroupList = dbSchemeGroupList.Where(psg => psg.ProductId == psReq.ProductId).ToList(); |
|
|
|
var insertSchemeGroup = new PurchaseSchemeGroup() |
|
|
|
{ |
|
|
|
Id = idGenerator.NewLong(), |
|
|
|
CreateTime = DateTime.Now, |
|
|
|
GroupName = $"{psReq.ProductId}_第{saemSpuSchemeGroupList.Count() + 1}组", |
|
|
|
GroupName = $"{psReq.ProductId}-{DateTime.Now:yyyyMMddHHmmss}", |
|
|
|
ProductId = psReq.ProductId, |
|
|
|
ShopId = psReq.ShopId |
|
|
|
}; |
|
|
@ -678,8 +677,20 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
public void DeletePurchaseScheme(long schemeId) |
|
|
|
{ |
|
|
|
IDelete<PurchaseSchemeGroup>? deletePsg = null; |
|
|
|
var purchaseScheme = fsql.Select<PurchaseScheme>(schemeId).ToOne(); |
|
|
|
if (purchaseScheme == null) |
|
|
|
throw new BusinessException("采购方案不存在"); |
|
|
|
if (purchaseScheme.SchemeGroupId != 0) |
|
|
|
{ |
|
|
|
var sameGroupSchemeCount = fsql.Select<PurchaseScheme>().Where(ps => ps.SchemeGroupId == purchaseScheme.SchemeGroupId && |
|
|
|
ps.Id != purchaseScheme.Id).Count(); |
|
|
|
if (sameGroupSchemeCount == 0) |
|
|
|
deletePsg = fsql.Delete<PurchaseSchemeGroup>(purchaseScheme.SchemeGroupId); |
|
|
|
} |
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
deletePsg?.ExecuteAffrows(); |
|
|
|
fsql.Delete<PurchaseScheme>(schemeId).ExecuteAffrows(); |
|
|
|
fsql.Delete<PurchaseSchemeProduct>().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows(); |
|
|
|
fsql.Delete<PurchaseSchemeProductSku>().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows(); |
|
|
@ -840,5 +851,44 @@ namespace BBWYB.Server.Business |
|
|
|
} |
|
|
|
return resultList; |
|
|
|
} |
|
|
|
|
|
|
|
public decimal EditPurchaseRatio(EditPurchaseRatioRequest request) |
|
|
|
{ |
|
|
|
if (request.SchemeId == 0 || string.IsNullOrEmpty(request.SkuId) || string.IsNullOrEmpty(request.PurchaseSkuId)) |
|
|
|
throw new BusinessException("参数不完整"); |
|
|
|
if (request.Ratio < 1) |
|
|
|
request.Ratio = 1; |
|
|
|
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) |
|
|
|
{ |
|
|
|
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) |
|
|
|
throw new BusinessException("未找到需要更新的采购配件"); |
|
|
|
fsql.Transaction(() => |
|
|
|
{ |
|
|
|
fsql.Update<PurchaseScheme>(request.SchemeId).Set(ps => ps.DefaultCost, defaultCost).ExecuteAffrows(); |
|
|
|
fsql.Update<PurchaseSchemeProductSku>(pssId.Value).Set(pss => pss.PurchaseRatio, request.Ratio).ExecuteAffrows(); |
|
|
|
}); |
|
|
|
return defaultCost; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|