/// <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); }
/// <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); }
/// <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; }
/// <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); }