示例#1
0
        /// <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);
        }
示例#2
0
 /// <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() + "天";
 }
示例#3
0
        /// <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);
        }
示例#4
0
        /// <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;
        }