private void FrmCardSavingCash_Load(object sender, EventArgs e)
        {
            ucTime1.Sec = 60;
            ucTime1.timer1.Start();

            try
            {
                eCardAuthorizationData = new CardAuthorizationData();

                if (eCardAuthorizationFacade == null)
                {
                    eCardAuthorizationFacade = new CardAuthorizationFacade();
                }

                eCardAuthorizationData = (CardAuthorizationData)eCardAuthorizationFacade.SelectPatientAndCardInfoByCardID(SkyComm.cardInfoStruct.CardNo);

                string patientName = eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_PATIENTNAME].ToString();
                string sex         = eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_SEX].ToString();
                string identity    = eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_IDENTITYCARD].ToString();

                lblPatientInfo.Text = patientName + " " + sex + " 身份证:" + SkyComm.ConvertIdCard(identity);

                GetMoeny();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
        private void PrintInfo(string ReportName, string strTRANSACTION_ID, string Money)
        {
            try
            {
                CardAuthorizationData   eCardAuthorizationData   = new CardAuthorizationData();
                CardAuthorizationFacade eCardAuthorizationFacade = new CardAuthorizationFacade();
                eCardAuthorizationData = (CardAuthorizationData)eCardAuthorizationFacade.SelectPatientAndCardInfoByCardID(SkyComm.cardInfoStruct.CardNo);
                string           identity         = eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_IDENTITYCARD].ToString();
                CardSavingFacade cardSavingFacade = new CardSavingFacade();
                DataSet          cardSavingData   = cardSavingFacade.FindByPrimaryKey(strTRANSACTION_ID);

                cardSavingData.Tables[0].Columns.Add("身份证", typeof(string));

                if (cardSavingData.Tables[0].Rows.Count > 0)
                {
                    cardSavingData.Tables[0].Rows[0]["身份证"] = identity;
                    cardSavingData.WriteXml(Application.StartupPath + @"\\ReportXml\\" + ReportName + SkyComm.DiagnoseID + "_" + strTRANSACTION_ID + ".xml");
                    if (!File.Exists(Application.StartupPath + @"\\Reports\\" + ReportName + ".frx"))
                    {
                        SkynetMessage.MsgInfo(ReportName + ".frx报表文件不存在,无法打印.");
                        return;
                    }
                    PrintManager print = new PrintManager();
                    print.InitReport(ReportName);
                    print.AddParam("医院名称", SysOperatorInfo.CustomerName);
                    print.AddParam("收据号", strTRANSACTION_ID);
                    print.AddParam("姓名", SkyComm.eCardAuthorizationData.Tables[0].Rows[0]["PATIENTNAME"].ToString());
                    print.AddParam("卡余额", SkyComm.cardBlance);
                    print.AddParam("充值金额", Money);
                    print.AddParam("操作员", SysOperatorInfo.OperatorCode);
                    print.AddParam("操作员姓名", SysOperatorInfo.OperatorName);
                    print.AddData(cardSavingData.Tables[0], "report");

                    PrintManager.CanDesign = true;

                    print.Print();
                    print.Dispose();
                    Thread.Sleep(100);
                }
            }
            catch (Exception lex)
            {
//                if (lex.Message.IndexOf("灾难性") > 0)
//                {
//                    SkynetMessage.MsgInfo(lex.Message + ": 打印机连接失败,请检查!");
//                }
//                else
//                {
//                    SkynetMessage.MsgInfo(lex.Message);
//                }
            }
        }
Exemple #3
0
        private bool BindPage()
        {
            try
            {
                if (inHosData == null)
                {
                    InHosRecordFacade theInHosRecordFacade = new InHosRecordFacade();
                    inHosData = theInHosRecordFacade.FindInfoByDiagnoseID(SkyComm.DiagnoseID);
                }
                if (inHosData != null && inHosData.Tables.Count != 0 && inHosData.Tables[0].Rows.Count != 0)
                {
                    if (inHosData.Tables[0].Rows[0]["INHOSSTATE"].ToString() == "1")
                    {
                        SkyComm.ShowMessageInfo("您已结算,不能继续预交款操作!");
                        return(false);
                    }
                    Skynet.LoggingService.LogService.GlobalInfoMessage("调用现金预存LOAD_1");
                    eCardAuthorizationData = new CardAuthorizationData();

                    if (eCardAuthorizationFacade == null)
                    {
                        eCardAuthorizationFacade = new CardAuthorizationFacade();
                    }
                    Skynet.LoggingService.LogService.GlobalInfoMessage("调用现金预存LOAD_2");
                    eCardAuthorizationData = (CardAuthorizationData)eCardAuthorizationFacade.SelectPatientAndCardInfoByCardID(SkyComm.cardInfoStruct.CardNo);
                    Skynet.LoggingService.LogService.GlobalInfoMessage("调用现金预存LOAD_3");
                    string patientName = eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_PATIENTNAME].ToString();
                    string sex         = eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_SEX].ToString();
                    string identity    = eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_IDENTITYCARD].ToString();

                    lblPatientInfo.Text = patientName + " " + sex + " 身份证:" + SkyComm.ConvertIdCard(identity);
                    lblye.Text          = Convert.ToDecimal(inHosData.Tables[0].Rows[0]["BALANCEMONEY"].ToString()).ToString("0.00##");
                    return(true);
                }
                else
                {
                    SkyComm.ShowMessageInfo("未找到您的住院信息!");
                    return(false);
                }
            }
            catch (Exception ex)
            {
                SkyComm.ShowMessageInfo("患者信息绑定失败,现金预存功能暂不能使用。请与医院工作人员联系!");
                Skynet.LoggingService.LogService.GlobalInfoMessage("调用现金预存LOAD失败:" + ex.Message);
                return(false);
            }
        }
        public void inHosSave(DataSet inHosData, decimal RechargeMoney, string hisNo, string bankNo)
        {
            AdvanceRecordData AdvData = new AdvanceRecordData();
            DataRow           dr      = AdvData.Tables[0].NewRow();

            dr[AdvanceRecordData.H_ADVANCE_RECORD_ADVANCEID]        = "新增";
            dr[AdvanceRecordData.H_ADVANCE_RECORD_BUSINESSBANK]     = hisNo;
            dr[AdvanceRecordData.H_ADVANCE_RECORD_CANCELMARK]       = 0;
            dr[AdvanceRecordData.H_ADVANCE_RECORD_CHEQUEID]         = "";
            dr[AdvanceRecordData.H_ADVANCE_RECORD_CURRENTINHOSMARK] =
                inHosData.Tables[0].Rows[0]["CURRENTINHOSMARK"].ToString();
            ;
            dr[AdvanceRecordData.H_ADVANCE_RECORD_INHOSID]  = inHosData.Tables[0].Rows[0]["INHOSID"].ToString();
            dr[AdvanceRecordData.H_ADVANCE_RECORD_OFFICEID] = inHosData.Tables[0].Rows[0]["INHOSOFFICEID"].ToString();
            //this.txtZyks.Text;
            dr[AdvanceRecordData.H_ADVANCE_RECORD_OPERATEDATE] = new CommonFacade().GetServerDateTime();
            dr[AdvanceRecordData.H_ADVANCE_RECORD_OPERATORID]  = SysOperatorInfo.OperatorID;
            dr[AdvanceRecordData.H_ADVANCE_RECORD_PAYMODEID]   = SkyComm.getvalue("住院预交金充值方式_微信").ToString();
            dr[AdvanceRecordData.H_ADVANCE_RECORD_PAYMONEY]    = RechargeMoney;
            dr[AdvanceRecordData.H_ADVANCE_RECORD_RECEIPTID]   = string.Empty;
            AdvData.Tables[0].Rows.Add(dr);
            AdvanceRecordFacade theAdvanceRecordFacade = new AdvanceRecordFacade();

            string    advanceid  = string.Empty;
            Hashtable BankTranht = new Hashtable();

            BankTranht.Add("SEQNO", hisNo);
            BankTranht.Add("MONEY", RechargeMoney);
            BankTranht.Add("OPERATORID", SysOperatorInfo.OperatorCode);
            BankTranht.Add("POSNO", AutoHostConfig.PosNo);
            BankTranht.Add("DIAGNOSEID", SkyComm.DiagnoseID);
            BankTranht.Add("CARDID", SkyComm.cardInfoStruct.CardNo);
            BankTranht.Add("BANKSEQNO", bankNo);
            CardAuthorizationData   eCardAuthorizationData   = new CardAuthorizationData();
            CardAuthorizationFacade eCardAuthorizationFacade = new CardAuthorizationFacade();

            eCardAuthorizationData = (CardAuthorizationData)eCardAuthorizationFacade.SelectPatientAndCardInfoByCardID(SkyComm.cardInfoStruct.CardNo);
//            eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][
//                CardAuthorizationData.T_CARD_AUTHORIZATION_BANKTRANSNO] = BankTranht["BANKSEQNO"].ToString();

            advanceid = theAdvanceRecordFacade.insertEntity(AdvData, false);
            string receiptID = theAdvanceRecordFacade.GetReceiptIDByAdvanceID(advanceid);

            PrintInfo("住院预交金充值凭证", receiptID, RechargeMoney.ToString(), advanceid, inHosData);
        }
Exemple #5
0
        /// <summary>
        /// 通过电子卡号办理HIs院内卡
        /// </summary>
        /// <param name="isHandleCard">是否持有院内卡患者</param>
        /// <param name="ehealthCardId">电子卡号</param>
        private void BindHis(string ehealthCardId)
        {
            if (!string.IsNullOrEmpty(ehealthCardId))//返回电子卡号
            {
                #region  发卡
                string cardType, cardTypeId;
                getElectronicCardType(out cardType, out cardTypeId);



                DateTime GetServerDateTime = new CommonFacade().GetServerDateTime();  //douyaming 2014-9-1

                DataRow dr = this.eLCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].NewRow();

                TLicenseconfigFacade facade = new TLicenseconfigFacade();
                string where = " where MODULE='健康卡发卡'";
                DataSet dataset = facade.GetAllInfo(where);
                if (dataset != null && dataset.Tables[0].Rows.Count > 0)
                {
                    foreach (DataRow item in dataset.Tables[0].Rows)
                    {
                        string field   = item["FIELDNAME"].ToString();
                        int    iswirte = Convert.ToInt32(item["ISWRITE"].ToString());
                        #region BIRTHDAY 出生日期
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_BIRTHDAY] = IdInfo.Birthday;
                        #endregion
                        #region IDENTITYNAME 证件类型
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_IDENTITYNAME] = "身份证";
                        //证件号码
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_IDENTITYCARD] = IdInfo.Number;
                        #endregion

                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_NATION]      = IdInfo.People;
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_NATIONALITY] = "";
                        #region EMPLOYMENT 职业
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_EMPLOYMENT] = "";
                        #endregion
                        #region TELEPHONE 联系电话
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_TELEPHONE] = _telphone;
                        #endregion
                        #region ADDRESS 联系地址
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_ADDRESS] = IdInfo.Address;
                        #endregion
                        #region POSTALCODE 邮政编码
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_POSTALCODE] = "";
                        #endregion
                        #region BrAddress 出生地
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_HOMEPLACE]    = ""; //省
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_COUNTYSANJAK] = ""; //市
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_CSD_COUNTY]   = ""; //县
                        #endregion
                        #region UNITPOSTCODE 单位电话
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_UNITTELEPHONE] = "";
                        #endregion
                        #region REGISTEREDADDRESS 户口地址
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_REGISTEREDADDRESS] = "";
                        #endregion #region UNITPOSTCODE 邮政编码
                        #region UNITPOSTCODE 邮政编码
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_UNITPOSTCODE] = "";
                        #endregion #region UNITPOSTCODE 邮政编码
                        #region WORKUNIT 工作单位
                        dr[CardAuthorizationData.T_CARD_AUTHORIZATION_WORKUNIT] = "";
                        #endregion #region UNITPOSTCODE 邮政编码
                    }
                }



                DateTime GetDateTime = new CommonFacade().GetServerDateTime();
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_ACCOUNT_ID] = "0000000000";
                //卡号
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_CARDID] = IdInfo.Number;
                //电子卡号绑定
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_VICECARDID] = ehealthCardId;
                //用户诊疗号
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_DIAGNOSEID] = strDiagnoseid;
                // 卡类型
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_TYPEID] = cardTypeId;
                //卡类型名称
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_TYPE_NAME] = "电子卡";
                //随机码
                ValidateCode vc        = new ValidateCode();
                string       RoundCode = vc.GenValidateCode();
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_RANDOMCODE] = RoundCode;

                //押金、工本费
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_DEPOSIT] = 0;
                //姓名
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_PATIENTNAME] = IdInfo.Name;
                //婚姻
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_MARRIAGESTATUS] = "";

                //拼音码
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_NAMEPY] = "";
                //性别
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_SEX] = IdInfo.Sex;
                //出生年月
                //dr[CardAuthorizationData.T_CARD_AUTHORIZATION_BIRTHDAY] = this.dtBorn.Text; //由上面配置决定是否输入
                //费别
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_SICKTYPE] = "";

                //保密等级
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_SECRECYCLASS] = "";
                //卡状态
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_CIRCUIT_STATE] = 0;
                //照片
                //ImageConverter con = new ImageConverter();
                //年龄
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_AGE] = 0;
                //年龄单位
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_AGEUNIT]     = "";
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_PERSONPHOTO] = new byte[10];

                //[工本费]支付方式
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_BALANCEMODE] = ""; //不用支付
                                                                                 //发卡时间
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_PROVIDECARDDATE] = GetDateTime;

                #region 卡有效年限

                //卡有效年限
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_CARDVALIDDATE] = new CommonFacade().GetServerDateTime().AddYears(1);
                #endregion

                //发卡方式
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_MODEID] = 0;
                //密码修改时间
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_LASTPASSWORDCHANGEDDATE] = GetDateTime;
                //最后修改时间
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_LASTLOGINDATE] = GetDateTime;

                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_PASSWORD] = "NOPWD";
                //操作员
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_OPERATOR] = SysOperatorInfo.OperatorID;

                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_AUDITING_STATE] = -1;//-1 悬空

                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_FEEOTHER] = "";

                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_ISGUARDIAN]       = 0;
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_GUARDIANIDNUMBER] = IdInfo.Number;
                //门诊住院类型区分
                dr[CardAuthorizationData.T_CARD_AUTHORIZATION_DHTYPE] = "0";
                this.eLCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows.Add(dr);

                eLCardAuthorizationData.Tables[0].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_CUSTOMNO] = 0;//暂时这样写

                decimal decMoney = 0;

                decimal decFees = 0;

                Hashtable BankTranht = new Hashtable();



                //string sql = "select * from TRADITIONAL_DECOCTION where ID=@DIAGNOSEID order by SOAKING_TIME desc";
                //Hashtable ht = new Hashtable();
                //ht.Add("@DIAGNOSEID", diagnoseID);
                //query.ExeQuery(sql, ht);



                eLCardAuthorizationData = (CardAuthorizationData)eCardAuthorizationFacade.insertEntity(eLCardAuthorizationData);

                this.strDiagnoseid     = eLCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_DIAGNOSEID].ToString();
                _cardInfoStruct.CardNo = eLCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_CARDID].ToString();

                string cardID = eLCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_CARDID].ToString();

                #endregion
            }
        }
Exemple #6
0
        public void svaeCard(string type, decimal money, string payMethod, string hisSerialNo)
        {
            CardSavingFacade mCardSavingFacade = new CardSavingFacade();

            if (SkyComm.eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows.Count <= 0)
            {
                throw new Exception("没有找到要充值的卡信息,请拿微信交易单号去窗口办理充值!");
            }

            CardAuthorizationData mCardAuthorizationData = new CardAuthorizationData();

            CardAuthorizationFacade mCardAuthorizationFacade = new CardAuthorizationFacade();

            mCardAuthorizationData = (CardAuthorizationData)mCardAuthorizationFacade.SelectPatientAndCardInfoByCardID(SkyComm.cardInfoStruct.CardNo);

            mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0].BeginEdit();
            //卡号
            mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_CARDID] = SkyComm.cardInfoStruct.CardNo;
            //充值时间
            mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_OPERATETIME] = new CommonFacade().GetServerDateTime();
            ////操作员
            mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_OPERATOR] = SysOperatorInfo.OperatorID;
            ////充值类型
            mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_SAVINGMODE] = 1;

            Skynet.LoggingService.LogService.GlobalInfoMessage("发卡保存数据设置押金之前");
            ////Add money
            if (type.Equals("办卡"))
            {
                Decimal deposit = Convert.ToDecimal(SkyComm.getvalue("发卡工本费"));
                mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_ADDMONEY] = money - Convert.ToDecimal(SkyComm.dsCardType.Tables[0].Rows[0]["FEES"]) - deposit;
            }
            else
            {
                mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_ADDMONEY] = money;  //此处需调接口
            }

            //业务类型
            mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_BUSSNESSTYPE] = "充值";
            //支付方式
            mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_MODETYPE] = payMethod;
            //单位
            mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_UNIT] = "";
            //支票号
            mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_CHECKLOT] = "";

            //银行流水号--T_CARD_SAVING.BANKTRANSNO统一保存T_BANKHISEXCHANGE_TRANS的主键HISSEQNO
            mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_BANKTRANSNO] = hisSerialNo;

            //充值数据来源
            mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_ADDMONEYSOURCE] = "自助机";

            mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0].EndEdit();

            ReckonAccountTimeFacade reckonAccountsTimeFacade = new ReckonAccountTimeFacade();
            DateTime accountTime = reckonAccountsTimeFacade.GetEndTime(SysOperatorInfo.OperatorID, "门诊");

            if (Convert.ToDateTime(mCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_OPERATETIME]) < accountTime)
            {
                throw new Exception("该时间段已经结帐,不能办理预交金业务,请拿微信交易单号去窗口办理充值!");
            }

            DataSet cardSavingData = new DataSet();

            cardSavingData = mCardSavingFacade.insertEntity(mCardAuthorizationData);

            if (cardSavingData == null || cardSavingData.Tables[0].Rows.Count == 0)
            {
                throw new Exception("卡充值失败,请拿微信交易单号去窗口办理充值!");
            }
            PrintInfo("自助充值凭证", cardSavingData.Tables[0].Rows[0]["TRANSACTION_ID"].ToString(), money.ToString());
        }
        private void lblOK_Click(object sender, EventArgs e)
        {
            if (!checkInput())
            {
                return;
            }

            if (SendCard.CheckCard() == "1")
            {
                SkyComm.ShowMessageInfo("该自助机没有卡,请在其他自助机上继续发卡!");
                return;
            }
            this.lblOK.Enabled     = false;
            this.btnReturn.Enabled = false;
            this.btnExit.Enabled   = false;
            panel2.Enabled         = false;
            _telphone      = this.txtTel.Text.Trim();
            _childName     = this.txtName.Text.Trim();
            _childSex      = this.rbtnBoy.Checked ? "男" : "女";
            _childBirthDay = this.txtYear.Text.Trim() + "-" + this.txtMonth.Text.Trim() + "-" + this.txtDay.Text.Trim();
            string CardNo = string.Empty;

            string strDiagnoseid = string.Empty;
            CardAuthorizationFacade eCardAuthorizationFacade = new CardAuthorizationFacade();

            using (WaitDialogForm form = new WaitDialogForm("正在发卡中,请稍候...", "正在组织发卡数据,请稍候......", new Size(240, 60)))
            {
                #region 办理就诊卡
                if (eLCardAuthorizationData != null)
                {
                    eLCardAuthorizationData.Tables[0].Rows.Clear();
                }

                SetCardInfo(IdInfo, _telphone);
                eLCardAuthorizationData = (CardAuthorizationData)eCardAuthorizationFacade.insertEntity(eLCardAuthorizationData);
                strDiagnoseid           = eLCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_DIAGNOSEID].ToString();
                CardNo = eLCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_CARDID].ToString();
                //写卡,如果失败则重试
                bool isSuccess = false;
                form.Caption = "正在写卡中,请稍候...";
                try
                {
                    for (int i = 0; i < 3; i++)
                    {
                        //第一次写卡
                        if (SendCard.WriteCard(CardNo) == false)
                        {
                            //第一次写卡失败,再进行第二次写卡
                            if (SendCard.WriteCard(CardNo) == false)
                            {
                                //第二次写卡失败以后将卡回收
                                SendCard.ReturnCard();
                            }
                            else
                            {
                                isSuccess = true;
                                break;
                            }
                        }
                        else
                        {
                            isSuccess = true;
                            break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Skynet.LoggingService.LogService.GlobalInfoMessage("发卡失败:" + ex.Message);
                    SkyComm.ShowMessageInfo("发卡失败:" + ex.Message);
                    isSuccess = false;
                    this.btnReturn.Enabled = true;
                    this.btnExit.Enabled   = true;
                    this.lblOK.Enabled     = true;
                    panel2.Enabled         = true;
                }

                //写卡失败
                if (isSuccess == false)
                {
                    //撤消已发卡的信息
                    eCardAuthorizationFacade.deleteEntityAndCardSaving(eLCardAuthorizationData);
                    eLCardAuthorizationData = new CardAuthorizationData();
                    strDiagnoseid           = string.Empty;
                    SkynetMessage.MsgInfo("写卡失败,请在其他自助机上重试!");
                    this.lblOK.Enabled     = true;
                    this.btnReturn.Enabled = true;
                    this.btnExit.Enabled   = true;
                    panel2.Enabled         = true;

                    //第二次写卡失败以后将卡回收
                    SendCard.ReturnCard();
                    return;
                }
                #endregion
                form.Close();
            }
            #region 充值
            try
            {
                SkyComm.eCardAuthorizationData = eLCardAuthorizationData;
                SkyComm.DiagnoseID             = SkyComm.eCardAuthorizationData.Tables[0].Rows[0]["DIAGNOSEID"].ToString();
                SkyComm.cardInfoStruct.CardNo  = CardNo;
                SkyComm.cardBlance             = 0;
                CardSavingFacade cf = new CardSavingFacade();
                SkyComm.cardallmoney = 0;

                int     Savingsucceed = 0;
                decimal RechargeMoney = 0;
                string  strModeType   = "现金";
                try
                {
                    //充值,弹出界面选择是现金充值还是银行卡预存
                    if (!string.IsNullOrEmpty(AutoHostConfig.PosInterfaceType))
                    {
                        FrmCardSavingMain frm = new FrmCardSavingMain();
                        frm.CallType = 2;
                        frm.ShowDialog();
                        Savingsucceed = frm.Savingsucceed;
                        RechargeMoney = frm.RechargeMoney;
                        strModeType   = frm.MODETYPE;
                        frm.Dispose();
                    }
                    else
                    {
                        //拍照
                        switch (AutoHostConfig.ReadCardType)
                        {
                        case "XUHUI":
                            AutoServiceSDK.SdkService.Common_XH camera = new AutoServiceSDK.SdkService.Common_XH();
                            camera.TakeCamera(SkyComm.cardInfoStruct.CardNo, SkyComm.eCardAuthorizationData.Tables[0].Rows[0]["PATIENTNAME"].ToString(), AutoHostConfig.Machineno);
                            break;

                        default:
                            break;
                        }

                        FrmCardSavingCash frm = new FrmCardSavingCash();
                        frm.CallType = 2;
                        frm.ShowDialog();
                        Savingsucceed = frm.Savingsucceed;
                        RechargeMoney = frm.RechargeMoney;
                        frm.Dispose();
                    }
                    if (Savingsucceed == 1)
                    {
                        eLCardAuthorizationData.Tables[0].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_MODETYPE] = strModeType;
                        if (!eLCardAuthorizationData.Tables[0].Columns.Contains("OPERATORNAME"))
                        {
                            eLCardAuthorizationData.Tables[0].Columns.Add("OPERATORNAME");

                            eLCardAuthorizationData.Tables[0].Rows[0]["OPERATORNAME"] = SysOperatorInfo.OperatorName;
                        }
                        eCardAuthorizationFacade.updateEntity(eLCardAuthorizationData);
                        eLCardAuthorizationData.Tables[0].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_ADDMONEY] = RechargeMoney;

                        //打印发卡凭证
                        PrintSendCardReport(eLCardAuthorizationData);
                    }
                }
                catch (Exception ex2)
                {
                    Skynet.LoggingService.LogService.GlobalInfoMessage("发卡充值失败:" + ex2.Message);
                }
                finally
                {
                }

                if (Savingsucceed == 1)
                {
                    SendCard.OutputCard();
                    try
                    {
                        Common_XH theCamera_XH = new Common_XH();
                        theCamera_XH.DoorLightOpen(LightTypeenum.出卡槽, LightOpenTypeenum.闪烁);
                        theCamera_XH.DoorLightOpen(LightTypeenum.发卡器, LightOpenTypeenum.闪烁);
                        theCamera_XH.DoorLightOpen(LightTypeenum.凭条, LightOpenTypeenum.闪烁);
                    }
                    catch (Exception exception)
                    {
                    }
                    SkyComm.ShowMessageInfo("发卡成功,请取走您的就诊卡!");
                }
                else
                {
                    //回收卡信息并且注册卡
                    //撤消已发卡的信息
                    Skynet.LoggingService.LogService.GlobalInfoMessage("充值失败,撤消发卡信息");
                    eCardAuthorizationFacade.deleteEntityAndCardSaving(eLCardAuthorizationData);
                    eLCardAuthorizationData = new CardAuthorizationData();
                    strDiagnoseid           = string.Empty;
                    this.lblOK.Enabled      = true;
                    this.btnReturn.Enabled  = true;
                    this.btnExit.Enabled    = true;
                    panel2.Enabled          = true;

                    //发卡失败以后将卡进行回收
                    SendCard.ReturnCard();
                    return;
                }
            }
            catch (Exception ex)
            {
                Skynet.LoggingService.LogService.GlobalInfoMessage("发卡失败:" + ex.Message + ",系统回收卡机中的卡");

                //发卡失败以后将卡进行回收
                SendCard.ReturnCard();

                SkynetMessage.MsgInfo("发卡失败:" + ex.Message);
                return;
            }
            finally
            {
                this.lblOK.Enabled     = true;
                this.btnReturn.Enabled = true;
                this.btnExit.Enabled   = true;
                panel2.Enabled         = true;

                SkyComm.cardInfoStruct = new CardInformationStruct();
                SkyComm.eCardAuthorizationData.Tables[0].Clear();
                SkyComm.DiagnoseID   = string.Empty;
                SkyComm.cardBlance   = 0;
                SkyComm.cardallmoney = 0;
            }
            #endregion

            SystemFramework.Voice.Voice voice = new SystemFramework.Voice.Voice();
            voice.PlayText("请在就诊卡出口取走您的就诊卡!");
            voice.EndJtts();


            DialogResult = System.Windows.Forms.DialogResult.OK;
        }
 private void identityCard_Click(object sender, EventArgs e)
 {
     if (SkyComm.getvalue("自助机类型") == "0")
     {
         #region  柜式自助机驱动
         FrmReadIdenetityGS FrmReadIdenetity = new FrmReadIdenetityGS();
         try
         {
             timer1.Stop();
             if (FrmReadIdenetity.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
             {
                 #region 验证卡状态
                 string CardID = FrmReadIdenetity.strCardNO;
                 BusinessFacade.His.CardClubManager.CardAuthorizationFacade eCardAuthorizationFacade = new BusinessFacade.His.CardClubManager.CardAuthorizationFacade();
                 if (SystemInfo.SystemConfigs["是否启用就诊卡与副卡关联"].DefaultValue.ToString() == "1")
                 {
                     bool isSecondaryCard = false;//是否副卡
                     CardID = eCardAuthorizationFacade.GetMotherCardID(CardID, "", ref isSecondaryCard);
                 }
                 CardAuthorizationData eCardAuthorizationData = (CardAuthorizationData)eCardAuthorizationFacade.SelectPatientAndCardInfoByCardID(CardID);
                 if (eCardAuthorizationData.Tables[0].Rows.Count == 0)
                 {
                     MyAlert registerInfo = new MyAlert(AlertTypeenum.信息, "卡号无效");
                     registerInfo.ShowDialog();
                     this.Close();
                     return;
                 }
                 CardID = eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_CARDID].ToString();
                 if (!string.IsNullOrEmpty(CardID))
                 {
                     if (Convert.ToInt32(eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_CIRCUIT_STATE]) == 1)
                     {
                         MyAlert registerInfo = new MyAlert(AlertTypeenum.信息, "此卡已挂失不能使用!");
                         registerInfo.ShowDialog();
                         this.Close();
                         return;
                     }
                     if (Convert.ToInt32(eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_CIRCUIT_STATE]) == 2)
                     {
                         MyAlert registerInfo = new MyAlert(AlertTypeenum.信息, "此卡已注销不能使用");
                         registerInfo.ShowDialog();
                         this.Close();
                         return;
                     }
                     if (Skynet.Framework.Common.SystemInfo.SystemConfigs["是否启用卡有效期"].DefaultValue.Equals("1"))
                     {
                         var dtCard = eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].AsEnumerable();
                         _isVilid = dtCard.Where(a => a.Field <DateTime>(CardAuthorizationData.T_CARD_AUTHORIZATION_CARDVALIDDATE) <= DateTime.Now).ToList().Count > 0 ? true : false;
                         if (_isVilid)
                         {
                             MyAlert registerInfo = new MyAlert(AlertTypeenum.信息, "该卡已经过了有效期,请联系管理员!");
                             registerInfo.ShowDialog();
                             this.Close();
                             return;
                         }
                     }
                 }
                 else
                 {
                     MyAlert registerInfo = new MyAlert(AlertTypeenum.信息, "请持身份证在窗口签约");
                     registerInfo.ShowDialog();
                     this.Close();
                     return;
                 }
                 #endregion
                 SkyComm.cardInfoStruct.CardNo         = CardID;
                 SkyComm.DiagnoseID                    = eCardAuthorizationData.Tables[0].Rows[0]["DIAGNOSEID"].ToString();
                 SkyComm.cardInfoStruct.isIdentityCard = true;
                 CardRead cardUtility = new CardRead(this);
                 strMsg            = cardUtility.GetPatiantInfo();
                 this.DialogResult = DialogResult.OK;
             }
             timer1.Start();
         }
         catch (Exception ex)
         {
             timer1.Start();
             FrmReadIdenetity.Dispose();
             Skynet.LoggingService.LogService.GlobalInfoMessage("读取居民身份证信息失败:" + ex.Message);
             return;
         }
         finally
         {
             FrmReadIdenetity.Dispose();
         }
         #endregion
     }
     else
     {
         #region  壁挂式自助机驱动
         FrmReadIdenetityBG FrmReadIdenetity = new FrmReadIdenetityBG();
         try
         {
             timer1.Stop();
             if (FrmReadIdenetity.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
             {
                 #region 验证卡状态
                 string CardID = FrmReadIdenetity.strCardNO;
                 BusinessFacade.His.CardClubManager.CardAuthorizationFacade eCardAuthorizationFacade = new BusinessFacade.His.CardClubManager.CardAuthorizationFacade();
                 if (SystemInfo.SystemConfigs["是否启用就诊卡与副卡关联"].DefaultValue.ToString() == "1")
                 {
                     bool isSecondaryCard = false;//是否副卡
                     CardID = eCardAuthorizationFacade.GetMotherCardID(CardID, "", ref isSecondaryCard);
                 }
                 CardAuthorizationData eCardAuthorizationData = (CardAuthorizationData)eCardAuthorizationFacade.SelectPatientAndCardInfoByCardID(CardID);
                 if (eCardAuthorizationData.Tables[0].Rows.Count == 0)
                 {
                     MyAlert registerInfo = new MyAlert(AlertTypeenum.信息, "卡号无效");
                     registerInfo.ShowDialog();
                     this.Close();
                     return;
                 }
                 CardID = eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_CARDID].ToString();
                 if (!string.IsNullOrEmpty(CardID))
                 {
                     if (Convert.ToInt32(eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_CIRCUIT_STATE]) == 1)
                     {
                         MyAlert registerInfo = new MyAlert(AlertTypeenum.信息, "此卡已挂失不能使用!");
                         registerInfo.ShowDialog();
                         this.Close();
                         return;
                     }
                     if (Convert.ToInt32(eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_CIRCUIT_STATE]) == 2)
                     {
                         MyAlert registerInfo = new MyAlert(AlertTypeenum.信息, "此卡已注销不能使用");
                         registerInfo.ShowDialog();
                         this.Close();
                         return;
                     }
                     if (Skynet.Framework.Common.SystemInfo.SystemConfigs["是否启用卡有效期"].DefaultValue.Equals("1"))
                     {
                         var dtCard = eCardAuthorizationData.Tables["T_CARD_AUTHORIZATION"].AsEnumerable();
                         _isVilid = dtCard.Where(a => a.Field <DateTime>(CardAuthorizationData.T_CARD_AUTHORIZATION_CARDVALIDDATE) <= DateTime.Now).ToList().Count > 0 ? true : false;
                         if (_isVilid)
                         {
                             MyAlert registerInfo = new MyAlert(AlertTypeenum.信息, "该卡已经过了有效期,请联系管理员!");
                             registerInfo.ShowDialog();
                             this.Close();
                             return;
                         }
                     }
                 }
                 else
                 {
                     MyAlert registerInfo = new MyAlert(AlertTypeenum.信息, "请持身份证在窗口签约");
                     registerInfo.ShowDialog();
                     this.Close();
                     return;
                 }
                 #endregion
                 SkyComm.cardInfoStruct.CardNo         = CardID;
                 SkyComm.DiagnoseID                    = eCardAuthorizationData.Tables[0].Rows[0]["DIAGNOSEID"].ToString();
                 SkyComm.cardInfoStruct.isIdentityCard = true;
                 CardRead cardUtility = new CardRead(this);
                 strMsg            = cardUtility.GetPatiantInfo();
                 this.DialogResult = DialogResult.OK;
             }
             timer1.Start();
         }
         catch (Exception ex)
         {
             timer1.Start();
             FrmReadIdenetity.Dispose();
             Skynet.LoggingService.LogService.GlobalInfoMessage("读取居民身份证信息失败:" + ex.Message);
             return;
         }
         finally
         {
             FrmReadIdenetity.Dispose();
         }
         #endregion
     }
 }
        private void lblOK_Click(object sender, EventArgs e)
        {
            ucTime1.Sec = 60;
            ucTime1.timer1.Stop();


            if (SendCard.CheckCard() == "1")
            {
                SkyComm.ShowMessageInfo("该自助机没有卡,请在其他自助机上进行补卡操作!");
                ucTime1.timer1.Start();
                return;
            }
            this.lblOK.Enabled = false;
            //this.btnReturn.Enabled = false;
            this.btnExit.Enabled = false;
            //DataSet dsNewInfo = new DataSet();
            int     checkCount = 0;
            DataRow drCard     = ((DataView)this.gdvMain.DataSource).ToTable().NewRow();

            for (int i = 0; i < this.gdvMain.RowCount; i++)
            {
                if (Convert.ToBoolean(gdvMain.GetDataRow(i)["PITCHON1"].ToString()))
                {
                    drCard = gdvMain.GetDataRow(i);
                    checkCount++;
                }
            }
            if (checkCount == 0)
            {
                SkyComm.ShowMessageInfo("请选择一条卡信息进行补卡操作!");
                ucTime1.timer1.Start();
                eLCardAuthorizationData = new CardAuthorizationData();
                this.lblOK.Enabled      = true;
                //this.btnReturn.Enabled = true;
                this.btnExit.Enabled = true;
                return;
            }
            else if (checkCount > 1)
            {
                SkyComm.ShowMessageInfo("只能选择一条卡信息进行补卡操作!");
                ucTime1.timer1.Start();
                eLCardAuthorizationData = new CardAuthorizationData();
                this.lblOK.Enabled      = true;
                //this.btnReturn.Enabled = true;
                this.btnExit.Enabled = true;
                return;
            }

            if (SkyComm.eCardAuthorizationData != null && SkyComm.eCardAuthorizationData.Tables.Count != 0 && SkyComm.eCardAuthorizationData.Tables[0].Rows.Count != 0)
            {
                if (drCard["CARDID"].ToString() == SkyComm.eCardAuthorizationData.Tables[0].Rows[0]["CARDID"].ToString())
                {
                    SkyComm.ShowMessageInfo("不能对当前正在使用的就诊卡进行补卡操作!");
                    ucTime1.timer1.Start();
                    eLCardAuthorizationData = new CardAuthorizationData();
                    this.lblOK.Enabled      = true;
                    //this.btnReturn.Enabled = true;
                    this.btnExit.Enabled = true;
                    return;
                }
            }

            FrmYesNoAlert frmAlert = new FrmYesNoAlert();

            frmAlert.Title = "提示";
            frmAlert.Msg   = "是否确认对选择的卡信息进行补卡操作?         【卡号:" + drCard["CARDID"].ToString() + "】【姓名:" + drCard["PATIENTNAME"].ToString() + "】";
            if (frmAlert.ShowDialog() == DialogResult.Cancel)
            {
                this.ucTime1.timer1.Start();
                eLCardAuthorizationData = new CardAuthorizationData();
                this.lblOK.Enabled      = true;
                //this.btnReturn.Enabled = true;
                this.btnExit.Enabled = true;
                return;
            }
            CardAuthorizationFacade eCardAuthorizationFacade = new CardAuthorizationFacade();

            using (WaitDialogForm form = new WaitDialogForm("正在发卡中,请稍候...", "正在组织发卡数据,请稍候......", new Size(240, 60)))
            {
                #region 补卡

                eLCardAuthorizationData = (CardAuthorizationData)eCardAuthorizationFacade.CancleAndReissueCard(drCard["ACCOUNT_ID"].ToString(), drCard["CARDID"].ToString(), SysOperatorInfo.OperatorID, drCard["CIRCUIT_STATE"].ToString());
                //写卡,如果失败则重试
                bool isSuccess = false;
                form.Caption = "正在写卡中,请稍候...";
                try
                {
                    for (int i = 0; i < 3; i++)
                    {
                        //第一次写卡
                        if (SendCard.WriteCard(eLCardAuthorizationData.Tables[0].Rows[0]["CARDID"].ToString()) == false)
                        {
                            //第一次写卡失败,再进行第二次写卡
                            if (SendCard.WriteCard(eLCardAuthorizationData.Tables[0].Rows[0]["CARDID"].ToString()) == false)
                            {
                                //第二次写卡失败以后将卡回收
                                SendCard.ReturnCard();
                            }
                            else
                            {
                                isSuccess = true;
                                break;
                            }
                        }
                        else
                        {
                            isSuccess = true;
                            break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Skynet.LoggingService.LogService.GlobalInfoMessage("发卡失败:" + ex.Message);
                    SkyComm.ShowMessageInfo("发卡失败:" + ex.Message);
                    isSuccess = false;
                    //this.btnReturn.Enabled = true;
                    this.btnExit.Enabled = true;
                    this.lblOK.Enabled   = true;
                }

                //写卡失败
                if (isSuccess == false)
                {
                    //撤消已注销挂失并补卡的信息
                    //eCardAuthorizationFacade.deleteEntityAndCardSaving(eLCardAuthorizationData);
                    eCardAuthorizationFacade.TranBackBussiness(drCard["ACCOUNT_ID"].ToString(), eLCardAuthorizationData.Tables[0].Rows[0]["CARDID"].ToString(), drCard["CARDID"].ToString(), drCard["CIRCUIT_STATE"].ToString(), eLCardAuthorizationData);
                    SkynetMessage.MsgInfo("写卡失败,请在其他自助机上重试!");
                    this.lblOK.Enabled = true;
                    //this.btnReturn.Enabled = true;
                    this.btnExit.Enabled = true;
                    this.ucTime1.timer1.Start();
                    //第二次写卡失败以后将卡回收
                    SendCard.ReturnCard();
                    return;
                }
                #endregion
                form.Close();
            }
            #region 充值
            try
            {
                SkyComm.eCardAuthorizationData = eLCardAuthorizationData;//暂注释
                SkyComm.DiagnoseID             = SkyComm.eCardAuthorizationData.Tables[0].Rows[0]["DIAGNOSEID"].ToString();
                SkyComm.cardInfoStruct.CardNo  = eLCardAuthorizationData.Tables[0].Rows[0]["CARDID"].ToString();
                SkyComm.cardBlance             = 0;
                CardSavingFacade cf = new CardSavingFacade();
                SkyComm.cardallmoney = 0;

                int     Savingsucceed = 0;
                decimal RechargeMoney = 0;
                string  strModeType   = "现金";
                string  projectType   = SkyComm.getvalue("项目版本标识");
                if (!string.IsNullOrEmpty(projectType) && projectType == "锡林郭勒盟医院")
                {
                    //eLCardAuthorizationData.Tables[0].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_MODETYPE] = strModeType;
                    if (!eLCardAuthorizationData.Tables[0].Columns.Contains("OPERATORNAME"))
                    {
                        eLCardAuthorizationData.Tables[0].Columns.Add("OPERATORNAME");

                        eLCardAuthorizationData.Tables[0].Rows[0]["OPERATORNAME"] = SysOperatorInfo.OperatorName;
                    }
                    eCardAuthorizationFacade.updateEntity(eLCardAuthorizationData);
                    //eLCardAuthorizationData.Tables[0].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_ADDMONEY] = RechargeMoney;
                    Savingsucceed = 1;
                    //打印发卡凭证
                    PrintSendCardReport(eLCardAuthorizationData, drCard["PATIENTNAME"].ToString());
                }
                else
                {
                    try
                    {
                        //充值,弹出界面选择是现金充值还是银行卡预存
                        if (!string.IsNullOrEmpty(AutoHostConfig.PosInterfaceType))
                        {
                            FrmCardSavingMain frm = new FrmCardSavingMain();
                            frm.CallType = 2;
                            frm.ShowDialog();
                            Savingsucceed = frm.Savingsucceed;
                            RechargeMoney = frm.RechargeMoney;
                            strModeType   = frm.MODETYPE;
                            frm.Dispose();
                        }
                        else
                        {
                            //拍照
                            switch (AutoHostConfig.ReadCardType)
                            {
                            case "XUHUI":
                            case "XUHUIM1":
                                AutoServiceSDK.SdkService.Common_XH camera = new AutoServiceSDK.SdkService.Common_XH();
                                camera.TakeCamera(SkyComm.cardInfoStruct.CardNo, SkyComm.eCardAuthorizationData.Tables[0].Rows[0]["PATIENTNAME"].ToString(), AutoHostConfig.Machineno);
                                break;

                            default:
                                break;
                            }

                            FrmCardSavingCash frm = new FrmCardSavingCash();
                            frm.CallType = 2;
                            frm.ShowDialog();
                            Savingsucceed = frm.Savingsucceed;
                            RechargeMoney = frm.RechargeMoney;
                            frm.Dispose();
                        }
                        if (Savingsucceed == 1)
                        {
                            eLCardAuthorizationData.Tables[0].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_MODETYPE] = strModeType;
                            if (!eLCardAuthorizationData.Tables[0].Columns.Contains("OPERATORNAME"))
                            {
                                eLCardAuthorizationData.Tables[0].Columns.Add("OPERATORNAME");

                                eLCardAuthorizationData.Tables[0].Rows[0]["OPERATORNAME"] = SysOperatorInfo.OperatorName;
                            }
                            eCardAuthorizationFacade.updateEntity(eLCardAuthorizationData);
                            eLCardAuthorizationData.Tables[0].Rows[0][CardAuthorizationData.T_CARD_AUTHORIZATION_ADDMONEY] = RechargeMoney;

                            //打印发卡凭证
                            PrintSendCardReport(eLCardAuthorizationData, drCard["PATIENTNAME"].ToString());
                        }
                    }
                    catch (Exception ex2)
                    {
                        Skynet.LoggingService.LogService.GlobalInfoMessage("补卡充值失败:" + ex2.Message);
                    }
                    finally
                    {
                        //SkyComm.cardInfoStruct = new CardInformationStruct();
                        //SkyComm.eCardAuthorizationData.Tables[0].Clear();
                        //SkyComm.DiagnoseID = string.Empty;
                        //SkyComm.cardBlance = 0;
                        //SkyComm.cardallmoney = 0;
                    }
                }
                if (Savingsucceed == 1)
                {
                    SendCard.OutputCard();

                    SkyComm.ShowMessageInfo("补卡成功,请取走您的就诊卡!");
                }
                else
                {
                    //撤消已注销挂失并补卡的信息
                    Skynet.LoggingService.LogService.GlobalInfoMessage("充值失败,撤消发卡信息");
                    //eCardAuthorizationFacade.deleteEntityAndCardSaving(eLCardAuthorizationData);
                    DataSet dsCardAuthorizationData = (DataSet)eLCardAuthorizationData;
                    eCardAuthorizationFacade.TranBackBussiness(drCard["ACCOUNT_ID"].ToString(), eLCardAuthorizationData.Tables[0].Rows[0]["CARDID"].ToString(), drCard["CARDID"].ToString(), drCard["CIRCUIT_STATE"].ToString(), eLCardAuthorizationData);
                    eLCardAuthorizationData = new CardAuthorizationData();
                    this.lblOK.Enabled      = true;
                    //this.btnReturn.Enabled = true;
                    this.btnExit.Enabled = true;

                    //发卡失败以后将卡进行回收
                    SendCard.ReturnCard();
                    ucTime1.timer1.Start();

                    return;
                }
            }
            catch (Exception ex)
            {
                Skynet.LoggingService.LogService.GlobalInfoMessage("发卡失败:" + ex.Message + ",系统回收卡机中的卡");

                //发卡失败以后将卡进行回收
                SendCard.ReturnCard();

                SkynetMessage.MsgInfo("发卡失败:" + ex.Message);
                ucTime1.timer1.Start();

                return;
            }
            finally
            {
                SkyComm.cardInfoStruct = new CardInformationStruct();
                SkyComm.eCardAuthorizationData.Tables[0].Clear();
                SkyComm.DiagnoseID   = string.Empty;
                SkyComm.cardBlance   = 0;
                SkyComm.cardallmoney = 0;

                this.lblOK.Enabled = true;
                //this.btnReturn.Enabled = true;
                this.btnExit.Enabled = true;
            }
            #endregion

            SystemFramework.Voice.Voice voice = new SystemFramework.Voice.Voice();
            voice.PlayText("请在就诊卡出口取走您的就诊卡!");
            voice.EndJtts();
            ucTime1.timer1.Start();
            DialogResult = System.Windows.Forms.DialogResult.OK;
        }