using ButcherFactory.BO.Utils;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.JsonRpc.Client;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ButcherFactory.BO.LocalBL
{
public static class SegmentStockUpBL
{
const string RpcPath = @"/MainSystem/B3Sale/Rpcs/";
const string MESPath = @"/MainSystem/B3ClientService/Rpcs/";
///
///
///
/// GoodsCode:StringExt1,Weight:DecimalExt1
public static ExtensionObj StockUpScan(string code)
{
var json = ButcherFactoryUtil.SecondUrlCall(MESPath + "SegmentInStoreRpc/StockUpScan", code);
return JsonConvert.DeserializeObject(json);
}
public static List GetStockUpEntity(DateTime date, string code)
{
var json = RpcFacade.Call(RpcPath + "SaleOutStoreRpc/GetSaleOutStoreByGoodsCode", date, code);
return JsonConvert.DeserializeObject>(json);
}
public static List RefreshList(DateTime date, IEnumerable goodsIDs)
{
var json = RpcFacade.Call(RpcPath + "SaleOutStoreRpc/GetSaleOutStoreByGoodsIDs", date, JsonConvert.SerializeObject(goodsIDs));
return JsonConvert.DeserializeObject>(json);
}
public static bool CheckBarCodeUsed(string barCode)
{
return RpcFacade.Call(RpcPath + "SaleOutStoreRpc/CheckBarCodeUsed",barCode);
}
public static List GetDetails(DateTime date, long driverLineID, long goodsID)
{
var json = RpcFacade.Call(RpcPath + "SaleOutStoreRpc/GetStockUpDetails", date, driverLineID, goodsID);
return JsonConvert.DeserializeObject>(json);
}
public static string InsertStockUpDetail(StockUpDetail detail)
{
var min = new MinStockUpDetail() { BarCode = detail.BarCode, SecondNumber = detail.SecondNumber, UnitNumber = detail.UnitNumber };
var json = JsonConvert.SerializeObject(min);
var bkJson = RpcFacade.Call(RpcPath + "SaleOutStoreRpc/InsertStockUpDetail", detail.Date, detail.Goods_ID, detail.DeliverGoodsLine_ID, json);
if (string.IsNullOrEmpty(bkJson))
throw new Exception("无等待备货信息");
var backInfo = JsonConvert.DeserializeObject(bkJson);
detail.SaleOutStoreID = backInfo.LongExt1.Value;
detail.ID = backInfo.LongExt2.Value;
}
class MinStockUpDetail
{
public string BarCode { get; set; }
public decimal? SecondNumber { get; set; }
public decimal? UnitNumber { get; set; }
}
}
}