示例#1
0
        /// <summary>
        /// 保存
        /// </summary>
        public virtual void Save()
        {
            if (!this.Valid())
            {
                return;
            }

            Neusoft.FrameWork.WinForms.Classes.Function.ShowWaitForm("正在进行保存操作..请稍候");
            System.Windows.Forms.Application.DoEvents();

            #region 事务定义

            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();

            Neusoft.HISFC.BizProcess.Integrate.Pharmacy phaIntegrate = new Neusoft.HISFC.BizProcess.Integrate.Pharmacy();
            Neusoft.HISFC.BizLogic.Pharmacy.Item        itemManager  = new Neusoft.HISFC.BizLogic.Pharmacy.Item();

            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(Neusoft.FrameWork.Management.Connection.Instance);
            //t.BeginTransaction();
            //itemManager.SetTrans(t.Trans);
            //phaIntegrate.SetTrans(t.Trans);

            #endregion

            //当天操作日期
            DateTime sysTime = itemManager.GetDateTimeFromSysDateTime();
            //入库单据号
            string inListNO = null;

            Neusoft.HISFC.Models.Pharmacy.Input input = new Neusoft.HISFC.Models.Pharmacy.Input();
            foreach (DataRow dr in this.dt.Rows)
            {
                string key = dr["药品编码"].ToString() + dr["批号"].ToString();

                input = this.hsInputData[key] as Neusoft.HISFC.Models.Pharmacy.Input;

                if (inListNO == null)
                {
                    inListNO = input.InListNO;
                }

                #region 如果不存在入库单据号 则获取新入库单据号

                if (inListNO == "" || inListNO == null)
                {
                    // //{59C9BD46-05E6-43f6-82F3-C0E3B53155CB} 更改入库单号获取方式
                    inListNO = phaIntegrate.GetInOutListNO(this.phaInManager.DeptInfo.ID, true);
                    if (inListNO == null)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        this.ShowMsg("获取最新入库单号出错" + itemManager.Err);
                        return;
                    }
                }

                #endregion

                input.InListNO = inListNO;                                          //入库单据号

                #region 以下信息在每次添加数据生成入库信息实体时赋值

                input.StockDept  = this.phaInManager.DeptInfo;                      //库存科室
                input.PrivType   = this.phaInManager.PrivType.ID;                   //用户类型
                input.SystemType = this.phaInManager.PrivType.Memo;                 //系统类型
                input.Company    = this.phaInManager.TargetDept;                    //供货单位
                input.TargetDept = this.phaInManager.TargetDept;                    //目标单位 = 供货单位

                #endregion

                if (input.Operation.ApplyOper.ID == "")
                {
                    input.Operation.ApplyQty           = input.Quantity;                //入库申请量
                    input.Operation.ApplyOper.ID       = this.phaInManager.OperInfo.ID;
                    input.Operation.ApplyOper.OperTime = sysTime;
                }

                input.Operation.Oper.ID       = this.phaInManager.OperInfo.ID;
                input.Operation.Oper.OperTime = sysTime;
                input.Operation.ApplyQty      = input.Quantity;                     //入库申请量

                input.State = "0";

                if (itemManager.SetApplyIn(input) == -1)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    this.ShowMsg("入库 保存失败" + itemManager.Err);
                    return;
                }
            }

            Neusoft.FrameWork.Management.PublicTrans.Commit();

            this.ShowMsg("外部入库申请保存成功");

            this.Clear();
        }