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

            var list = await _prescriptionGoodsRespository.GetListAsync(id);

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

            using (var trans = _defaultDbTransaction.Begin())
            {
                _storeContext.BatchCreateOrUpdate(new BatchStoreChangeApiModel
                {
                    ChangeTypeId        = (int)StoreChangeType.Prescription,
                    HospitalChangeGoods = goods.ToList(),
                }, model.HospitalDepartment.Id, userId);
                _prescriptionRespository.UpdateStatus(id, PrescriptionStatus.Submited);
                trans.Commit();
            }
            return(0);
        }
Example #2
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);
        }