Exemple #1
0
        /// <summary>
        /// 药品整散拆分
        /// </summary>
        /// <param name="alOriginalData"></param>
        /// <param name="alData"></param>
        protected void AlterApplyData(ArrayList alOriginalData, ref ArrayList alData)
        {
            alData = alOriginalData;

            return;

            ArrayList alDetail = new ArrayList();

            Neusoft.HISFC.Models.Pharmacy.ApplyOut temp = null;
            foreach (Neusoft.HISFC.Models.Pharmacy.ApplyOut info in alOriginalData)
            {
                if (info.Days == 0)
                {
                    info.Days = 1;
                }
                decimal allQty = info.Operation.ApplyQty * info.Days;
                int     min    = 0;
                int     pack   = System.Math.DivRem((int)allQty, (int)info.Item.PackQty, out min);
                if (min == 0)       //可整除包装 按整包装处理
                {
                    temp = info.Clone();
                    temp.Operation.ApplyQty = pack;
                    if (temp.Item.PackUnit == "")
                    {
                        temp.Item.PackUnit = GetStaticPackUnit(temp.Item.ID);
                    }
                    temp.Item.MinUnit = temp.Item.PackUnit;
                    temp.Item.User01  = "1";
                    alData.Add(temp.Clone());
                }
                else               //单位不可整除
                {
                    if (pack == 0) //如果不满足一个包装单位 直接按照最小单位处理
                    {
                        temp = info.Clone();
                        //此处需设置 零散单位的货位号
                        temp.PlaceNO = GetStaticPlaceNO(temp.StockDept.Name, temp.Item.ID);
                        alDetail.Add(temp.Clone());
                    }
                    else           //将整包装数量移出 形成整/散两条记录
                    {
                        //整包装量
                        temp = info.Clone();
                        temp.Operation.ApplyQty = pack;
                        if (temp.Item.PackUnit == "")
                        {
                            temp.Item.PackUnit = GetStaticPackUnit(temp.Item.ID);
                        }
                        temp.Item.MinUnit = info.Item.PackUnit;
                        temp.Item.User01  = "1";
                        alData.Add(temp.Clone());
                        //散包装量
                        temp = info.Clone();
                        temp.Operation.ApplyQty = min;
                        temp.Item.MinUnit       = info.Item.MinUnit;
                        //此处需设置零散单位货物号
                        temp.PlaceNO = GetStaticPlaceNO(temp.StockDept.Name, temp.Item.ID);
                        alDetail.Add(temp.Clone());
                    }
                }
            }

            alData.AddRange(alDetail);
        }