Пример #1
0
        /// <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);
                    }
                }
            }
        }
Пример #2
0
        /// <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);
        }
Пример #3
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;
            }
        }