/// <summary> /// 保存数据 /// </summary> public int Save() { this.fpStorage.StopCellEditing(); //有效性判断 if (Valid()) { return(-1); } ; //定义数据库处理事务 Neusoft.FrameWork.Management.PublicTrans.BeginTransaction(); //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance); //t.BeginTransaction(); basesetManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans); Neusoft.HISFC.Models.Material.MaterialStorage storage = null; foreach (DataRow row in this.dt.Rows) { storage = new Neusoft.HISFC.Models.Material.MaterialStorage(); storage.ID = row["仓库编码"].ToString(); //0编码 storage.Name = row["仓库名称"].ToString(); //1仓库名称 storage.SpellCode = row["拼音码"].ToString(); //2拼音码 storage.WBCode = row["五笔码"].ToString(); //3五笔码 storage.OutStartNO = Neusoft.FrameWork.Function.NConvert.ToInt32(row["出库单起始号"]); //4出库单起始号 storage.InStartNO = Neusoft.FrameWork.Function.NConvert.ToInt32(row["入库单起始号"]); //5入库单起始号 storage.PlanStartNO = Neusoft.FrameWork.Function.NConvert.ToInt32(row["申请单起始号"]); //6申请单起始号 storage.IsWithFix = Neusoft.FrameWork.Function.NConvert.ToBoolean(row["有无固定资产"].ToString()); //7有无固定资产 storage.IsStorage = Neusoft.FrameWork.Function.NConvert.ToBoolean(row["是否是仓库"].ToString()); //8是否是仓库 storage.IsStoreManage = Neusoft.FrameWork.Function.NConvert.ToBoolean(row["是否管理库存"].ToString()); //9是否管理库存 storage.IsBatchManage = Neusoft.FrameWork.Function.NConvert.ToBoolean(row["是否管理批次"].ToString()); //10是否管理批次 storage.MaxDays = Neusoft.FrameWork.Function.NConvert.ToInt32(row["库存上限天数"]); storage.MinDays = Neusoft.FrameWork.Function.NConvert.ToInt32(row["库存下限天数"]); storage.ReferenceDays = Neusoft.FrameWork.Function.NConvert.ToInt32(row["库存参考天数"]); storage.Oper.ID = row["操作员"].ToString(); storage.Oper.OperTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(row["操作日期"].ToString()); //首先执行更新操作,如果没有成功则插入新数据 if (this.basesetManager.SetStorage(storage) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); MessageBox.Show(this.basesetManager.Err); return(0); } } Neusoft.FrameWork.Management.PublicTrans.Commit(); //刷新数据 this.ShowData(); MessageBox.Show("保存成功!"); return(1); }
/// <summary> /// 根据所赋值的库房编码 设置信息显示 /// </summary> public void SetData() { Neusoft.HISFC.BizLogic.Material.Baseset baseManager = new Neusoft.HISFC.BizLogic.Material.Baseset(); Neusoft.HISFC.Models.Material.MaterialStorage deptCons = baseManager.QueryStorageInfo(this.deptCode); if (deptCons == null) { MessageBox.Show("获取科室常数发生错误! \n" + baseManager.Err); return; } this.dtpEnd.Value = baseManager.GetDateTimeFromSysDateTime().Date; this.dtpBegin.Value = this.dtpEnd.Value.AddDays(-deptCons.ReferenceDays); this.txtMaxDays.Text = deptCons.MaxDays.ToString(); this.txtMinDays.Text = deptCons.MinDays.ToString(); this.lbIntervalDays.Text = deptCons.ReferenceDays.ToString() + "天"; }
/// <summary> /// 科室结构信息显示 /// </summary> public void ShowDeptStruct() { Neusoft.HISFC.BizLogic.Manager.DepartmentStatManager deptStatManager = new Neusoft.HISFC.BizLogic.Manager.DepartmentStatManager(); ArrayList alDeptStat = deptStatManager.LoadDepartmentStat("05"); if (alDeptStat == null) { MessageBox.Show(Language.Msg("获取科室节点信息失败")); return; } ArrayList al = new ArrayList(); foreach (Neusoft.HISFC.Models.Base.DepartmentStat deptStat in alDeptStat) { if (this.hsphaDept.ContainsKey(deptStat.DeptCode)) { continue; } if (deptStat.DeptCode.Substring(0, 1) == "S") { continue; } Neusoft.HISFC.Models.Material.MaterialStorage storage = new Neusoft.HISFC.Models.Material.MaterialStorage(); storage.ID = deptStat.DeptCode; storage.Name = this.deptHelper.GetName(deptStat.DeptCode); storage.Name = storage.Name; storage.ID = deptStat.DeptCode; storage.SpellCode = deptStat.SpellCode; storage.WBCode = deptStat.WBCode; al.Add(storage); } this.AddDataToTable(al, true); }
/// <summary> /// 保存 /// </summary> public void Save() { if (!this.Valid()) { return; } DialogResult rs = MessageBox.Show("确认向" + this.outManager.TargetDept.Name + "进行出库操作吗?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (rs == DialogResult.No) { return; } this.dt.DefaultView.RowFilter = "1=1"; for (int i = 0; i < this.dt.DefaultView.Count; i++) { this.dt.DefaultView[i].EndEdit(); } FarPoint.Win.Spread.CellType.NumberCellType numberCellType = new FarPoint.Win.Spread.CellType.NumberCellType(); numberCellType.DecimalPlaces = 4; this.outManager.FpSheetView.Columns[(int)ColumnSet.ColPurchasePrice].CellType = numberCellType; this.outManager.FpSheetView.Columns[(int)ColumnSet.ColOutCost].CellType = numberCellType; this.outManager.FpSheetView.Columns[(int)ColumnSet.ColRetailPrice].CellType = numberCellType; DataTable dtAddMofity = this.dt.GetChanges(DataRowState.Added | DataRowState.Modified); if (dtAddMofity == null || dtAddMofity.Rows.Count <= 0) { return; } Neusoft.FrameWork.WinForms.Classes.Function.ShowWaitForm("正在进行保存操作..请稍候"); System.Windows.Forms.Application.DoEvents(); #region 事务定义 //常熟维护 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.Material.Baseset matConstant = new Neusoft.HISFC.BizLogic.Material.Baseset(); this.storeManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans); //matConstant.SetTrans(t.Trans); #endregion DateTime sysTime = this.storeManager.GetDateTimeFromSysDateTime(); #region 判断领用科室是否关联库存 bool isManagerStore = false; Neusoft.HISFC.Models.Material.MaterialStorage matStorage = matConstant.QueryStorageInfo(this.outManager.TargetDept.ID); if (matStorage != null && matStorage.IsStoreManage) { isManagerStore = true; } isManagerStore = true; if (!isManagerStore) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm(); MessageBox.Show(this.outManager.TargetDept.Name + " 不管理库存,不能通过出库审批进行出库"); return; } #endregion //出库单据号 string outListNO = null; int serialNO = 0; Neusoft.HISFC.Models.Material.Output output; List <Neusoft.HISFC.Models.Material.Output> alOutput = new List <Neusoft.HISFC.Models.Material.Output>(); foreach (DataRow dr in dtAddMofity.Rows) { string key = this.GetKey(dr); output = this.hsOutData[key] as Neusoft.HISFC.Models.Material.Output; if (this.GetOutputFormDataRow(dr, sysTime, ref output) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm(); MessageBox.Show("获取出库明细信息失败"); return; } //判断是否选中该行 if (!Neusoft.FrameWork.Function.NConvert.ToBoolean(dr["审批"])) { continue; } //判断出库数量是否为0 if (output.StoreBase.Quantity == 0) { continue; } serialNO++; output.StoreBase.SerialNO = serialNO; #region 获取出库单据号 if (outListNO == null) { outListNO = output.OutListNO; } if (outListNO == null || outListNO == "") { outListNO = this.storeManager.GetOutListNO(this.outManager.DeptInfo.ID); if (outListNO == null) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm(); MessageBox.Show("获取出库单据号发生错误"); return; } } output.OutListNO = outListNO; #endregion #region 获取库存量 decimal storeQty = 0; if (this.storeManager.GetStoreQty(output.StoreBase.StockDept.ID, output.StoreBase.Item.ID, out storeQty) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm(); MessageBox.Show("获取库存数量时出错" + storeManager.Err); return; } output.StoreBase.StoreQty = storeQty; //出库前库存数量 output.StoreBase.StoreCost = Math.Round(output.StoreBase.StoreQty / output.StoreBase.Item.PackQty * output.StoreBase.PriceCollection.PurchasePrice, 3); #endregion #region 根据不同参数设置出库数据状态 if (isManagerStore) //目标(领用)科室管理库存 { output.StoreBase.State = "1"; //审核 } else { output.StoreBase.State = "2"; //核准 } if (output.StoreBase.State == "2") { output.StoreBase.Operation.ApproveOper = output.StoreBase.Operation.Oper; } #endregion if (this.storeManager.Output(output) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm(); MessageBox.Show("出库保存发生错误" + this.storeManager.Err); return; } if (output.StoreBase.PrivType == "04") { //判断出库数量和申请数量 如果出库数量小于申请数量 则为部分审批 by yuyun 08-7-31 if (output.StoreBase.Quantity >= Neusoft.FrameWork.Function.NConvert.ToDecimal(output.StoreBase.Extend)) { //全部审批 //将state更新成P extend1更新成3 approve_num更新成approve_num+出库数量 if (this.storeManager.UpdateApplyState(output.StoreBase.TargetDept.ID, output.ApplyListCode, output.ApplySerialNO, "P", output.StoreBase.Operation.Oper.ID, output.StoreBase.Operation.Oper.OperTime, output.StoreBase.Quantity, "3", output.StoreBase.Memo) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm(); MessageBox.Show("出库更新发生错误 " + this.storeManager.Err); return; } } else { //部分审批 //将state更新成0 extend1更新成9 approve_num更新成approve_num+出库数量 if (this.storeManager.UpdateApplyState(output.StoreBase.TargetDept.ID, output.ApplyListCode, output.ApplySerialNO, "0", output.StoreBase.Operation.Oper.ID, output.StoreBase.Operation.Oper.OperTime, output.StoreBase.Quantity, "9", output.StoreBase.Memo) == -1) { Neusoft.FrameWork.Management.PublicTrans.RollBack(); Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm(); MessageBox.Show("出库更新发生错误 " + this.storeManager.Err); return; } } } alOutput.Add(output); } Neusoft.FrameWork.Management.PublicTrans.Commit(); MessageBox.Show("保存成功"); Neusoft.FrameWork.WinForms.Classes.Function.HideWaitForm(); if (alOutput.Count > 0) { if (MessageBox.Show("是否打印?", "提示:", System.Windows.Forms.MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { this.Print(alOutput); } /* * if (MessageBox.Show("是否打印?", "提示:", System.Windows.Forms.MessageBoxButtons.YesNo) * == System.Windows.Forms.DialogResult.Yes) * { * Local.GyHis.Material.ucMatOutput ucMat = new Local.GyHis.Material.ucMatOutput(); * ucMat.Decimals = 2; * ucMat.MaxRowNo = 17; * * ucMat.SetDataForInput(alOutput, 1, this.itemManager.Operator.ID, "1"); * } * */ } this.Clear(); this.outManager.FpSheetView.Columns[(int)ColumnSet.ColPurchasePrice].CellType = numberCellType; this.outManager.FpSheetView.Columns[(int)ColumnSet.ColOutCost].CellType = numberCellType; this.outManager.FpSheetView.Columns[(int)ColumnSet.ColRetailPrice].CellType = numberCellType; }