/// <summary> /// 删除单条处方明细记录 /// </summary> public int Delete() { _oleDb.BeginTransaction(); try { Model.Mz_Doc_PresHead presHead = BindEntity <Model.Mz_Doc_PresHead> .CreateInstanceDAL(_oleDb).GetModel(this.PresHeadId); if (presHead.Pres_Flag > 0) { return(presHead.Pres_Flag); } this.Delete_Bit = 1; BindEntity <Model.Mz_Doc_PresList> .CreateInstanceDAL(_oleDb).Update(this); string strsql = @"update mz_doc_preslist set orderno=orderno-1 where presheadid=" + this.PresHeadId + " and orderno>" + this.OrderNo + " and workid=" + HIS.SYSTEM.Core.EntityConfig.WorkID; if (this.Group_Id > 0) { strsql = @"update mz_doc_preslist set group_id=group_id-1 where presheadid=" + this.PresNo + " and orderno>" + this.OrderNo + " and orderno-group_id=" + (this.OrderNo - this.Group_Id) + " and workid=" + HIS.SYSTEM.Core.EntityConfig.WorkID; _oleDb.DoCommand(strsql); } _oleDb.DoCommand(strsql); _oleDb.CommitTransaction(); return(presHead.Pres_Flag); } catch (Exception e) { _oleDb.RollbackTransaction(); throw e; } }
/// <summary> /// 保存处方明细 /// </summary> /// <param name="prescriptions"></param> public int Save(IList prescriptions) { _oleDb.BeginTransaction(); try { foreach (Prescription prescription in prescriptions) { Model.Mz_Doc_PresHead presHead = BindEntity <Model.Mz_Doc_PresHead> .CreateInstanceDAL(_oleDb).GetModel(prescription.PresHeadId); if (presHead.Pres_Flag > 0) { return(presHead.Pres_Flag); } prescription.SetRealValue(); if (prescription.Status == HIS.MZDoc_BLL.Public.PresStatus.新建状态) { BindEntity <Model.Mz_Doc_PresList> .CreateInstanceDAL(_oleDb).Add(prescription); } else if (prescription.Status == HIS.MZDoc_BLL.Public.PresStatus.修改状态) { BindEntity <Model.Mz_Doc_PresList> .CreateInstanceDAL(_oleDb).Update(prescription); } } _oleDb.CommitTransaction(); return(Public.PresStatus.保存状态.GetHashCode()); } catch (Exception e) { _oleDb.RollbackTransaction(); throw e; } }
/// <summary> /// 获取处方实时状态 /// </summary> public Public.PresStatus GetPresStatus() { Model.Mz_Doc_PresHead presHead = BindEntity <Model.Mz_Doc_PresHead> .CreateInstanceDAL(_oleDb).GetModel(this.PresHeadId); return((Public.PresStatus)presHead.Pres_Flag); }
/// <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; } }