/// <summary> /// 销售订单发货确认判断 /// </summary> /// <param name="SubSellOrderM"></param> /// <param name="SubSellOrderDetailMList"></param> /// <param name="ProductID">负库存产品ID</param> /// <returns>返回1 则数量合法,2 则确认后会有负库存,且不允许出现负库存,3 则确认后会有负库存,允许出现负库存</returns> public static int CanConfirmOutSubSellOrder(SubSellOrderModel SubSellOrderM, List <SubSellOrderDetailModel> SubSellOrderDetailMList, ref string ProductID) { try { int a = 1; Dictionary <int, List <string> > dic = new Dictionary <int, List <string> >(); //判断是总部发货还是分店发货 if (SubSellOrderM.SendMode == "1") {//分店发货 foreach (SubSellOrderDetailModel item in SubSellOrderDetailMList) { a = SubSellOrderDBHelper.CanConfirmOutSub(SubSellOrderM.DeptID, item.ProductID, item.ProductCount, item.BatchNo); if (dic.ContainsKey(a)) {// 状态存在 if (!dic[a].Contains(item.ProductID)) { dic[a].Add(item.ProductID); } } else {// 状态不存在 dic.Add(a, new List <string>() { item.ProductID }); } } } else if (SubSellOrderM.SendMode == "2") {//总部发货 foreach (SubSellOrderDetailModel item in SubSellOrderDetailMList) { a = SubSellOrderDBHelper.CanConfirmOutHq(item.StorageID, item.ProductID, item.ProductCount, item.BatchNo); if (dic.ContainsKey(a)) {// 状态存在 if (!dic[a].Contains(item.ProductID)) { dic[a].Add(item.ProductID); } } else {// 状态不存在 dic.Add(a, new List <string>() { item.ProductID }); } } } if (dic.ContainsKey(2)) { a = 2; } else if (dic.ContainsKey(3)) { a = 3; } else { a = 1; } ProductID = string.Join(",", dic[a].ToArray()); return(a); } catch (Exception ex) { throw ex; } }