Пример #1
0
        /// <summary>
        /// 初始化
        /// </summary>
        private void Init()
        {
            Neusoft.HISFC.BizLogic.Pharmacy.Item      itemManager = new Neusoft.HISFC.BizLogic.Pharmacy.Item();
            List <Neusoft.HISFC.Models.Pharmacy.Item> itemList    = itemManager.QueryItemList(true);

            if (itemList == null)
            {
                MessageBox.Show(Language.Msg("基础数据初始化 加载药品列表发生错误") + itemManager.Err);
                return;
            }

            foreach (Neusoft.HISFC.Models.Pharmacy.Item item in itemList)
            {
                item.Memo = item.Specs;
            }

            this.cmbDrug.AddItems(new ArrayList(itemList.ToArray()));

            itemList.Clear();
            itemList = null;

            DateTime sysTime = itemManager.GetDateTimeFromSysDateTime();

            this.dtEnd.Value   = sysTime.AddHours(1);
            this.dtBegin.Value = sysTime.AddDays(-7);
        }
Пример #2
0
        /// <summary>
        /// 保存申请
        /// </summary>
        /// <returns></returns>
        public virtual int SaveApply()
        {
            ArrayList alCheck = this.GetCheckData();

            if (alCheck.Count == 0)
            {
                return(0);
            }

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

            DateTime sysTime = itemManager.GetDateTimeFromSysDateTime();

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

            //Neusoft.FrameWork.Management.Transaction t = new Transaction(Neusoft.FrameWork.Management.Connection.Instance);
            //t.BeginTransaction();

            itemManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

            //暂时不处理药柜问题

            Neusoft.HISFC.Models.Base.OperEnvironment compoundOper = new Neusoft.HISFC.Models.Base.OperEnvironment();
            compoundOper.OperTime = sysTime;
            compoundOper.ID       = this.approveOper.ID;

            foreach (Neusoft.HISFC.Models.Pharmacy.ApplyOut info in alCheck)
            {
                if (itemManager.UpdateCompoundApplyOut(info, compoundOper, true) == -1)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show(Language.Msg("更新配置确认信息发生错误") + itemManager.Err);
                    return(-1);
                }
            }
            Neusoft.FrameWork.Management.PublicTrans.Commit();

            MessageBox.Show(Language.Msg("保存成功"));

            this.ShowList();

            return(1);
        }
Пример #3
0
        /// <summary>
        /// 保存和更新协定处方信息
        /// </summary>
        private void SaveButtonHandler()
        {
            if (this.fsNostrumDetailSheet.Rows.Count == 0)
            {
                return;
            }

            if (this.IsCanEdit() == false)          //不允许进行编辑
            {
                return;
            }

            if (MessageBox.Show("请确认已录入的信息是否正确?保存后将不能再进行修改", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                return;
            }

            //更新cell值
            this.fsNostrumDetail.StopCellEditing();

            //{AB3CDE46-C95D-4a6f-96FF-E970F8C84523}防止数量输入过大
            if (this.ValidNum() == false)
            {
                return;
            }


            //用于插入的协定处方列表
            List <Neusoft.HISFC.Models.Pharmacy.Nostrum> lstNostrumInsert = new List <Neusoft.HISFC.Models.Pharmacy.Nostrum>();
            //用于更新的协定处方列表
            List <Neusoft.HISFC.Models.Pharmacy.Nostrum> lstNostrumUpdate = new List <Neusoft.HISFC.Models.Pharmacy.Nostrum>();
            //协定处方ID
            string nostrumID = "";

            #region 将协定处方的详细信息列表转化为实体

            for (int i = 0, j = this.fsNostrumDetailSheet.Rows.Count; i < j; i++)
            {
                Neusoft.HISFC.Models.Pharmacy.Nostrum nostrum = new Neusoft.HISFC.Models.Pharmacy.Nostrum();
                nostrum.ID            = this.fsNostrumDetailSheet.GetText(i, (int)NostrumDetailColumn.ColID).Trim();
                nostrum.Item.ID       = this.fsNostrumDetailSheet.GetText(i, (int)NostrumDetailColumn.ColItemID).Trim();
                nostrum.Name          = this.fsNostrumDetailSheet.GetText(i, (int)NostrumDetailColumn.ColName).Trim().Split('[')[0].ToString();
                nostrum.Item.Name     = this.fsNostrumDetailSheet.GetText(i, (int)NostrumDetailColumn.ColItemName).Trim();
                nostrum.Item.Specs    = this.fsNostrumDetailSheet.GetText(i, (int)NostrumDetailColumn.ColName).Trim().Split('[')[1].Split(']')[0].ToString();
                nostrum.Qty           = NConvert.ToDecimal(this.fsNostrumDetailSheet.GetText(i, (int)NostrumDetailColumn.ColQty).Trim());
                nostrum.Item.MinUnit  = this.fsNostrumDetailSheet.GetText(i, (int)NostrumDetailColumn.ColUnit).Trim();
                nostrum.IsValid       = NConvert.ToBoolean(this.fsNostrumDetailSheet.GetText(i, (int)NostrumDetailColumn.ColValid).Trim());
                nostrum.SortNO        = NConvert.ToInt32(this.fsNostrumDetailSheet.GetText(i, (int)NostrumDetailColumn.ColSortNO));
                nostrum.Oper.ID       = Neusoft.FrameWork.Management.Connection.Operator.ID;
                nostrum.Oper.OperTime = itemManager.GetDateTimeFromSysDateTime();

                //如果是新插入的列放入插入列表
                if (NConvert.ToInt32(this.fsNostrumDetailSheet.GetText(i, (int)NostrumDetailColumn.ColFlug)) == 1)
                {
                    lstNostrumInsert.Add(nostrum);
                }
                //如果是已有的列放入更新列表
                else
                {
                    lstNostrumUpdate.Add(nostrum);
                }

                nostrumID = nostrum.ID;
            }
            #endregion

            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();
            itemManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

            try
            {
                //插入新添的数据
                for (int i = 0, j = lstNostrumInsert.Count; i < j; i++)
                {
                    if (itemManager.InsertNostrum(lstNostrumInsert[i]) == -1)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("保存数据失败") + itemManager.Err);
                        return;
                    }
                }

                //更新已有的数据
                for (int i = 0, j = lstNostrumUpdate.Count; i < j; i++)
                {
                    if (itemManager.UpdateNostrum(lstNostrumUpdate[i]) == -1)
                    {
                        Neusoft.FrameWork.Management.PublicTrans.RollBack();
                        MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("保存数据失败") + itemManager.Err);
                        return;
                    }
                }
                //对新增药品更新价格
                if (this.itemManager.UpdateNostrumPrice(nostrumID) == -1)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("保存数据失败") + this.itemManager.Err);
                    return;
                }

                Neusoft.FrameWork.Management.PublicTrans.Commit();
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("保存数据成功"));

                for (int i = 0, j = this.fsDrugListSheet.RowCount; i < j; i++)
                {
                    this.fsNostrumDetailSheet.SetValue(0, (int)NostrumDetailColumn.ColFlug, 0);
                }
            }
            catch
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();;
                MessageBox.Show(Neusoft.FrameWork.Management.Language.Msg("保存数据失败"));
            }

            this.tvNostrumList.SelectedNode = this.tvNostrumList.Nodes[0];
        }
Пример #4
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();
        }