using BBWYB.Client.Models;
using BBWYB.Common.Http;
using BBWYB.Common.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
namespace BBWYB.Client.APIServices
{
public class PurchaseOrderService : BaseApiService, IDenpendency
{
public PurchaseOrderService(RestApiService restApiService, GlobalContext globalContext) : base(restApiService, globalContext)
{
}
///
/// 按采购商分组组装采购产品参数
///
///
///
private IList CombineCargoParamGroup(IList productSkuWithSchemeList)
{
IList cargoParamGroupList = new List();
var purchaserGroups = productSkuWithSchemeList.GroupBy(s => s.PurchaserId);
foreach (var purchaserGroup in purchaserGroups)
{
var first = purchaserGroup.FirstOrDefault();
var cargoParamList = new List();
foreach (var productSkuWithScheme in purchaserGroup)
{
foreach (var purchaseSchemeProductSku in productSkuWithScheme.PurchaseSchemeProductSkuList)
{
cargoParamList.Add(new
{
ProductId = purchaseSchemeProductSku.PurchaseProductId,
SkuId = purchaseSchemeProductSku.PurchaseSkuId,
SpecId = purchaseSchemeProductSku.PurchaseSkuSpecId,
Quantity = purchaseSchemeProductSku.ItemTotal,
BelongSkuId = productSkuWithScheme.SkuId,
SchemeId = productSkuWithScheme.PurchaseSchemeId
});
}
}
var cargoParamGroup = new
{
PurchaserId = purchaserGroup.Key,
first.PurchaserName,
first.PurchasePlatform,
cargoParamList
};
cargoParamGroupList.Add(cargoParamGroup);
}
return cargoParamGroupList;
}
///
/// 预览订单
///
///
///
///
///
public ApiResponse PreviewPurchaseOrder(Consignee consignee, IList productSkuWithSchemeList, PurchaseOrderMode purchaseOrderMode)
{
var cargoParamGroupList = CombineCargoParamGroup(productSkuWithSchemeList);
return SendRequest(globalContext.BBWYApiHost, "api/PurchaseOrder/PreviewPurchaseOrder", new
{
purchaseOrderMode,
consignee,
cargoParamGroupList,
globalContext.User.Shop.PurchaseAccountList
}, null, HttpMethod.Post);
}
///
/// 创建采购单
///
///
///
///
///
///
///
///
///
public ApiResponse FastCreateOrder(Consignee consignee,
IList productSkuWithSchemeList,
PurchaseOrderMode purchaseOrderMode,
string remark,
string orderId,
long shopId,
string extensions)
{
var cargoParamGroupList = CombineCargoParamGroup(productSkuWithSchemeList);
return SendRequest(globalContext.BBWYApiHost, "api/purchaseOrder/CreatePurchaseOrder", new
{
purchaseOrderMode,
consignee,
cargoParamGroupList,
globalContext.User.Shop.PurchaseAccountList,
remark,
orderId,
shopId,
extensions
}, null, HttpMethod.Post);
}
///
/// 查询审核采购单
///
///
///
///
///
public ApiResponse> GetAuditPurchaseOrderList(IList shopIdList, DateTime startDate, DateTime endDate)
{
return SendRequest>(globalContext.BBWYApiHost, "Api/PurchaseOrder/GetAuditPurchaseOrderList", new
{
startDate,
endDate,
shopIdList
}, null, HttpMethod.Post);
}
}
}