You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
5.3 KiB
130 lines
5.3 KiB
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)
|
|
{
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 按采购商分组组装采购产品参数
|
|
/// </summary>
|
|
/// <param name="productSkuWithSchemeList"></param>
|
|
/// <returns></returns>
|
|
private IList<object> CombineCargoParamGroup(IList<ProductSkuWithScheme> productSkuWithSchemeList)
|
|
{
|
|
IList<object> cargoParamGroupList = new List<object>();
|
|
var purchaserGroups = productSkuWithSchemeList.GroupBy(s => s.PurchaserId);
|
|
foreach (var purchaserGroup in purchaserGroups)
|
|
{
|
|
var first = purchaserGroup.FirstOrDefault();
|
|
var cargoParamList = new List<object>();
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 预览订单
|
|
/// </summary>
|
|
/// <param name="consignee"></param>
|
|
/// <param name="productSkuWithSchemeList"></param>
|
|
/// <param name="purchaseOrderMode"></param>
|
|
/// <returns></returns>
|
|
public ApiResponse<PreviewOrderResponse> PreviewPurchaseOrder(Consignee consignee, IList<ProductSkuWithScheme> productSkuWithSchemeList, PurchaseOrderMode purchaseOrderMode)
|
|
{
|
|
var cargoParamGroupList = CombineCargoParamGroup(productSkuWithSchemeList);
|
|
return SendRequest<PreviewOrderResponse>(globalContext.BBWYApiHost, "api/PurchaseOrder/PreviewPurchaseOrder", new
|
|
{
|
|
purchaseOrderMode,
|
|
consignee,
|
|
cargoParamGroupList,
|
|
globalContext.User.Shop.PurchaseAccountList
|
|
}, null, HttpMethod.Post);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 创建采购单
|
|
/// </summary>
|
|
/// <param name="consignee"></param>
|
|
/// <param name="productSkuWithSchemeList"></param>
|
|
/// <param name="purchaseOrderMode"></param>
|
|
/// <param name="remark"></param>
|
|
/// <param name="orderId"></param>
|
|
/// <param name="shopId"></param>
|
|
/// <param name="extensions"></param>
|
|
/// <returns></returns>
|
|
public ApiResponse<object> FastCreateOrder(Consignee consignee,
|
|
IList<ProductSkuWithScheme> productSkuWithSchemeList,
|
|
PurchaseOrderMode purchaseOrderMode,
|
|
string remark,
|
|
string orderId,
|
|
long shopId,
|
|
string extensions)
|
|
{
|
|
var cargoParamGroupList = CombineCargoParamGroup(productSkuWithSchemeList);
|
|
return SendRequest<object>(globalContext.BBWYApiHost, "api/purchaseOrder/CreatePurchaseOrder", new
|
|
{
|
|
purchaseOrderMode,
|
|
consignee,
|
|
cargoParamGroupList,
|
|
globalContext.User.Shop.PurchaseAccountList,
|
|
remark,
|
|
orderId,
|
|
shopId,
|
|
extensions
|
|
}, null, HttpMethod.Post);
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 查询审核采购单
|
|
/// </summary>
|
|
/// <param name="shopIdList"></param>
|
|
/// <param name="startDate"></param>
|
|
/// <param name="endDate"></param>
|
|
/// <returns></returns>
|
|
public ApiResponse<IList<AuditPurchaseOrderResponse>> GetAuditPurchaseOrderList(IList<long> shopIdList, DateTime startDate, DateTime endDate)
|
|
{
|
|
return SendRequest<IList<AuditPurchaseOrderResponse>>(globalContext.BBWYApiHost, "Api/PurchaseOrder/GetAuditPurchaseOrderList", new
|
|
{
|
|
startDate,
|
|
endDate,
|
|
shopIdList
|
|
}, null, HttpMethod.Post);
|
|
}
|
|
}
|
|
}
|
|
|