/// <summary>
        /// 处理组套项目折叠{5C2A9C83-D165-434c-ACA4-86F23E956442}
        /// </summary>
        /// <param name="rowIndex"></param>
        private void ExpendOrCloseRows(int rowIndex)
        {
            if (!string.IsNullOrEmpty(this.neuSpread1_Sheet1.Cells[rowIndex, 2].Text))
            {
                return;
            }
            bool isExpend = true;

            if (this.neuSpread1_Sheet1.RowHeader.Cells[rowIndex, 0].Text == "+")
            {
                this.neuSpread1_Sheet1.RowHeader.Cells[rowIndex, 0].Text = "-";
                isExpend = true;
            }
            else
            {
                this.neuSpread1_Sheet1.RowHeader.Cells[rowIndex, 0].Text = "+";
                isExpend = false;
            }

            for (int i = 0; i < this.neuSpread1_Sheet1.RowCount; i++)
            {
                Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail confirmDetail = this.neuSpread1_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail;
                if (confirmDetail == null)
                {
                    continue;
                }
                if (this.neuSpread1_Sheet1.Cells[rowIndex, 0].Text == confirmDetail.MoOrder &&     //医嘱号
                    this.neuSpread1_Sheet1.Cells[rowIndex, 1].Text == confirmDetail.ExecMoOrder && //医嘱执行号
                    this.neuSpread1_Sheet1.RowHeader.Cells[i, 0].Text == ".")
                {
                    this.neuSpread1_Sheet1.Rows[i].Visible = isExpend;
                }
            }
        }
        private void fpSpread1_CellDoubleClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
        {
            #region 处理组合项目{5C2A9C83-D165-434c-ACA4-86F23E956442}
            Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail confirmDetail = this.fpSpread1_Sheet1.Rows[e.Row].Tag as Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail;
            if (!string.IsNullOrEmpty(confirmDetail.User01))
            {
                int rowCount = this.fpSpread1_Sheet1.RowCount;
                for (int i = rowCount - 1; i >= 0; i--)
                {
                    Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail tmpConfirmDetail = this.fpSpread1_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail;
                    if (tmpConfirmDetail.User01 == confirmDetail.User01)
                    {
                        this.fpSpread1_Sheet1.RemoveRows(i, 1);
                    }
                }
                #region addby xuewj 2010-10-3 增加单价、合计 {AB2D96F8-2CB3-49d2-9445-CCFDA1FFFCE7}
                this.SubCancelMoney();
                #endregion
                return;
            }
            #endregion

            this.fpSpread1_Sheet1.RemoveRows(this.fpSpread1_Sheet1.ActiveRowIndex, 1);
            #region addby xuewj 2010-10-3 增加单价、合计 {AB2D96F8-2CB3-49d2-9445-CCFDA1FFFCE7}
            this.SubCancelMoney();
            #endregion
        }
 //{23016A93-22CE-4fe6-9CF4-1F9E90B3DD08}
 private bool IsExist(Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail confirmDetail)
 {
     for (int i = 0; i < this.alTermalDept.Count; i++)
     {
         Neusoft.HISFC.Models.Base.DepartmentStat obj = alTermalDept[i] as Neusoft.HISFC.Models.Base.DepartmentStat;
         if (confirmDetail.Apply.ConfirmOperEnvironment.Dept.ID == obj.DeptCode)
         {
             return(true);
         }
     }
     return(false);
 }
        private int AddDetailToFp(Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail tecDetail)
        {
            //可以一次取消多条 by yuyun 08-8-12 {58B76F7C-A35D-4cbb-8948-8163EA3C5191}
            int rowCount = this.fpSpread1_Sheet1.RowCount;

            this.fpSpread1_Sheet1.Rows.Add(rowCount, 1);

            #region addby xuewj 2010-10-3 增加单价、合计 {AB2D96F8-2CB3-49d2-9445-CCFDA1FFFCE7}
            Neusoft.HISFC.Models.Fee.Inpatient.FeeItemList itemList = this.feeManager.GetItemListByRecipeNO(tecDetail.Apply.Item.RecipeNO, tecDetail.Apply.Item.SequenceNO, Neusoft.HISFC.Models.Base.EnumItemType.UnDrug);
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.UnitPrice].Value = itemList.Item.Price;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.TotCost].Value   = itemList.FT.TotCost;
            #endregion

            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.MoOrder].Text     = tecDetail.MoOrder;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.ExecMoOrder].Text = tecDetail.ExecMoOrder;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.ApplyNum].Text    = tecDetail.Sequence;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.ItemID].Text      = tecDetail.Apply.Item.ID;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.ItemName].Text    = tecDetail.Apply.Item.Name;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.ConfirmQty].Text  = tecDetail.Apply.Item.ConfirmedQty.ToString();
            #region addby xuewj 2010-10-3 待取消确认列表确认科室、确认人显示名称  {878C1070-41E9-4558-A4D7-E823D044F9EE}
            //this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperCode].Text = tecDetail.Apply.Item.ConfirmOper.ID;
            //this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperDept].Text = tecDetail.Apply.ConfirmOperEnvironment.Dept.ID;
            Neusoft.HISFC.Models.Base.Employee tmpEmp = this.deptManager.GetEmployeeInfo(tecDetail.Apply.Item.ConfirmOper.ID);
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperCode].Tag  = tmpEmp.ID;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperCode].Text = tmpEmp.Name;
            Neusoft.HISFC.Models.Base.Department tmpDept = this.deptManager.GetDepartment(tecDetail.Apply.ConfirmOperEnvironment.Dept.ID);//确认科室
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperDept].Tag  = tmpDept.ID;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperDept].Text = tmpDept.Name;
            #endregion
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.OperTime].Text   = tecDetail.Apply.ConfirmOperEnvironment.OperTime.ToString();
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.RecipeNo].Text   = tecDetail.Apply.Item.RecipeNO;
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.SequenceNo].Text = tecDetail.Apply.Item.SequenceNO.ToString();
            //by yuyun 08-7-7
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.Operator].Text = tecDetail.Oper.ID;    //技师:默认是当前操作员,可以修改
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.Machine].Text  = tecDetail.ExecDevice; //项目使用设备:从医技载体表进行查找
            this.fpSpread1_Sheet1.Cells[rowCount, (int)Cols.MoOrder].Tag   = tecDetail;
            this.fpSpread1_Sheet1.Rows[rowCount].Tag = tecDetail;
            //------------{58B76F7C-A35D-4cbb-8948-8163EA3C5191}

            return(1);
        }
Пример #5
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <returns></returns>
        private int Save()
        {
            if (this.neuSpread1_Sheet1.RowCount <= 0)
            {
                return(0);
            }
            if (this.fpSpread1_Sheet1.RowCount <= 0)
            {
                MessageBox.Show("请选择需取消的明细");
                return(0);
            }

            if (MessageBox.Show("是否取消该次终端确认?\r\n 取消确认操作不可回退", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                return(0);
            }

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

            Neusoft.HISFC.BizLogic.Terminal.TerminalConfirm terMgr = new Neusoft.HISFC.BizLogic.Terminal.TerminalConfirm();
            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(this.tecManager.Connection);
            //t.BeginTransaction();
            this.feeManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            this.orderManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            //terMgr.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

            Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail obj = ((Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail) this.fpSpread1_Sheet1.Cells[this.fpSpread1_Sheet1.ActiveRowIndex, (int)Cols.MoOrder].Tag).Clone();
            #region 医嘱
            if (this.fpSpread1_Sheet1.RowCount == 1)//如果就剩一条,就说明所有的都取消了
            {
                if (terMgr.CancelInpatientConfirmMoOrder(obj) <= 0)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show("更新医嘱失败" + terMgr.Err);
                    return(-1);
                }
            }
            #endregion
            #region 费用
            #region {2CE2BB1D-9DEB-4afa-90CF-15E3E44285E1} 重取明细数目,防止明细数目与组套项目数目不一致时出错
            //if (terMgr.CancelInpatientItemList(obj) <= 0)
            //{
            //    Neusoft.FrameWork.Management.PublicTrans.RollBack();
            //    MessageBox.Show("更新费用明细失败" + terMgr.Err);
            //    return -1;
            //}
            foreach (FarPoint.Win.Spread.Row r in this.fpSpread1_Sheet1.Rows)
            {
                Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail tcd =
                    ((Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail) this.fpSpread1_Sheet1.Cells[r.Index, (int)Cols.MoOrder].Tag).Clone();

                if (terMgr.CancelInpatientItemListWithSeq(tcd) <= 0)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show("更新费用明细失败" + terMgr.Err);
                    return(-1);
                }
            }
            #endregion
            #endregion
            #region 确认明细
            if (terMgr.CancelInpatientConfirmDetail(obj) <= 0)
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show("更新确认明细失败" + terMgr.Err);
                return(-1);
            }
            #endregion

            Neusoft.FrameWork.Management.PublicTrans.Commit();
            MessageBox.Show("取消成功");
            this.fpSpread1_Sheet1.Rows.Remove(this.fpSpread1_Sheet1.ActiveRowIndex, 1);
            return(1);
        }
        private void neuSpread1_CellDoubleClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
        {
            #region 处理组合项目{5C2A9C83-D165-434c-ACA4-86F23E956442}
            int rowIndex = e.Row;
            //选中组合项目明细-查找组合节点进行处理
            if (this.neuSpread1_Sheet1.RowHeader.Cells[e.Row, 0].Text == ".")
            {
                for (int i = 0; i < this.neuSpread1_Sheet1.RowCount; i++)
                {
                    Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail confirmDetail = this.neuSpread1_Sheet1.Rows[e.Row].Tag as Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail;
                    if (this.neuSpread1_Sheet1.Cells[i, 0].Text == confirmDetail.MoOrder &&     //医嘱号
                        this.neuSpread1_Sheet1.Cells[i, 1].Text == confirmDetail.ExecMoOrder && //医嘱执行号
                        string.IsNullOrEmpty(this.neuSpread1_Sheet1.Cells[i, 2].Text))
                    {
                        rowIndex = i;
                        break;
                    }
                }
            }
            if (string.IsNullOrEmpty(this.neuSpread1_Sheet1.Cells[rowIndex, 2].Text))
            {
                for (int i = 0; i < this.neuSpread1_Sheet1.RowCount; i++)
                {
                    Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail confirmDetail = this.neuSpread1_Sheet1.Rows[i].Tag as Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail;
                    if (confirmDetail == null)
                    {
                        continue;
                    }
                    if (this.neuSpread1_Sheet1.Cells[rowIndex, 0].Text == confirmDetail.MoOrder &&     //医嘱号
                        this.neuSpread1_Sheet1.Cells[rowIndex, 1].Text == confirmDetail.ExecMoOrder && //医嘱执行号
                        this.neuSpread1_Sheet1.RowHeader.Cells[i, 0].Text == ".")
                    {
                        //判断是否存在重复记录
                        foreach (FarPoint.Win.Spread.Row r in this.fpSpread1_Sheet1.Rows)
                        {
                            if (this.fpSpread1_Sheet1.Rows[r.Index].Tag == confirmDetail)
                            {
                                MessageBox.Show("该行已被选择过");

                                return;
                            }
                        }
                        //医嘱执行号+组合项目编码  --方便取消
                        confirmDetail.User01 = this.neuSpread1_Sheet1.Cells[rowIndex, 3].Text + this.neuSpread1_Sheet1.Cells[rowIndex, 1].Text;
                        AddDetailToFp(confirmDetail);
                    }
                }
                #region addby xuewj 2010-10-3 增加单价、合计 {AB2D96F8-2CB3-49d2-9445-CCFDA1FFFCE7}
                this.SubCancelMoney();
                #endregion
                return;
            }

            #endregion

            //可以一次取消多条 by yuyun 08-8-12 {58B76F7C-A35D-4cbb-8948-8163EA3C5191}
            //this.fpSpread1_Sheet1.RowCount = 0;
            //---------------------------------------
            int RowIndex = this.neuSpread1_Sheet1.ActiveRowIndex;

            Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail tecDetail = new Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail();

            tecDetail = this.neuSpread1_Sheet1.ActiveRow.Tag as Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail;
            //可以一次取消多条 by yuyun 08-8-12 {58B76F7C-A35D-4cbb-8948-8163EA3C5191}
            //判断是否存在重复记录
            foreach (FarPoint.Win.Spread.Row r in this.fpSpread1_Sheet1.Rows)
            {
                if (this.fpSpread1_Sheet1.Rows[r.Index].Tag == tecDetail)
                {
                    MessageBox.Show("该行已被选择过");

                    return;
                }
            }
            //---------------------------------------
            AddDetailToFp(tecDetail);
            #region addby xuewj 2010-10-3 增加单价、合计 {AB2D96F8-2CB3-49d2-9445-CCFDA1FFFCE7}
            this.SubCancelMoney();
            #endregion
        }
        /// <summary>
        /// 保存
        /// </summary>
        /// <returns></returns>
        private int Save()
        {
            if (this.neuSpread1_Sheet1.RowCount <= 0)
            {
                return(0);
            }
            if (this.fpSpread1_Sheet1.RowCount <= 0)
            {
                MessageBox.Show("请选择需取消的明细");
                return(0);
            }

            if (MessageBox.Show("是否取消该次终端确认?\r\n 取消确认操作不可回退", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                CancelItem();//{5C66549E-AA04-4f72-8AA8-717FF5FB5E4F}
                return(0);
            }

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

            Neusoft.HISFC.BizLogic.Terminal.TerminalConfirm terMgr = new Neusoft.HISFC.BizLogic.Terminal.TerminalConfirm();
            //Neusoft.FrameWork.Management.Transaction t = new Neusoft.FrameWork.Management.Transaction(this.tecManager.Connection);
            //t.BeginTransaction();
            this.feeManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            this.orderManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            //terMgr.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

            #region 可以一次取消多条 by yuyun 08-8-12 {58B76F7C-A35D-4cbb-8948-8163EA3C5191}

            System.Collections.Hashtable hsMoExecNOList = new Hashtable();

            foreach (FarPoint.Win.Spread.Row r in this.fpSpread1_Sheet1.Rows)
            {
                //Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail obj = ((Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail)this.fpSpread1_Sheet1.Cells[this.fpSpread1_Sheet1.ActiveRowIndex, (int)Cols.MoOrder].Tag).Clone();
                Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail obj = ((Neusoft.HISFC.Models.Terminal.TerminalConfirmDetail) this.fpSpread1_Sheet1.Cells[r.Index, (int)Cols.MoOrder].Tag).Clone();
                obj.FreeCount = Neusoft.FrameWork.Function.NConvert.ToDecimal(this.fpSpread1_Sheet1.Cells[r.Index, (int)Cols.ConfirmQty].Value.ToString());

                #region 医嘱

                if (!hsMoExecNOList.ContainsKey(obj.MoOrder + obj.ExecMoOrder))
                {
                    if (!string.IsNullOrEmpty(obj.MoOrder))//如果就剩一条,就说明所有的都取消了  ???不懂
                    {
                        if (terMgr.CancelInpatientConfirmMoOrder(obj) <= 0)
                        {
                            Neusoft.FrameWork.Management.PublicTrans.RollBack();
                            MessageBox.Show("更新医嘱失败" + terMgr.Err);

                            return(-1);
                        }
                    }

                    hsMoExecNOList.Add(obj.MoOrder + obj.ExecMoOrder, null);
                }

                #endregion

                #region 费用

                //更新可退数量
                if (terMgr.CancelInpatientItemList(obj) <= 0)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show("更新费用明细失败" + terMgr.Err);

                    return(-1);
                }

                #endregion

                #region 判断是否需要作废执行档,对已全部确认完的项目作废执行档,未全部确认的项目不作废

                //{0A8C4027-210C-49e0-977F-576789F46946} by yuyun 08-8-13
                //取医嘱执行档的数量
                decimal execOrderQty = terMgr.GetExecOrderQty(obj.ExecMoOrder);
                if (execOrderQty == -1)
                {
                    MessageBox.Show(terMgr.Err);
                    return(-1);
                }
                //取已确认的总数量
                decimal confirmedQty = terMgr.GetAlreadConfirmNum(obj.MoOrder, obj.ExecMoOrder);
                //MessageBox.Show(execOrderQty.ToString() + "|||||||" + confirmedQty.ToString());

                //对比两个数量  判断是否需要作废执行档
                if (confirmedQty == execOrderQty)
                {
                    //作废执行档
                    if (!string.IsNullOrEmpty(obj.ExecMoOrder))  //为医嘱开立项目才进行执行档作废
                    {
                        if (terMgr.CancelExecOrder(obj.ExecMoOrder) <= 0)
                        {
                            Neusoft.FrameWork.Management.PublicTrans.RollBack();
                            MessageBox.Show("作废医嘱执行档失败" + terMgr.Err);

                            return(-1);
                        }
                    }
                    //MessageBox.Show("更新");
                }

                #endregion

                #region 确认明细

                if (terMgr.CancelInpatientConfirmDetail(obj) <= 0)
                {
                    Neusoft.FrameWork.Management.PublicTrans.RollBack();
                    MessageBox.Show("更新确认明细失败" + terMgr.Err);

                    return(-1);
                }

                #endregion

                #region {5D274E04-7B3D-449c-AB72-3DAAC9414D6C}
                if (this.isUsePACSApplySheet)
                {
                    try
                    {
                        if (PACSApplyInterfaceNew == null)
                        {
                            PACSApplyInterfaceNew = new Neusoft.HISFC.Components.PacsApply.HisInterface(Neusoft.FrameWork.Management.Connection.Operator.ID, (Neusoft.FrameWork.Management.Connection.Operator as Neusoft.HISFC.Models.Base.Employee).Dept.ID);
                        }

                        if (PACSApplyInterfaceNew != null)
                        {
                            Neusoft.HISFC.Models.Order.Inpatient.Order orderInfo = this.orderManager.QueryOneOrder(obj.MoOrder);
                            if (orderInfo != null && orderInfo.ApplyNo != "")
                            {
                                if (PACSApplyInterfaceNew.DeleteApply(orderInfo.ApplyNo) < 0)
                                {
                                    MessageBox.Show("查询电子申请单失败!");
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                }
                #endregion
            }

            #endregion

            Neusoft.FrameWork.Management.PublicTrans.Commit();
            MessageBox.Show("取消成功");
            //可以一次取消多条 by yuyun 08-8-12 {58B76F7C-A35D-4cbb-8948-8163EA3C5191}
            //this.fpSpread1_Sheet1.Rows.Remove(this.fpSpread1_Sheet1.ActiveRowIndex,1);
            this.fpSpread1_Sheet1.RowCount = 0;
            //---------------
            #region addby xuewj 2010-10-3 增加单价、合计 {AB2D96F8-2CB3-49d2-9445-CCFDA1FFFCE7}
            this.lblTotCancelCost.Text = "当前待取消项目合计:0.00";
            #endregion
            return(1);
        }