Example #1
0
        public async Task <int> SubmitAsync(int id, int userId)
        {
            var model = await GetIndexAsync(id);

            var list = await _storeInoutGoodsContext.GetListByStoreInoutAsync(id);

            var goods = list.Select(x => new StoreChangeGoodsValueModel
            {
                HospitalGoodId = x.HospitalGoods.Id,
                ChangeQty      = x.Qty,
                Recrdno        = RecordNumber.Next(model.ChangeType.Id, x.Id),
            });

            using (var trans = _defaultDbTransaction.Begin())
            {
                _storeContext.BatchCreateOrUpdate(new BatchStoreChangeApiModel
                {
                    ChangeTypeId        = model.ChangeType.Id,
                    HospitalChangeGoods = goods.ToList(),
                }, model.HospitalDepartment.Id, userId);
                _StoreInoutRespository.UpdateStatus(id, StoreInoutStatus.Submited);
                trans.Commit();
            }
            return(0);
        }
Example #2
0
        public bool MoveNext()
        {
            if (_state == State.Ended)
            {
                return(false);
            }

            if (_state == State.Initial)
            {
                if (_enumerator.MoveNext())
                {
                    _state = State.Started;
                    return(true);
                }

                _state = State.Ended;
                return(false);
            }

            if (_enumerator.MoveNext())
            {
                _number = _number.Next();
                return(true);
            }

            _state = State.Ended;
            return(false);
        }
 public bool MoveNext()
 {
     if (_index == _records.Length)
     {
         return(false);
     }
     _number = _index == -1
         ? RecordNumber.Initial
         : _number.Next();
     _index++;
     if (_index == _failAt)
     {
         throw _failure;
     }
     return(_index != _records.Length);
 }
        public async Task <int> ComfirmAsync(IList <int> ids, int userId)
        {
            foreach (var id in ids)
            {
                var goods = await _purchaseGoodsBillnoRespository.GetIndexAsync(id);

                var changed = new StoreChangeApiModel
                {
                    ChangeTypeId        = (int)StoreChangeType.Purchase,
                    HospitalChangeGoods = new StoreChangeGoodsValueModel
                    {
                        HospitalGoodId = goods.HospitalGoods.Id,
                        ChangeQty      = goods.Qty,
                        Recrdno        = RecordNumber.Next((int)StoreChangeType.Purchase, id),
                    },
                };
                var recordId = _storeContext.CreateOrUpdate(changed, goods.Purchase.HospitalDepartment.Id, userId);
                _storeRecordBillnoContext.Create(id, recordId);
                _purchaseGoodsBillnoRespository.UpdateStatus(id, BillStatus.Comfirmed);
            }
            return(ids.Count);
        }
Example #5
0
        public async Task <int> BillAsync(int id, int userId)
        {
            var model = await _checkListRespository.GetIndexAsync(id);

            var list = await _checkListGoodsRespository.GetPreviewListAsync(id);

            using (var trans = _defaultDbTransaction.Begin())
            {
                var goods1 = list.Where(x => x.StoreQty > x.CheckQty).Select(x => new StoreChangeGoodsValueModel
                {
                    HospitalGoodId = x.HospitalGoods.Id,
                    ChangeQty      = x.StoreQty - x.CheckQty,
                    Recrdno        = RecordNumber.Next((int)StoreChangeType.CheckListOut, x.Id),
                });
                _storeContext.BatchCreateOrUpdate(new BatchStoreChangeApiModel
                {
                    ChangeTypeId        = (int)StoreChangeType.CheckListOut,
                    HospitalChangeGoods = goods1.ToList(),
                }, model.HospitalDepartment.Id, userId);
                var goods2 = list.Where(x => x.StoreQty < x.CheckQty).Select(x => new StoreChangeGoodsValueModel
                {
                    HospitalGoodId = x.HospitalGoods.Id,
                    ChangeQty      = -x.StoreQty + x.CheckQty,
                    Recrdno        = RecordNumber.Next((int)StoreChangeType.CheckListIn, x.Id),
                });
                _storeContext.BatchCreateOrUpdate(new BatchStoreChangeApiModel
                {
                    ChangeTypeId        = (int)StoreChangeType.CheckListIn,
                    HospitalChangeGoods = goods2.ToList(),
                }, model.HospitalDepartment.Id, userId);

                _checkListRespository.UpdateStatus(id, CheckListStatus.Billed);
                trans.Commit();
            }
            return(0);
        }