/// <summary> /// 药品库存判断 /// </summary> /// <param name="ItemId"></param> /// <param name="ExecDeptCode"></param> /// <param name="Amount">要判断的库存,如果传入0,则判断当前是否有库存,否则判断传入的库存是否大于当前库存</param> /// <returns></returns> public static bool StoreExists(int ItemId, string ExecDeptCode, decimal Amount, out decimal SellPrice, out decimal BuyPrice, out decimal StoreValue) { if (ExecDeptCode.Trim() == "") { ExecDeptCode = "0"; } HIS.Interface.YP_Data yp_data = new HIS.Interface.YP_Data( ); bool ret = yp_data.GetDrugStorInfo(ItemId, Convert.ToInt32(ExecDeptCode), out SellPrice, out BuyPrice, out StoreValue); if (ret == false) { return(false); } else { if (StoreValue == 0) { return(false); } else { if (Amount > StoreValue) { return(false); } else { return(true); } } } }
/// <summary> /// 保存处方 /// </summary> /// <param name="prescriptions">处方明细列表</param> /// <returns></returns> public bool SavePrescription(List <Prescription> prescriptions) { oleDb.BeginTransaction(); try { int presNo = 0; int presHeadNo = 0; foreach (Prescription prescription in prescriptions) { if (prescription.PresHeadId > 0) { Model.Mz_Doc_PresHead presHead = BindEntity <Model.Mz_Doc_PresHead> .CreateInstanceDAL(oleDb).GetModel(prescription.PresHeadId); if (presHead.Pres_Flag > 0) { continue; } } prescription.SetRealValue(); if (prescription.IsDrug) { HIS.Interface.YP_Data ypdata = new HIS.Interface.YP_Data(); decimal sell_price = 0; decimal buy_price = 0; decimal currentstorenum = 0; ypdata.GetDrugStorInfo(prescription.Item_Id, prescription.Dept_Id, out sell_price, out buy_price, out currentstorenum); if (Convert.ToDecimal(prescription.Item_Amount) > currentstorenum) { throw new Exception("" + prescription.Item_Name + "开药总数量大于当前库存,请重开"); } } if (prescription.Status == HIS.MZDoc_BLL.Public.PresStatus.新建状态) { if (prescription.PresHeadId == 0) { if (prescription.PresNo != presNo) { presNo = prescription.PresNo; HIS.Model.Mz_Doc_PresHead presHead = new HIS.Model.Mz_Doc_PresHead(); presHead.PatId = (int)this.PatList.PatID; presHead.PatListId = this.PatList.PatListID; presHead.PresType = prescription.IsDrug ? prescription.StatItem_Code : "00"; presHead.Pres_Doc = Public.StaticConfig.CureDocCode; presHead.Pres_Dept = Public.StaticConfig.CureDeptCode; presHead.Pres_ExeDept = prescription.Dept_Id; presHead.Pres_Date = HIS.SYSTEM.PubicBaseClasses.XcDate.ServerDateTime; presHeadNo = BindEntity <Model.Mz_Doc_PresHead> .CreateInstanceDAL(oleDb).Add(presHead); } prescription.PresHeadId = presHeadNo; } BindEntity <Model.Mz_Doc_PresList> .CreateInstanceDAL(oleDb).Add(prescription); // 累计常用项 if (prescription.IsDrug) { new CommonDrug(oleDb).Increase(prescription.Item_Id, Public.StaticConfig.CureDocCode); } else { new CommonItem(oleDb).Increase(prescription.Item_Id, Public.StaticConfig.CureDocCode); } } else if (prescription.Status == HIS.MZDoc_BLL.Public.PresStatus.修改状态) { BindEntity <Model.Mz_Doc_PresList> .CreateInstanceDAL(oleDb).Update(prescription); } } oleDb.CommitTransaction(); this.ChangeCureInfo(HIS.MZDoc_BLL.Public.PatCureStatus.候诊状态); return(true); } catch (Exception e) { oleDb.RollbackTransaction(); throw e; } }