public ProductInventoryNew GetInventoryByProductNo(string productNo) { ProductInventoryNew pinventory = new ProductInventoryNew(); string xml = string.Empty; try { StockWebService.StockWebService stock = new StockWebService.StockWebService(); if (AppSettingManager.AppSettings["InventoryFlag"].ToLower() == "true") { stock.Url = AppSettingManager.AppSettings["ErpInventoryService"]; xml = stock.GetInventorySumByProductNo(productNo, 1); //1,正品;2,残次品;3,赠品 } else { xml = stock.GetInventorySumByProductNo(productNo, 1);//1,正品;2,残次品;3,赠品 } XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); int sumQuantity = 0; //库存总数 int sumLockQuantity = 0; //锁定的总库存 int inventory = 0; //库存总数 减去 锁定的总库存 if (doc != null) { XmlNodeList inventoryNodeList = doc.SelectNodes("/ErpInventorySums/ErpInventorySum"); if (inventoryNodeList != null && inventoryNodeList.Count > 0) { string nodeName = string.Empty; int inventoryQuantity = 0; int lockQuantity = 0; foreach (XmlNode inventoryNode in inventoryNodeList) { if (inventoryNode.ChildNodes.Count > 0) { inventoryQuantity = Convert.ToInt32(inventoryNode.ChildNodes[2].InnerText); lockQuantity = Convert.ToInt32(inventoryNode.ChildNodes[3].InnerText); sumQuantity += inventoryQuantity; sumLockQuantity += lockQuantity; } } //sumQuantity += inventoryQuantity; //sumLockQuantity += lockQuantity; inventory = inventory + inventoryQuantity - lockQuantity; } } pinventory.ProductNo = productNo; pinventory.SumQuantity = sumQuantity; pinventory.SumLockQuantity = sumLockQuantity; pinventory.Inventory = inventory; } catch (Exception ex) { } return(pinventory); }
/// <summary> /// 根据商品编号获取所有SKU库存 by lijibo /// </summary> /// <param name="productNos"></param> /// <param name="NoSize"></param> /// <returns></returns> public Dictionary <string, int> GetProductsInventoryNew(string productNos) { var reslut = new Dictionary <string, int>(); string[] productNoArray = productNos.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); var q = GetWfsSkuCollectionByProductNosNew(productNoArray);// DapperUtil.Query<WfsSku>("ComBeziWfs_WfsSku_SelectByProductNos", new { ProductNos = productNoArray }).ToList(); var lst = new List <ProductInventoryInfo>(); foreach (var wfsSku in q) { var product = new ProductInventoryInfo(); product.SkuNo = wfsSku.SkuNo; product.ProductNo = wfsSku.ProductNo; lst.Add(product); } var skus = lst.Select( p => new SkuDto { SkuNo = p.SkuNo, SkuType = p.SkuType, StockFlag = StockFlag.Normal, ProductNo = p.ProductNo }). ToList(); StockWebService.StockWebService stock = new StockWebService.StockWebService(); var inv = GetSkuInventoryQuantity(skus); // 按商品编号进行分组 var q2 = from p in inv group p by p.ProductNo into g select g; foreach (var gg in q2) { var productNo = gg.Select(x => x.ProductNo).FirstOrDefault(); var inventory = gg.Sum(x => x.Quantity); if (productNo != null) { reslut.Add(productNo, inventory); } } return(reslut); }
/// <summary> /// 批量查询商品库存接口----未完成,因为批量接口返回中不包含锁定库存,待定··· /// </summary> /// <param name="productNos"></param> /// <returns></returns> public List <ProductInventory> GetInventoryByProductNos(List <string> productNolist) { StringBuilder str = new StringBuilder(); foreach (var item in productNolist) { str.Append(item + ","); } string productNos = str.ToString().TrimEnd(','); List <ProductInventory> list = new List <ProductInventory>(); string xml = string.Empty; try { StockWebService.StockWebService stock = new StockWebService.StockWebService(); if (AppSettingManager.AppSettings["InventoryFlag"].ToLower() == "true") { stock.Url = AppSettingManager.AppSettings["ErpInventoryService"]; xml = stock.GetInventorySumByProductNos(productNos); //1,正品;2,残次品;3,赠品 } else { //xml = StockBusiness.GetInventorySumByProductNo(productNo, 1);//1,正品;2,残次品;3,赠品 xml = stock.GetInventorySumByProductNos(productNos);//1,正品;2,残次品;3,赠品 } XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); int sumQuantity = 0; //库存总数 int sumLockQuantity = 0; //锁定的总库存 int inventory = 0; //库存总数 减去 锁定的总库存 if (doc != null) { XmlNodeList inventoryNodeList = doc.SelectNodes("/ErpInventorySums/ErpInventorySum"); if (inventoryNodeList != null && inventoryNodeList.Count > 0) { string nodeName = string.Empty; int inventoryQuantity = 0; int lockQuantity = 0; foreach (XmlNode inventoryNode in inventoryNodeList) { if (inventoryNode.ChildNodes.Count > 0) { inventoryQuantity = Convert.ToInt32(inventoryNode.ChildNodes[2].InnerText); lockQuantity = Convert.ToInt32(inventoryNode.ChildNodes[3].InnerText); } sumQuantity += inventoryQuantity; sumLockQuantity += lockQuantity; inventory = inventory + inventoryQuantity - lockQuantity; ProductInventory pinventory = new ProductInventory(); pinventory.ProductNo = inventoryNode.ChildNodes[1].InnerText; pinventory.SumQuantity = sumQuantity; pinventory.SumLockQuantity = sumLockQuantity; pinventory.Inventory = inventory; list.Add(pinventory); } } } } catch (Exception ex) { } return(list); }