/// <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); }
/// <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); } }
/// <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); } }
/// <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); }