/// <summary> /// 药品入库 /// </summary> /// <param name="Id"></param> /// <param name="entity"></param> public void SaveDrugStock(string Id, DrugStockEntity entity) { //入库前先要更新药品总量 try { //入库时余量=余量+入库总量 //总量=之前的余量+入库量 DrugEntity drug = service.GetEntity(entity.DrugId); decimal inNum = (decimal)entity.DrugNum * entity.DrugUSL; decimal surnum = drug.Surplus.Value; drug.Surplus += inNum; drug.Total = surnum + inNum; drug.DrugNum += entity.DrugNum; entity.DrugUnit = drug.Unit; entity.DrugName = drug.DrugName; entity.DrugLevel = drug.DrugLevelName + drug.DrugLevel; entity.Type = "0"; entity.StockNum = drug.DrugNum; entity.BZId = drug.BZId; service.SaveDrug(drug.Id, drug); drugStock.SaveDrugStock(Id, entity); } catch (Exception) { throw; } }
/// <summary> /// 药品出库 /// </summary> /// <param name="Id"></param> /// <param name="entity"></param> public void SaveDrugOut(string deptid, string Id, DrugStockEntity entity) { try { //出库时余量=余量-出库总量 //总量不变 DrugEntity drug = service.GetEntity(entity.DrugId); drug.Surplus = drug.Surplus - (decimal)entity.DrugNum * int.Parse(drug.Spec); drug.DrugNum = Convert.ToInt32(drug.DrugNum - entity.DrugNum); drug.OutNum += Convert.ToInt32(entity.DrugNum); drug.State = "1"; drug.OutSurplus += (decimal)entity.DrugNum * Convert.ToDecimal(drug.Spec); entity.DrugUnit = drug.Unit; entity.DrugName = drug.DrugName; entity.DrugLevel = drug.DrugLevelName + drug.DrugLevel; //entity.Surplus = drug.Surplus; entity.Type = "1"; entity.StockNum = drug.DrugNum; entity.BZId = drug.BZId; service.SaveDrug(drug.Id, drug); drugStock.SaveDrugStock(Id, entity); //若出库信息已存在该类药品,更新余量;否则新增一条 DrugStockOutEntity dso = new DrugStockOutEntity(); var dsolist = this.GetStockOutList(deptid, entity.DrugName, drug.DrugLevel).Where(x => x.BZId == drug.BZId); if (dsolist.Count() > 0) { dso = dsolist.SingleOrDefault(); dso.DrugInventoryId = drug.DrugInventoryId; dso.OutTotal += (decimal)entity.DrugNum * int.Parse(drug.Spec); dso.Total += (decimal)entity.DrugNum * int.Parse(drug.Spec); dso.Warn = Convert.ToDecimal(drug.Warn); this.SaveStockOut(dso.Id, dso); } else { dso.DrugInventoryId = drug.DrugInventoryId; dso.Id = Guid.NewGuid().ToString(); dso.OutTotal += (decimal)entity.DrugNum * int.Parse(drug.Spec); dso.Total += (decimal)entity.DrugNum * int.Parse(drug.Spec); dso.DrugName = entity.DrugName; dso.DrugUnit = entity.DrugUnit; dso.DrugLevel = drug.DrugLevel; dso.DrugLevelName = drug.DrugLevelName; dso.DrugId = entity.DrugId; dso.CreateDate = DateTime.Now; dso.BZId = drug.BZId; dso.CreateUserId = entity.CreateUserId; dso.CreateUserName = entity.CreateUserName; dso.Warn = Convert.ToDecimal(drug.Warn); this.SaveStockOut(dso.Id, dso); } } catch (Exception) { throw; } }