Example #1
0
        /// <summary>
        /// 有效性检查
        /// </summary>
        /// <param name="isNotice">是否进行信息提示</param>
        /// <returns>库存条件满足或自动形成申请信息 True 库存不足或不自动形成申请 False</returns>
        internal bool ValidStock(bool isNotice)
        {
            for (int i = 0; i < this.fsMaterial_Sheet1.Rows.Count; i++)
            {
                Neusoft.HISFC.Models.Preparation.Expand expand = (this.fsMaterial_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Preparation.Expand).Clone();

                expand.FacutalExpand = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.fsMaterial_Sheet1.Cells[i, (int)ExpandColumnSet.ColFactualExpand].Text);

                if (expand.StoreQty < expand.FacutalExpand)
                {
                    if (isNotice)
                    {
                        DialogResult rs = MessageBox.Show(Language.Msg("库存不足 无法完原材料库存扣除,对库存不足的原材料是否自动形成申请?"), "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (rs == DialogResult.No)      //不允许自动形成申请 数据无效
                        {
                            return(false);
                        }
                        else                           //允许自动形成申请 isAutoApply设置为True
                        {
                            return(true);
                        }
                    }
                    else
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Example #2
0
        /// <summary>
        /// 消耗设置信息保存
        /// </summary>
        /// <param name="isLocalTrans">是否本地(函数内部)开启事务</param>
        /// <param name="msg">提示信息</param>
        /// <returns></returns>
        internal int SaveExpandInfo(bool isLocalTrans, ref string msg)
        {
            msg = "";
            if (this.fsMaterial_Sheet1.Rows.Count <= 0)
            {
                return(0);
            }

            if (isLocalTrans)
            {
                Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();
            }
            this.preparationManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

            DateTime sysTime = this.preparationManager.GetDateTimeFromSysDateTime();

            for (int i = 0; i < this.fsMaterial_Sheet1.Rows.Count; i++)
            {
                Neusoft.HISFC.Models.Preparation.Expand expand = (this.fsMaterial_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Preparation.Expand).Clone();

                if (expand.PlanNO == null || expand.PlanNO == "")
                {
                    if (isLocalTrans)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    }
                    msg = Language.Msg("请先保存计划信息再进行消耗信息设置");
                    return(-1);
                }

                expand.FacutalExpand = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.fsMaterial_Sheet1.Cells[i, (int)ExpandColumnSet.ColFactualExpand].Text);
                expand.Prescription.OperEnv.OperTime = sysTime;
                expand.Prescription.OperEnv.ID       = this.preparationManager.Operator.ID;

                if (this.preparationManager.SetExpand(expand) == -1)
                {
                    if (isLocalTrans)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    }
                    msg = Language.Msg("保存消耗信息时发生错误") + this.preparationManager.Err;
                    return(-1);
                }
            }

            if (isLocalTrans)
            {
                Neusoft.FrameWork.Management.PublicTrans.Commit();
                msg = Language.Msg("消耗信息设置成功");
            }

            if (this.ExpandDataFinishEvent != null)
            {
                this.ExpandDataFinishEvent(this, System.EventArgs.Empty);
            }

            return(1);
        }
Example #3
0
        /// <summary>
        /// 添加制剂成品消耗信息
        /// </summary>
        /// <param name="info">制剂消耗信息</param>
        protected void AddExpandToFp(Neusoft.HISFC.Models.Preparation.Expand info)
        {
            int rowCoount = this.fsMaterial_Sheet1.Rows.Count;

            this.fsMaterial_Sheet1.Rows.Add(rowCoount, 1);
            this.fsMaterial_Sheet1.Cells[rowCoount, (int)ExpandColumnSet.ColMaterialName].Text = info.Prescription.Material.Name;
            this.fsMaterial_Sheet1.Cells[rowCoount, (int)ExpandColumnSet.ColSpecs].Text        = info.Prescription.Specs;
            this.fsMaterial_Sheet1.Cells[rowCoount, (int)ExpandColumnSet.ColPrice].Text        = info.Prescription.Price.ToString();
            this.fsMaterial_Sheet1.Cells[rowCoount, (int)ExpandColumnSet.ColNormativeQty].Text = info.Prescription.NormativeQty.ToString() + "[" + info.Prescription.NormativeUnit + "]";
            this.fsMaterial_Sheet1.Cells[rowCoount, (int)ExpandColumnSet.ColPlanExpand].Text   = info.PlanExpand.ToString() + "[" + info.Prescription.NormativeUnit + "]";

            this.fsMaterial_Sheet1.Cells[rowCoount, (int)ExpandColumnSet.ColStore].Text         = info.StoreQty.ToString() + "[" + info.Prescription.NormativeUnit + "]";
            this.fsMaterial_Sheet1.Cells[rowCoount, (int)ExpandColumnSet.ColFactualExpand].Text = info.FacutalExpand.ToString() + "[" + info.Prescription.NormativeUnit + "]";
            this.fsMaterial_Sheet1.Cells[rowCoount, (int)ExpandColumnSet.ColMemo].Text          = info.Memo;

            this.fsMaterial_Sheet1.Rows[rowCoount].Tag = info;
        }
Example #4
0
        /// <summary>
        /// 制剂原料消耗信息计算
        /// </summary>
        /// <param name="info">制剂成品计划信息</param>
        internal List <Neusoft.HISFC.Models.Preparation.Expand> ComputePrescription(Neusoft.HISFC.Models.Preparation.Preparation info)
        {
            List <Neusoft.HISFC.Models.Preparation.Prescription> prescriptionList = this.preparationManager.QueryDrugPrescription(info.Drug.ID);

            if (prescriptionList == null)
            {
                MessageBox.Show(Language.Msg("获取制剂配制处方信息发生错误") + this.preparationManager.Err);
                return(null);
            }

            List <Neusoft.HISFC.Models.Preparation.Expand> expandList = new List <Neusoft.HISFC.Models.Preparation.Expand>();

            foreach (Neusoft.HISFC.Models.Preparation.Prescription prescription in prescriptionList)
            {
                Neusoft.HISFC.Models.Preparation.Expand expand = new Neusoft.HISFC.Models.Preparation.Expand();

                expand.Prescription = prescription;
                expand.PlanNO       = info.PlanNO;
                expand.PlanQty      = info.PlanQty;
                expand.PlanExpand   = info.PlanQty * prescription.NormativeQty;

                expand.FacutalExpand = -1;

                //{8840008D-2FEA-4471-B404-B05E25832120}  获取库存
                decimal storeQty = 0;
                if (this.pharmacyIntegrate.GetStorageNum(this.stockDept.ID, expand.Prescription.Material.ID, out storeQty) == -1)
                {
                    MessageBox.Show("加载原料库存发生错误" + this.pharmacyIntegrate.Err);
                    return(null);
                }
                expand.StoreQty = storeQty;
                //{8840008D-2FEA-4471-B404-B05E25832120}  获取库存

                expandList.Add(expand);
            }

            return(expandList);
        }