Пример #1
0
        /// <summary>
        /// 盘点确认
        /// </summary>
        /// <param name="info">盘点单</param>
        public void ConfirmCheck(CheckStockBill info)
        {
            CheckStockDAL dal  = new CheckStockDAL();
            StockDAL      sDal = new StockDAL();

            int seq = 1;

            foreach (CheckStockDetail detail in info.Details)
            {
                detail.ID     = Guid.NewGuid().ToString();
                detail.BillID = info.ID;
                detail.Seq    = seq;
                seq++;
            }

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                session.OpenTs();

                dal.Session  = session;
                sDal.Session = session;

                //更新盘点单信息
                info.IsConfirm = 1;
                dal.Update(info);

                foreach (CheckStockDetail detail in info.Details)
                {
                    //更新库存信息
                    WHMatAmount matStock = sDal.GetStock(new WHMatAmount()
                    {
                        Warehouse    = info.Warehouse
                        , SaveSite   = detail.SaveSite
                        , MatID      = detail.MatID
                        , MatBarCode = detail.IDCode
                    });

                    matStock.MainAmount    = matStock.MainAmount * detail.FactAmount / matStock.ProductAmount;
                    matStock.ProductAmount = detail.FactAmount;

                    sDal.Update(matStock);
                }

                session.CommitTs();
            }
        }
Пример #2
0
        /// <summary>
        /// 生成盘点单
        /// </summary>
        /// <param name="condition">生成条件</param>
        /// <returns>盘点单</returns>
        public CheckStockBill BuildBill(CheckStockBill condition)
        {
            CheckStockBill info = new CheckStockDAL().BuildBill(condition);


            info.BillNO      = this.GetNewBillNO();
            info.Warehouse   = condition.Warehouse;
            info.AreaID      = condition.AreaID;
            info.CheckHeader = this.LoginUser.UserID;

            int seq = 1;

            foreach (CheckStockDetail detail in info.Details)
            {
                detail.ID         = Guid.NewGuid().ToString();
                detail.BillID     = info.ID;
                detail.FactAmount = detail.StockAmount;
                detail.Seq        = seq;
                seq++;
            }

            return(info);
        }
Пример #3
0
        /// <summary>
        /// 生成新盘点单号
        /// </summary>
        /// <returns></returns>
        public string GetNewBillNO()
        {
            string maxNo = new CheckStockDAL().GetMaxBillNO();
            string newNo = DateTime.Now.ToString("yyyyMMdd");

            if (string.IsNullOrEmpty(maxNo) || maxNo.Length < 12)
            {
                newNo = newNo + "0001";
            }
            else
            {
                if (newNo == maxNo.Substring(0, 8))
                {
                    newNo = (double.Parse(maxNo) + 1).ToString();
                }
                else
                {
                    newNo = newNo + "0001";
                }
            }

            return(newNo);
        }
Пример #4
0
        /// <summary>
        /// 更新盘点单
        /// </summary>
        /// <param name="info"></param>
        public void Update(CheckStockBill info)
        {
            info.UPDATEUSER = this.LoginUser.UserID;
            info.UPDATETIME = info.CREATETIME;

            int seq = 1;

            foreach (CheckStockDetail detail in info.Details)
            {
                detail.ID     = Guid.NewGuid().ToString();
                detail.BillID = info.ID;
                detail.Seq    = seq;
                seq++;
            }

            CheckStockDAL dal = new CheckStockDAL();

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                dal.Session = session;
                dal.Update(info);
            }
        }