/// <summary> /// 生产工艺流程保存 /// </summary> /// <returns>成功返回1 失败返回-1</returns> public override int SaveProcess() { Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); Neusoft.HISFC.BizLogic.Pharmacy.Preparation pprManager = new Neusoft.HISFC.BizLogic.Pharmacy.Preparation(); DateTime sysTime = pprManager.GetDateTimeFromSysDateTime(); for (int i = 0; i < this.fpSemiAssay_Sheet1.Rows.Count; i++) { Neusoft.HISFC.Models.Preparation.Process p = this.GetProcessInstance(i); p.Oper.OperTime = sysTime; p.Oper.ID = pprManager.Operator.ID; if (pprManager.SetProcess(p) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("保存制剂工艺流程信息失败" + pprManager.Err); } } this.preparation.AssayQty = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.numAssayNum.Text); if (base.SaveProcess(false) >= 1) { Neusoft.FrameWork.Management.PublicTrans.Commit(); MessageBox.Show("工艺流程执行信息保存成功"); this.PrintProcess(); } return(1); }
private Dictionary <string, string> ComputeCostPrice(PManager pManager, ref PObject.Preparation preparation) { List <Neusoft.HISFC.Models.Preparation.Expand> expandList = ucExpand.QueryExpandList(pManager, preparation); if (expandList == null) { return(null); } decimal costPrice = 0; foreach (Neusoft.HISFC.Models.Preparation.Expand info in expandList) { costPrice = info.FacutalExpand / info.Prescription.MaterialPackQty * info.Prescription.Price; this.drugNameDict.Add("[" + info.Prescription.Material.ID + "]", costPrice.ToString()); } if (costPrice == 0) { preparation.CostPrice = preparation.Drug.PriceCollection.PurchasePrice; } else { preparation.CostPrice = costPrice; } return(drugNameDict); }
/// <summary> /// 制剂消耗信息获取 /// </summary> /// <param name="preparationManager">制剂管理业务层</param> /// <param name="preparation">制剂成品信息</param> /// <returns>成功返回制剂消耗信息 失败返回null</returns> internal static List <PObject.Expand> QueryExpandList(PManager preparationManager, PObject.Preparation preparation) { List <Neusoft.HISFC.Models.Preparation.Expand> expandList = preparationManager.QueryExpand(preparation, null); if (expandList == null) { MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("获取制剂消耗信息发生错误") + preparationManager.Err); return(null); } return(expandList); }
public virtual int SetPreparation(Neusoft.HISFC.Models.Preparation.Preparation preparation) { Neusoft.HISFC.BizLogic.Pharmacy.Preparation pprManager = new Neusoft.HISFC.BizLogic.Pharmacy.Preparation(); this.processList = pprManager.QueryProcess(preparation.PlanNO, preparation.Drug.ID, ((int)preparation.State).ToString()); if (this.processList != null && this.processList.Count > 0) { Function.SetProcessItem(this.processList, this.hsProcessControl); } this.preparation = preparation; return(1); }
/// <summary> /// 加载处方内容信息 /// </summary> /// <returns>成功返回1 失败返回-1</returns> protected int QueryPrescriptionData() { string drugCode = this.preparation.Drug.ID; this.fpSemiAssay_Sheet1.Rows.Count = 0; Neusoft.HISFC.BizLogic.Pharmacy.Preparation pprManager = new Neusoft.HISFC.BizLogic.Pharmacy.Preparation(); List <Neusoft.HISFC.Models.Preparation.Prescription> al = pprManager.QueryDrugPrescription(drugCode, Neusoft.HISFC.Models.Preparation.EnumMaterialType.Material); if (al == null) { MessageBox.Show(Language.Msg("获取当前选择成品的配制处方信息出错\n" + drugCode)); return(-1); } foreach (Neusoft.HISFC.Models.Preparation.Prescription info in al) { int i = this.fpSemiAssay_Sheet1.Rows.Count; this.fpSemiAssay_Sheet1.Rows.Add(i, 1); this.fpSemiAssay_Sheet1.Cells[i, (int)ReportColumnEnum.ColItemID].Text = info.Material.ID; this.fpSemiAssay_Sheet1.Cells[i, (int)ReportColumnEnum.ColItemName].Text = info.Material.Name; if (this.ProcessList != null) { foreach (Neusoft.HISFC.Models.Preparation.Process p in this.ProcessList) { if (p.ProcessItem.ID == info.Material.ID) { this.fpSemiAssay_Sheet1.Cells[i, (int)ReportColumnEnum.ColDes].Text = p.ResultStr; this.fpSemiAssay_Sheet1.Cells[i, (int)ReportColumnEnum.ColContent].Text = p.Extend; this.fpSemiAssay_Sheet1.Cells[i, (int)ReportColumnEnum.ColResult].Text = p.ResultQty.ToString(); } } } else { this.fpSemiAssay_Sheet1.Cells[i, (int)ReportColumnEnum.ColDes].Text = ""; this.fpSemiAssay_Sheet1.Cells[i, (int)ReportColumnEnum.ColContent].Text = "0"; this.fpSemiAssay_Sheet1.Cells[i, (int)ReportColumnEnum.ColResult].Text = "0"; } this.fpSemiAssay_Sheet1.Rows[i].Tag = info.Material; } return(1); }
/// <summary> /// 成本价计算 /// </summary> /// <param name="preparation">制剂成品信息</param> /// <returns>成功返回1 失败返回-1</returns> internal static int ComputeCostPrice(PManager pManager, ref PObject.Preparation preparation, ComputeCostPriceType computeType) { if (computeType == ComputeCostPriceType.Manual) { using (ucCostPrice uc = new ucCostPrice( )) { uc.SetPreparation(preparation, pManager, ref preparation); Neusoft.FrameWork.WinForms.Classes.Function.PopForm.Text = "成本价设置"; Neusoft.FrameWork.WinForms.Classes.Function.PopShowControl(uc); if (uc.Result == DialogResult.Cancel) { return(1); } else { preparation.CostPrice = uc.CostPrice; return(1); } } } else { List <Neusoft.HISFC.Models.Preparation.Expand> expandList = ucExpand.QueryExpandList(pManager, preparation); if (expandList == null) { return(-1); } decimal costPrice = 0; foreach (Neusoft.HISFC.Models.Preparation.Expand info in expandList) { costPrice = info.FacutalExpand / info.Prescription.MaterialPackQty * info.Prescription.Price; } if (costPrice == 0) { preparation.CostPrice = preparation.Drug.PriceCollection.PurchasePrice; } else { preparation.CostPrice = costPrice; } } return(1); }
/// <summary> /// 工艺流程保存 /// </summary> /// <param name="beginTransaction">是否开启事务 如False,则认为事务由外部启动 不提交/不提示成功/不自动打印</param> /// <returns>成功返回1 失败返回-1</returns> public virtual int SaveProcess(bool beginTransaction) { if (Function.GetProcessItemList(this.panelInput, ref this.hsProcessItem) == 1) { foreach (Neusoft.HISFC.Models.Preparation.Process info in this.hsProcessItem.Values) { info.Preparation = this.preparation.Clone(); } } if (beginTransaction) { Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); } //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance); //t.BeginTransaction(); Neusoft.HISFC.BizLogic.Pharmacy.Preparation pprManager = new Neusoft.HISFC.BizLogic.Pharmacy.Preparation(); //pprManager.SetTrans(t.Trans); DateTime sysTime = pprManager.GetDateTimeFromSysDateTime(); foreach (Neusoft.HISFC.Models.Preparation.Process p in this.hsProcessItem.Values) { p.Oper.OperTime = sysTime; p.Oper.ID = pprManager.Operator.ID; if (pprManager.SetProcess(p) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show("保存制剂工艺流程信息失败" + pprManager.Err); } } if (beginTransaction) { Neusoft.FrameWork.Management.PublicTrans.Commit(); MessageBox.Show("工艺流程执行信息保存成功"); this.PrintProcess(); } return(1); }
/// <summary> /// 设置制剂成品信息 并 显示成本计算公式、当前成本价 /// </summary> /// <param name="preparation">制剂成品信息</param> protected int SetPreparation(Neusoft.HISFC.Models.Preparation.Preparation preparation, PManager pManager, ref PObject.Preparation preparation1) { string drugCode = preparation.Drug.ID; List <Neusoft.HISFC.Models.Preparation.Prescription> al = this.preparationManager.QueryDrugPrescription(drugCode); if (al == null) { return(-1); } foreach (Neusoft.HISFC.Models.Preparation.Prescription info in al) { drugCodeDict.Add(info.Material.ID, info.Material.Name); //drugNameDict.Add ( info.Material.Name, info.Material.ID ); } string costPriceFormula = this.preparationManager.GetCostPriceFormula(drugCode); this.ntxtCostPrice.Text = Neusoft.FrameWork.Public.String.ExpressionVal(this.CodeToPrice(costPriceFormula, this.ComputeCostPrice(pManager, ref preparation1))).ToString(); costPriceFormula = this.CodeToName(costPriceFormula); this.costPriceTxt.Text = costPriceFormula; this.lbPreparation.Text = string.Format(this.strPreparation, preparation.Drug.Name, preparation.Drug.Specs, preparation.BatchNO, preparation.PlanQty, preparation.Unit); return(this.ucExpand1.ShowExpand(preparation)); }
/// <summary> /// 入库计划单据列表 /// </summary> /// <param name="planState">计划状态</param> public void ShowPlanList(params Neusoft.HISFC.Models.Preparation.EnumState[] stateCollection) { this.Nodes.Clear(); Neusoft.HISFC.BizLogic.Pharmacy.Preparation preparationManager = new Neusoft.HISFC.BizLogic.Pharmacy.Preparation(); List <Neusoft.HISFC.Models.Preparation.Preparation> alList = new List <Neusoft.HISFC.Models.Preparation.Preparation>(); foreach (Neusoft.HISFC.Models.Preparation.EnumState state in stateCollection) { List <Neusoft.HISFC.Models.Preparation.Preparation> alTempList = preparationManager.QueryPreparation(state); if (alTempList == null) { System.Windows.Forms.MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("获取制剂计划列表发生错误" + preparationManager.Err)); return; } //{FF5101E6-3188-4928-AEAE-6C2B55A9848D} 对检验不合格的项目列表进行过滤 List <Neusoft.HISFC.Models.Preparation.Preparation> alFilterList = new List <Neusoft.HISFC.Models.Preparation.Preparation>(); foreach (Neusoft.HISFC.Models.Preparation.Preparation info in alTempList) { if (info.IsAssayEligible == true) { alFilterList.Add(info); } } alList.AddRange(alFilterList); } if (alList.Count == 0) { this.Nodes.Add(new System.Windows.Forms.TreeNode("没有计划单", 0, 0)); } else { System.Windows.Forms.TreeNode parentNode = new System.Windows.Forms.TreeNode("计划单列表", 0, 0); this.Nodes.Add(parentNode); System.Windows.Forms.TreeNode planNode = new TreeNode(); string privPlanNO = ""; foreach (Neusoft.HISFC.Models.Preparation.Preparation info in alList) { if (privPlanNO != info.PlanNO) //添加计划单节点 { planNode = new System.Windows.Forms.TreeNode(info.PlanNO); planNode.Tag = info; planNode.ImageIndex = 2; planNode.SelectedImageIndex = 4; parentNode.Nodes.Add(planNode); privPlanNO = info.PlanNO; } } this.Nodes[0].ExpandAll(); this.SelectedNode = this.Nodes[0]; } }