Esempio n. 1
0
        /// <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;
            }
        }