/// <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="InvoiceNum"></param> /// <returns></returns> public static List <PrescriptionDetail> GetDrugReturnValueList(string InvoiceNum) { HIS.Interface.YP_Data yp_data = new HIS.Interface.YP_Data( ); List <HIS.Interface.Structs.PrescriptionDetail> lstYP = yp_data.GetReturnDrugList(InvoiceNum); List <HIS.Interface.Structs.PrescriptionDetail> lstRetYP = new List <PrescriptionDetail>( ); foreach (HIS.Interface.Structs.PrescriptionDetail detail in lstYP) { PrescriptionDetail _detail = new PrescriptionDetail( ); _detail.DetailId = detail.DetailId; _detail.Amount = detail.Amount; _detail.BigitemCode = detail.BigitemCode; _detail.Buy_price = detail.Buy_price; _detail.ItemId = detail.ItemId; _detail.PresctionId = detail.PresctionId; _detail.RelationNum = detail.RelationNum; _detail.Sell_price = detail.Sell_price; _detail.Tolal_Fee = detail.Tolal_Fee; lstRetYP.Add(_detail); } return(lstRetYP); }
/// <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; } }