示例#1
0
        /// <summary>
        /// 创建盘点单据
        /// 1. 将单据信息数据和单据详细信息数据保存到数据库
        /// 2. 统计盘点当期的账面数据
        /// 3. 备份当前的库存数据
        /// 4. 生成盘差准备表数据
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public override string Create(CheckStockEntity entity, List <CheckStockInfoEntity> list)
        {
            int line = 0;

            using (TransactionScope ts = new TransactionScope())
            {
                entity.OrderNum = entity.OrderNum.IsEmpty() ? SequenceProvider.GetSequence(typeof(CheckStockEntity)) : entity.OrderNum;
                entity.IncludeAll();
                if (!list.IsNullOrEmpty())
                {
                    list.ForEach(a =>
                    {
                        a.IncludeAll();
                        a.OrderNum = entity.OrderNum;
                    });

                    line  = this.CheckStock.Add(entity);
                    line += this.CheckStockInfo.Add(list);
                }
                ts.Complete();
            }
            //调用存储过程备份数据 生成盘点差异表
            Proc_CreateCheckEntity checkEntity = new Proc_CreateCheckEntity();

            checkEntity.OrderNum   = entity.OrderNum;
            checkEntity.CreateUser = entity.CreateUser;
            checkEntity.CreateName = "";
            this.Proc_CreateCheck.ExecuteNonQuery(checkEntity);
            return(line > 0 && checkEntity.ReturnValue == "1000" ? EnumHelper.GetEnumDesc <EReturnStatus>(EReturnStatus.Success) : string.Empty);
        }
示例#2
0
        /// <summary>
        /// 创建单据
        /// 1001:存在未完成的盘点作业
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public override string Create(InventoryOrderEntity entity, List <InventoryDetailEntity> list)
        {
            //检查是否存在未完成的
            InventoryOrderEntity checkEntity = new InventoryOrderEntity();

            checkEntity.Where(a => a.StorageNum == entity.StorageNum)
            .And(a => a.IsDelete == (int)EIsDelete.NotDelete)
            .And(a => a.Status != (int)EAudite.Pass)
            .And(a => a.CompanyID == this.CompanyID)
            ;

            int count = this.InventoryOrder.GetCount(checkEntity);

            if (count > 0)
            {
                return("1001");
            }

            using (TransactionScope ts = new TransactionScope())
            {
                int line = 0;

                entity.OrderNum = entity.OrderNum.IsEmpty() ?
                                  new TNumProvider(this.CompanyID).GetSwiftNum(typeof(InventoryOrderEntity), 5)
                    : entity.OrderNum;
                entity.SnNum = entity.SnNum.IsEmpty() ? ConvertHelper.NewGuid() : entity.SnNum;

                entity.IncludeAll();

                if (!list.IsNullOrEmpty())
                {
                    list.ForEach(a =>
                    {
                        a.SnNum      = a.SnNum.IsEmpty() ? ConvertHelper.NewGuid() : a.SnNum;
                        a.OrderSnNum = entity.SnNum;
                        a.OrderNum   = entity.OrderNum;
                        a.CompanyID  = this.CompanyID;
                        a.CreateTime = DateTime.Now;
                        a.IncludeAll();
                    });

                    line  = this.InventoryOrder.Add(entity);
                    line += this.InventoryDetail.Add(list);

                    //新建盘点单还要生成盘点差异单
                    Proc_CreateCheckEntity procEntity = new Proc_CreateCheckEntity();
                    procEntity.OrderNum   = entity.SnNum;
                    procEntity.CreateUser = entity.CreateUser;
                    procEntity.CompanyID  = this.CompanyID;
                    line += this.Proc_CreateCheck.ExecuteNonQuery(procEntity);
                }
                ts.Complete();
                return(line > 0 ? EnumHelper.GetEnumDesc <EReturnStatus>(EReturnStatus.Success) : string.Empty);
            }
        }
示例#3
0
        /// <summary>
        /// 编辑入库单
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public override string EditOrder(InventoryOrderEntity entity, List <InventoryDetailEntity> list)
        {
            using (TransactionScope ts = new TransactionScope())
            {
                int line = 0;
                entity.Include(a => new
                {
                    a.ContractOrder,
                    a.Remark
                });
                entity.Where(a => a.SnNum == entity.SnNum)
                .And(a => a.CompanyID == this.CompanyID);
                line = this.InventoryOrder.Update(entity);

                InventoryDetailEntity detail = new InventoryDetailEntity();
                detail.Where(a => a.OrderSnNum == entity.SnNum)
                .And(a => a.CompanyID == this.CompanyID)
                ;
                line += this.InventoryDetail.Delete(detail);

                if (!list.IsNullOrEmpty())
                {
                    list.ForEach(a =>
                    {
                        a.SnNum      = a.SnNum.IsEmpty() ? ConvertHelper.NewGuid() : a.SnNum;
                        a.OrderSnNum = entity.SnNum;
                        a.OrderNum   = entity.OrderNum;
                        a.CompanyID  = this.CompanyID;
                        a.CreateTime = DateTime.Now;
                        a.IncludeAll();
                    });

                    line += this.InventoryDetail.Add(list);

                    //新建盘点单还要生成盘点差异单
                    Proc_CreateCheckEntity procEntity = new Proc_CreateCheckEntity();
                    procEntity.OrderNum   = entity.SnNum;
                    procEntity.CreateUser = entity.CreateUser;
                    procEntity.CompanyID  = this.CompanyID;
                    line += this.Proc_CreateCheck.ExecuteNonQuery(procEntity);
                }

                ts.Complete();
                return(line > 0 ? EnumHelper.GetEnumDesc <EReturnStatus>(EReturnStatus.Success) : string.Empty);
            }
        }
示例#4
0
        /// <summary>
        /// 编辑入库单
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public override string EditOrder(CheckStockEntity entity, List <CheckStockInfoEntity> list)
        {
            int line = 0;

            using (TransactionScope ts = new TransactionScope())
            {
                entity.Include(a => new { a.Type, a.ProductType, a.ContractOrder, a.Remark, a.CreateUser });
                entity.Where(a => a.OrderNum == entity.OrderNum);
                CheckStockInfoEntity detail = new CheckStockInfoEntity();
                detail.Where(a => a.OrderNum == entity.OrderNum);
                this.CheckStockInfo.Delete(detail);
                foreach (CheckStockInfoEntity item in list)
                {
                    item.OrderNum = entity.OrderNum;
                    item.IncludeAll();
                }
                line = this.CheckStock.Update(entity);
                this.CheckStockInfo.Add(list);

                ts.Complete();
            }

            CheckDataEntity checkData = new CheckDataEntity();

            checkData.Where(a => a.OrderNum == entity.OrderNum);
            this.CheckData.Delete(checkData);

            //调用存储过程备份数据 生成盘点差异表
            Proc_CreateCheckEntity checkEntity = new Proc_CreateCheckEntity();

            checkEntity.OrderNum   = entity.OrderNum;
            checkEntity.CreateUser = entity.CreateUser;
            checkEntity.CreateName = "";
            line += this.Proc_CreateCheck.ExecuteNonQuery(checkEntity);
            return(line > 0 && checkEntity.ReturnValue == "1000" ? EnumHelper.GetEnumDesc <EReturnStatus>(EReturnStatus.Success) : string.Empty);
        }