Exemplo n.º 1
0
        /// <summary>
        /// 增加盘点信息
        /// </summary>
        /// <param name="inputDtos"></param>
        /// <returns></returns>
        public async Task<OperationResult> Add(params MatInventoryInfoInputDto[] inputDtos)
        {
            inputDtos.CheckNotNull("inputDtos");
            foreach (var dtoData in inputDtos)
            {
                if (string.IsNullOrEmpty(dtoData.InventoryCode))
                    return new OperationResult(OperationResultType.Error, "请正确填写单据编号,该组数据不被存储。");
                //if (string.IsNullOrEmpty(dtoData.WareHouseName))
                //    return new OperationResult(OperationResultType.Error, "请正确填写仓库名称,该组数据不被存储。");

                //
                ////
                //if (MaterialInStorageRepository.CheckExists(x => x.WareHouseCode == dtoData.WareHouseCode))
                //    return new OperationResult(OperationResultType.Error, $"仓库编号 {dtoData.WareHouseCode} 的数据已存在,该组数据不被存储。");
                //if (MaterialInStorageRepository.CheckExists(x => x.WareHouseName == dtoData.WareHouseName))
                //    return new OperationResult(OperationResultType.Error, $"仓库名称 {dtoData.WareHouseName} 的数据已存在,该组数据不被存储。");
                //
                if (dtoData.MatWareHouse_Id == Guid.Empty)
                    return new OperationResult(OperationResultType.Error, "请选择所属仓库,该组数据不被存储。");
                //
                dtoData.MatWareHouse = MatWareHouseInfoRepository.TrackEntities.Where(m => m.Id == dtoData.MatWareHouse_Id).FirstOrDefault();
                if (Equals(dtoData.MatWareHouse, null))
                {
                    return new OperationResult(OperationResultType.Error, $"对应的仓库不存在,该组数据不被存储。");
                }
                //
                if (dtoData.InventoryType == 0)
                    return new OperationResult(OperationResultType.Error, "请正确选择盘点类型,该组数据不被存储。");
                //
                //dtoData.MaterialInStorageType = MaterialInStorageTypeInfoRepository.TrackEntities.Where(m => m.Id == dtoData.MaterialInStorageType_Id).FirstOrDefault();
                //if (Equals(dtoData.MaterialInStorageType, null))
                //{
                //    return new OperationResult(OperationResultType.Error, $"对应的仓库类型不存在,该组数据不被存储。");
                //}
            }
            MatInventoryInfoRepository.UnitOfWork.BeginTransaction();
            var result = await MatInventoryInfoRepository.InsertAsync(inputDtos);
            MatInventoryInfoRepository.UnitOfWork.Commit();
            //
            return result;
        }