Beispiel #1
0
        /// <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;
            }
        }
Beispiel #2
0
        /// <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;
            }
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        /// <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;
            }
        }