Beispiel #1
0
        /// <summary>
        /// 添加入库信息
        /// </summary>
        /// <param name="dtos">要添加的入库信息DTO信息</param>
        /// <returns>业务操作结果</returns>
        public virtual async Task <OperationResult> CreateInStors(params InStorInputDto[] dtos)
        {
            Check.Validate <InStorInputDto, int>(dtos, nameof(dtos));
            //通过ID新增Name

            foreach (InStorInputDto dto in dtos)
            {
                MatBasedata matdb = await MatBasedataRepository.GetAsync(dto.MatId);

                SupBasedata supdb = await SupBasedataRepository.GetAsync(dto.SupId);

                dto.MatName = matdb.MatName;
                dto.SupName = supdb.SupName;
            }

            return(await InStorRepository.InsertAsync(dtos));
        }
        /// <summary>
        /// 更新反冲信息
        /// </summary>
        /// <param name="dtos">包含更新信息的反冲信息DTO信息</param>
        /// <returns>业务操作结果</returns>
        public virtual async Task <OperationResult> UpdateRecoilOutStors(params OutStorInputDto[] dtos)
        {
            Check.Validate <OutStorInputDto, int>(dtos, nameof(dtos));

            //强制修改反冲状态
            if (dtos[0].RecoilNum != 0)
            {
                dtos[0].RecoilState = true;
            }
            //修改库存
            MatBasedata matdb = await MatBasedataRepository.GetAsync(dtos[0].MatId);

            matdb.CurrStock = matdb.CurrStock + dtos[0].RecoilNum;
            MatBasedataRepository.Update(matdb);

            //累计反冲数量
            OutStor Instordb = await OutStorRepository.GetAsync(dtos[0].Id);

            dtos[0].RecoilNum = dtos[0].RecoilNum + Instordb.RecoilNum;

            return(await OutStorRepository.UpdateAsync(dtos));
        }
Beispiel #3
0
        /// <summary>
        /// 更新入库反冲信息
        /// </summary>
        /// <param name="dtos">包含更新信息的入库信息DTO信息</param>
        /// <returns>业务操作结果</returns>
        public virtual async Task <OperationResult> UpdateRecoilInStors(InStorInputDto[] dtos)
        {
            Check.Validate <InStorInputDto, int>(dtos, nameof(dtos));
            //强制修改反冲状态
            if (dtos[0].RecoilNum != 0)
            {
                dtos[0].RecoilState = true;
            }
            //修改库存信息
            MatBasedata matdb = await MatBasedataRepository.GetAsync(dtos[0].MatId);

            matdb.CurrStock = matdb.CurrStock - dtos[0].RecoilNum;
            MatBasedataRepository.Update(matdb);
            //累计反冲数量
            InStor Instordb = await InStorRepository.GetAsync(dtos[0].Id);

            dtos[0].RecoilNum = dtos[0].RecoilNum + Instordb.RecoilNum;



            return(await InStorRepository.UpdateAsync(dtos).ConfigureAwait(false));
        }
 /// <summary>
 /// 删除物品基础数据信息
 /// </summary>
 /// <param name="ids">要删除的物品基础数据信息编号</param>
 /// <returns>业务操作结果</returns>
 public virtual Task <OperationResult> DeleteMatBasedatas(params int[] ids)
 {
     Check.NotNull(ids, nameof(ids));
     return(MatBasedataRepository.DeleteAsync(ids));
 }
 /// <summary>
 /// 更新物品基础数据信息
 /// </summary>
 /// <param name="dtos">包含更新信息的物品基础数据信息DTO信息</param>
 /// <returns>业务操作结果</returns>
 public virtual Task <OperationResult> UpdateMatBasedatas(params MatBasedataInputDto[] dtos)
 {
     Check.Validate <MatBasedataInputDto, int>(dtos, nameof(dtos));
     return(MatBasedataRepository.UpdateAsync(dtos));
 }
 /// <summary>
 /// 检查物品基础数据信息是否存在
 /// </summary>
 /// <param name="predicate">检查谓语表达式</param>
 /// <param name="id">更新的物品基础数据信息编号</param>
 /// <returns>物品基础数据信息是否存在</returns>
 public virtual Task <bool> CheckMatBasedataExists(Expression <Func <MatBasedata, bool> > predicate, int id = default(int))
 {
     return(MatBasedataRepository.CheckExistsAsync(predicate, id));
 }