Example #1
0
        /// <summary>
        /// 保存臨時表
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnConfirmNewCard_Click(object sender, EventArgs e)
        {
            if (_TemCardList != null && _TemCardList.Count > 0)
            {
                if (MessageBox.Show("是否保存临时表?共" + _TemCardList.Count + "张卡信息。", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    string message = "";

                    for (int index = 0; index < _TemCardList.Count;index++ )
                    {
                        ConsumeCardMaster_ccm_Info ccmInfo = new ConsumeCardMaster_ccm_Info();
                        ccmInfo.ccm_cCardID = _TemCardList[index];

                        ccmInfo.ccm_lIsActive = false;

                        ReturnValueInfo rvInfo = new ReturnValueInfo();

                        List<ConsumeCardMaster_ccm_Info> ccmList = _iccmBL.SearchRecords(ccmInfo);

                        if (ccmList != null && ccmList.Count > 0)
                        {
                            ccmInfo.ccm_lIsActive = true;
                            ccmInfo.ccm_cLast = this.UserInformation.usm_cUserLoginID;
                            ccmInfo.ccm_dLastDate = System.DateTime.Now;
                            rvInfo = _iccmBL.UpdateRecord(ccmInfo);
                        }
                        else
                        {
                            ccmInfo.ccm_cCardState = DefineConstantValue.CardUseState.NotUsed.ToString();
                            ccmInfo.ccm_cAdd = this.UserInformation.usm_cUserLoginID;
                            ccmInfo.ccm_cLast = this.UserInformation.usm_cUserLoginID;
                            ccmInfo.ccm_dAddDate = System.DateTime.Now;
                            ccmInfo.ccm_dLastDate = System.DateTime.Now;
                            ccmInfo.ccm_lIsActive = true;
                            rvInfo = _iccmBL.SaveRecord(ccmInfo);
                        }

                        if (rvInfo.isError)
                        {
                            message +="保存卡片:" + _TemCardList[index] + "失敗!\n";

                        }
                        else
                        {
                            _TemCardList.RemoveAt(index);
                            this.lvTempCardInfos.Items.RemoveAt(index);
                            index++;
                        }
                    }

                    if (message != "")
                    {
                        base.ShowErrorMessage(message);
                    }
                    else
                    {
                        MessageBox.Show("保存完成。","提示");
                    }
                }
            }
        }
Example #2
0
        private bool CheckCard()
        {
            ConsumeCardMaster_ccm_Info ccmInfo = new ConsumeCardMaster_ccm_Info();
            ccmInfo.ccm_cCardID = labCardID.Text;
            ccmInfo.ccm_lIsActive = true;
            ccmInfo = _iccmBL.DisplayRecord(ccmInfo) as ConsumeCardMaster_ccm_Info;

            if (ccmInfo != null)
            {
                if (_temCardID != labCardID.Text)
                {
                    _temCardID = labCardID.Text;
                    this.lblReadMessage.Visible = true;
                    this.lblReadMessage.Text = "卡片已录入,请不要重复录入。";
                    // MessageBox.Show("卡片:" + labCardID.Text + " 已存在。");
                }
                return true;
            }
            else
            {
                this.lblReadMessage.Visible = false;
                this.lblReadMessage.Text = "";
                return false;
            }
        }
Example #3
0
        /// <summary>
        /// 獲取查詢條件
        /// </summary>
        /// <returns></returns>
        private UserCardPair_ucp_Info GetSearchObj()
        {
            if (nudCardNo.DecimalValue == 0 && String.IsNullOrEmpty(this.txtCardID.Text)
                && String.IsNullOrEmpty(txbChaName.Text)
                &&( cmbUserClass.SelectedValue == null
                || String.IsNullOrEmpty(cmbUserClass.SelectedValue.ToString()))
                &&( cmbUserDepartment.SelectedValue == null
                || String.IsNullOrEmpty(cmbUserDepartment.SelectedValue.ToString()))
                )
            {
                MessageBox.Show("请输入一个查询条件");
                return null;
            }

            CardUserMaster_cus_Info cusInfo = new CardUserMaster_cus_Info();
            ConsumeCardMaster_ccm_Info ccmInfo = new ConsumeCardMaster_ccm_Info();

            UserCardPair_ucp_Info ucpInfo = new UserCardPair_ucp_Info();
            ucpInfo.ucp_lIsActive = true;

            ucpInfo.CardOwner = cusInfo;
            ucpInfo.CardInfo = ccmInfo;

            ucpInfo.ucp_iCardNo = Int32.Parse(nudCardNo.DecimalValue.ToString());

            ucpInfo.ucp_cCardID = this.txtCardID.Text;

            ucpInfo.CardOwner.cus_cChaName = txbChaName.Text.ToString().Trim();

            if (cmbUserClass.SelectedValue != null && !String.IsNullOrEmpty(cmbUserClass.SelectedValue.ToString()))
            {
                ucpInfo.CardOwner.cus_cClassID = new Guid(cmbUserClass.SelectedValue.ToString());
            }

            if (cmbUserDepartment.SelectedValue != null && !String.IsNullOrEmpty(cmbUserDepartment.SelectedValue.ToString()))
            {
                ucpInfo.CardOwner.cus_cClassID = new Guid(cmbUserDepartment.SelectedValue.ToString());
            }

            ucpInfo.CardInfo.ccm_cCardState = this.cmbCardState.SelectedValue.ToString();

            if (this.chbPairTime.Checked)
            {
                ucpInfo.PairTime_To = this.dtpPairTime_To.Value.AddDays(1);
                ucpInfo.PairTime_From = this.dtpPairTime_From.Value;
            }

            return ucpInfo;
        }
Example #4
0
        /// <summary>
        /// 確定換卡
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                bool resUkey = base.CheckUKey();
                if (!resUkey)
                {
                    return;
                }

                #region 添加换卡前对收数情况的判断,若收数未成功,则不能进行换卡操作

                ConsumeMachineMaster_cmm_Info searchMacInfo = new ConsumeMachineMaster_cmm_Info();
                searchMacInfo.cmm_cStatus = Common.DefineConstantValue.ConsumeMachineStatus.Using.ToString();
                List<ConsumeMachineMaster_cmm_Info> listMacInfos = this._IConsumeMachineBL.SearchRecords(searchMacInfo);
                listMacInfos = listMacInfos.Where(x => x.cmm_lIsActive).ToList();
                if (listMacInfos == null && listMacInfos.Count > 0)
                {
                    base.ShowErrorMessage("获取消费数据同步信息时出现异常,请重试。");
                    return;
                }
                //消费机最后同步时间
                DateTime dtMacSync = listMacInfos[0].cmm_dLastAccessTime;
                //List<ConsumeMachineMaster_cmm_Info> listUnSyncMachineInfos = listMacInfos.Where(x =>
                //          x.cmm_dLastAccessTime.Hour != dtMacSync.Hour).ToList();
                List<ConsumeMachineMaster_cmm_Info> listUnSyncMachineInfos = new List<ConsumeMachineMaster_cmm_Info>();
                foreach (ConsumeMachineMaster_cmm_Info macItem in listMacInfos)
                {
                    if (macItem != null)
                    {
                        DateTime dtAccess = macItem.cmm_dLastAccessTime;
                        if (Math.Abs((dtAccess - dtMacSync).TotalMinutes) > 30)
                        {
                            listUnSyncMachineInfos.Add(macItem);
                        }
                    }
                    else
                        continue;
                }
                List<ConsumeMachineMaster_cmm_Info> listUnConnMachineInfos = listMacInfos.Where(x =>
                        !x.cmm_lLastAccessRes).ToList();
                if ((listUnSyncMachineInfos != null && listUnSyncMachineInfos.Count > 0) || (listUnConnMachineInfos != null && listUnConnMachineInfos.Count > 0))
                {
                    if (base.ShowQuestionMessage("暂时不能进行换卡操作,因检测到有断线现象的消费机,请在恢复收集数据正常后重试。" + Environment.NewLine + "需要立即查看【消费数据收集情况】吗?"))
                    {
                        MenuItem menuClick = new MenuItem();
                        Sys_FormMaster_fom_Info formClick = new Sys_FormMaster_fom_Info();
                        formClick.fom_cExePath = "WindowUI.HHZX.ConsumerDevice.frmConsumptionRecordCollect";
                        menuClick.Tag = formClick;
                        base.ShowSubForm(menuClick, base.BaseDockPanel);
                    }
                    this.btnSave.Enabled = false;
                    this.lblReadNo.Text = "请读卡";
                    return;
                }

                #endregion

                this.btnSave.Enabled = false;
                this.lblReadNo.Text = "请读卡";

                UserCardPair_ucp_Info userPairInfo = new UserCardPair_ucp_Info();
                userPairInfo.ucp_cCardID = _CardInfo.CardSourceID;
                userPairInfo.ucp_iCardNo = int.Parse(_CardInfo.CardNo);
                //查询用户是否已拥有正常的消费卡
                List<UserCardPair_ucp_Info> listResUserPair = _IUserCardPairBL.SearchRecords(userPairInfo);
                if (userPairInfo != null)
                {
                    listResUserPair = listResUserPair.Where(x => x.ucp_cUseStatus != Common.DefineConstantValue.ConsumeCardStatus.Returned.ToString()).ToList();
                }

                if (listResUserPair != null && listResUserPair.Count > 0)
                {
                    string strMessage = string.Empty;

                    userPairInfo = listResUserPair[0] as UserCardPair_ucp_Info;

                    userPairInfo = _IUserCardPairBL.DisplayRecord(userPairInfo);

                    if (userPairInfo.CardOwner != null)
                    {
                        strMessage += userPairInfo.CardOwner.cus_cChaName + " " + userPairInfo.CardOwner.ClassName + " 卡号:" + userPairInfo.ucp_iCardNo;
                    }

                    base.ShowErrorMessage("该卡已在使用中。使用者:" + strMessage);
                    return;
                }

                if (!ShowQuestionMessage("是否确认换卡?"))
                {
                    return;
                }
                if (ShowQuestionMessage("是否需要重新设置【换卡工本费】?" + Environment.NewLine + "当前【换卡工本费】为:" + _ReplaceCost.ToString()))
                {
                    btnSetCost_Click(null, null);
                    if (!ShowQuestionMessage("【换卡工本费】更新完毕,是否需要继续进行换卡操作?"))
                    {
                        return;
                    }
                }

                userPairInfo = _CurrentUserInfo.PairInfo;
                int iOldCardNo = userPairInfo.ucp_iCardNo;
                userPairInfo.ucp_cUseStatus = DefineConstantValue.ConsumeCardStatus.Returned.ToString();
                userPairInfo.ucp_dReturnTime = System.DateTime.Now;

                if (!_IUserCardPairBL.Save(userPairInfo, DefineConstantValue.EditStateEnum.OE_Update).isError)
                {
                    ConsumeCardMaster_ccm_Info ccmInfo = new ConsumeCardMaster_ccm_Info();
                    ccmInfo.ccm_cCardID = _CardInfo.CardSourceID;

                    ccmInfo.ccm_cCardState = DefineConstantValue.CardUseState.InUse.ToString();
                    ccmInfo.ccm_lIsActive = true;
                    ccmInfo.ccm_cAdd = this.UserInformation.usm_cUserLoginID;
                    ccmInfo.ccm_dAddDate = System.DateTime.Now;
                    ccmInfo.ccm_cLast = this.UserInformation.usm_cUserLoginID;
                    ccmInfo.ccm_dLastDate = System.DateTime.Now;
                    ///如果新卡沒錄入系統,則先錄入新卡
                    if (_IConsumeCardMasterBL.DisplayRecord(ccmInfo) != null)
                    {
                        //如果新卡已在系統,則設為已使用
                        if (_IConsumeCardMasterBL.Save(ccmInfo, DefineConstantValue.EditStateEnum.OE_Update).isError)
                        {

                        }
                    }
                    else
                    {
                        //添加新卡信息
                        if (_IConsumeCardMasterBL.Save(ccmInfo, DefineConstantValue.EditStateEnum.OE_Insert).isError)
                        {
                            base.ShowErrorMessage("卡信息录入时发生错误,请再次尝试。");
                        }
                    }

                    //如果存在舊卡,將舊卡設為未使用
                    if (_CurrentUserInfo.PairInfo != null)
                    {
                        ConsumeCardMaster_ccm_Info oldCardInfo = new ConsumeCardMaster_ccm_Info();
                        oldCardInfo.ccm_cCardID = _CurrentUserInfo.PairInfo.ucp_cCardID;
                        oldCardInfo = _IConsumeCardMasterBL.DisplayRecord(oldCardInfo) as ConsumeCardMaster_ccm_Info;
                        if (oldCardInfo != null)
                        {
                            oldCardInfo.ccm_cCardState = DefineConstantValue.CardUseState.NotUsed.ToString();
                            _IConsumeCardMasterBL.Save(oldCardInfo, DefineConstantValue.EditStateEnum.OE_Update);
                        }
                    }

                    userPairInfo.ucp_cRecordID = Guid.NewGuid();
                    userPairInfo.ucp_cCardID = ccmInfo.ccm_cCardID;
                    userPairInfo.ucp_cAdd = this.UserInformation.usm_cUserLoginID;
                    userPairInfo.ucp_cLast = this.UserInformation.usm_cUserLoginID;
                    userPairInfo.ucp_dPairTime = DateTime.Now;
                    userPairInfo.ucp_dAddDate = DateTime.Now;
                    userPairInfo.ucp_dLastDate = DateTime.Now;
                    userPairInfo.ucp_cUseStatus = DefineConstantValue.ConsumeCardStatus.Normal.ToString();
                    userPairInfo.ucp_lIsActive = true;
                    userPairInfo.ucp_dReturnTime = null;

                    ReturnValueInfo returnInfo = _IUserCardPairBL.InsertExchargeCard(userPairInfo, _ReplaceCost);

                    userPairInfo = returnInfo.ValueObject as UserCardPair_ucp_Info;

                    if (returnInfo.isError)
                    {
                        base.ShowErrorMessage("换卡失败,请再次尝试。");
                        return;
                    }
                    else
                    {
                        //換卡成功,將新卡設為已使用
                        initValue();

                        UserCardPair_ucp_Info currentPair = this._IUserCardPairBL.DisplayRecord(new UserCardPair_ucp_Info() { ucp_cRecordID = userPairInfo.ucp_cRecordID }) as UserCardPair_ucp_Info;

                        string strCardName = string.Empty;

                        //抽取用户信息写入卡显示名称
                        if (currentPair.CardOwner != null)
                        {
                            CardUserMaster_cus_Info userSearch = new CardUserMaster_cus_Info() { cus_cRecordID = currentPair.CardOwner.cus_cRecordID };
                            CardUserMaster_cus_Info userInfo = this._ICardUserMasterBL.DisplayRecord(userSearch) as CardUserMaster_cus_Info;
                            if (userInfo != null)
                            {
                                if (userInfo.cus_cIdentityNum == DefineConstantValue.CodeMasterDefine.KEY2_SIOT_CardUserIdentity_Student)//学生
                                {
                                    if (userInfo.ClassInfo != null)
                                    {
                                        if (userInfo.ClassInfo.GradeInfo == null)
                                        {
                                            strCardName += userInfo.ClassInfo.csm_cClassName.Substring(0, 1) == "高" ? "G" : "C";
                                            strCardName += userInfo.ClassInfo.csm_cClassName.Substring(1, 1);
                                        }
                                        else
                                        {
                                            strCardName += userInfo.ClassInfo.GradeInfo.gdm_cAbbreviation;
                                        }

                                        string strTmpName = userInfo.cus_cChaName;
                                        if (userInfo.cus_cChaName.Length > 3)
                                        {
                                            strTmpName = userInfo.cus_cChaName.Substring(1, 3);
                                        }
                                        strCardName += strTmpName;
                                    }
                                    else
                                    {
                                        this.Cursor = Cursors.Default;
                                        base.ShowWarningMessage("用户班级信息不全,请重试。");
                                        return;
                                    }
                                }
                                else//老师
                                {
                                    string strTmpName = userInfo.cus_cChaName;
                                    if (userInfo.cus_cChaName.Length > 6)
                                    {
                                        strTmpName = strTmpName.Substring(0, 6);
                                    }
                                    strCardName = strTmpName;
                                }
                            }
                        }

                        CardUserAccount_cua_Info cuaInfo = new CardUserAccount_cua_Info();
                        cuaInfo.cua_cCUSID = userPairInfo.ucp_cCUSID;

                        cuaInfo = _ICardUserAccountBL.SearchRecords(cuaInfo).FirstOrDefault() as CardUserAccount_cua_Info;
                        _CardInfo.CardNo = userPairInfo.ucp_iCardNo.ToString();
                        _CardInfo.Name = strCardName;
                        _CardInfo.CardPwd = this._PayPwd;
                        //_cardInfo.CardBalance = cuaInfo.cua_fCurrentBalance;

                        decimal Balance = cuaInfo.cua_fCurrentBalance;

                        if (this._CurrentUserInfo != null)
                        {
                            if (this._CurrentUserInfo.cus_cIdentityNum == Common.DefineConstantValue.CodeMasterDefine.KEY2_SIOT_CardUserIdentity_Student)
                            {
                                CodeMaster_cmt_Info codeInfo = this._ICodeMasterBL.SearchRecords(new CodeMaster_cmt_Info() { cmt_cKey1 = Common.DefineConstantValue.CodeMasterDefine.KEY1_ConstantExpenses, cmt_cKey2 = Common.DefineConstantValue.CodeMasterDefine.KEY2_AdvanceCost }).FirstOrDefault() as CodeMaster_cmt_Info;
                                if (codeInfo != null)
                                {
                                    Balance = Balance + codeInfo.cmt_fNumber;
                                }
                            }
                        }

                        if (Balance < 0)
                        {
                            Balance = 0;
                        }

                        _CardInfo.CardBalance = Balance;

                        this._Reader.WriteCardInfo(this._CardInfoSection, this._SectionPwd, _CardInfo);

                        this.lblReadNo.Text = "已换卡";

                        userPairInfo = returnInfo.ValueObject as UserCardPair_ucp_Info;

                        _CurrentUserInfo.PairInfo = userPairInfo;

                        _CardInfo = null;

                        initValue();

                        ShowInformationMessage("换卡成功。");

                        ReturnValueInfo rvRemoveOld = RemoveOldCardFromWList(iOldCardNo);
                        ReturnValueInfo rvAddNew = AddNewCardToWList(userPairInfo.ucp_iCardNo);
                        if (rvRemoveOld.boolValue && rvAddNew.boolValue)
                        {
                            ShowInformationMessage("旧卡自动添加到黑名单列表成功,原卡已不能继续使用。");
                        }
                        else
                        {
                            ShowErrorMessage("旧卡自动添加到黑名单列表失败,可等待停餐服务收集名单添加或联系管理员手动添加。");
                        }
                    }
                }
            }
            catch
            {

            }
        }
        public List<ConsumeCardMaster_ccm_Info> SearchHistoryRecords(UserCardPair_ucp_Info searchInfo)
        {
            List<ConsumeCardMaster_ccm_Info> ccmList = new List<ConsumeCardMaster_ccm_Info>();

            try
            {
                searchInfo.ucp_iCardNo = 0;
                searchInfo.ucp_cUseStatus = DefineConstantValue.ConsumeCardStatus.Returned.ToString();
                List<UserCardPair_ucp_Info> ucpList = _iucpDA.SearchRecords(searchInfo);
                if (ucpList != null)
                {
                    for (int index = 0; index < ucpList.Count; index++)
                    {
                        CardUserMaster_cus_Info cusInfo = new CardUserMaster_cus_Info();
                        cusInfo.cus_cRecordID = ucpList[index].ucp_cCUSID;
                        cusInfo = _icumDA.SearchRecords(cusInfo).FirstOrDefault();

                        if (cusInfo != null)
                        {
                            ConsumeCardMaster_ccm_Info ccmInfo = new ConsumeCardMaster_ccm_Info();
                            ccmInfo.CardOwner = cusInfo;
                            ccmInfo.UCPInfo = ucpList[index];

                            ccmList.Add(ccmInfo);
                        }
                    }
                }
            }
            catch
            {

            }

            return ccmList;
        }
        public List<ConsumeCardMaster_ccm_Info> SearchDisplayRecords(UserCardPair_ucp_Info searchInfo)
        {
            List<ConsumeCardMaster_ccm_Info> infoList = new List<ConsumeCardMaster_ccm_Info>();

            UserCardPair_ucp_Info ucpInfo;
            CardUserMaster_cus_Info cusInfo;
            ConsumeCardMaster_ccm_Info ccmInfo;

            if (searchInfo.ucp_iCardNo > 0 || !String.IsNullOrEmpty(searchInfo.ucp_cCardID))
            {
                //searchInfo.ucp_cUseStatus = "Normal";

                ccmInfo = new ConsumeCardMaster_ccm_Info();

                ucpInfo = _iucpDA.SearchRecords(searchInfo).OrderBy(p => p.ucp_dAddDate).FirstOrDefault();//查卡用戶關系表

                if (ucpInfo != null && ucpInfo.ucp_cUseStatus != DefineConstantValue.ConsumeCardStatus.Returned.ToString())
                {
                    cusInfo = new CardUserMaster_cus_Info();
                    cusInfo.cus_cRecordID = ucpInfo.ucp_cCUSID;
                    cusInfo = _icumDA.DisplayRecord(cusInfo);//查用戶信息

                    ccmInfo.ccm_cCardID = ucpInfo.ucp_cCardID;
                    ccmInfo.ccm_lIsActive = true;
                    ccmInfo = _iccmDA.SearchRecords(ccmInfo).FirstOrDefault();//查卡信息

                    if(ccmInfo != null)
                    {
                        ccmInfo.CardOwner = cusInfo;
                        ccmInfo.UCPInfo = ucpInfo;
                        infoList.Add(ccmInfo);
                    }
                }
                else if(!String.IsNullOrEmpty(searchInfo.ucp_cCardID))
                {
                    ccmInfo = new ConsumeCardMaster_ccm_Info();
                    ccmInfo.ccm_cCardID = searchInfo.ucp_cCardID;
                    ccmInfo.ccm_lIsActive = true;
                    ccmInfo = _iccmDA.SearchRecords(ccmInfo).FirstOrDefault();

                    if(ccmInfo != null)
                    {
                        infoList.Add(ccmInfo);
                    }
                }

            }
            else if (!String.IsNullOrEmpty(searchInfo.CardOwner.cus_cChaName) || searchInfo.CardOwner.cus_cClassID != Guid.Empty)
            {
                List<CardUserMaster_cus_Info> cusList = _icumDA.SearchRecords(searchInfo.CardOwner);

                if (cusList != null)
                {
                    for (int index = 0; index < cusList.Count; index++)
                    {
                        searchInfo.ucp_cCUSID = cusList[index].cus_cRecordID;

                        ucpInfo = _iucpDA.SearchRecords(searchInfo).OrderBy(p => p.ucp_dAddDate).FirstOrDefault();

                        if (ucpInfo != null && ucpInfo.ucp_cUseStatus == DefineConstantValue.ConsumeCardStatus.Normal.ToString())
                        {
                            ccmInfo = new ConsumeCardMaster_ccm_Info();
                            ccmInfo.ccm_cCardID = ucpInfo.ucp_cCardID;
                            ccmInfo.ccm_cCardState = searchInfo.CardInfo.ccm_cCardState;
                            ccmInfo.ccm_lIsActive = true;

                            ccmInfo = _iccmDA.SearchRecords(ccmInfo).FirstOrDefault();//查卡信息

                            if (ccmInfo != null)
                            {
                                ccmInfo.CardOwner = cusList[index];
                                ccmInfo.UCPInfo = ucpInfo;

                                infoList.Add(ccmInfo);
                            }

                        }
                    }
                }
            }
            else
            {
                List<ConsumeCardMaster_ccm_Info> ccmList = _iccmDA.SearchRecords(new ConsumeCardMaster_ccm_Info() { ccm_lIsActive = true});
                if (ccmList != null)
                {
                    for (int index = 0; index < ccmList.Count; index++)
                    {
                        ucpInfo = new UserCardPair_ucp_Info();
                        ucpInfo.ucp_cCardID = ccmList[index].ccm_cCardID;
                        ucpInfo.ucp_cUseStatus = DefineConstantValue.ConsumeCardStatus.Normal.ToString();

                        ucpInfo = _iucpBL.SearchRecords(ucpInfo).FirstOrDefault();

                        if(ucpInfo != null)
                        {
                            ccmList[index].UCPInfo = ucpInfo;
                            ccmList[index].CardOwner = ucpInfo.CardOwner;
                        }

                        infoList.Add(ccmList[index]);
                    }
                }

            }

            if (infoList != null && infoList.Count > 0 && searchInfo.PairTime_From != null && searchInfo.PairTime_To != null)
            {
                for (int index = 0; index < infoList.Count; index++)
                {
                    if (infoList[index].UCPInfo.ucp_dPairTime < searchInfo.PairTime_From || infoList[index].UCPInfo.ucp_dPairTime > searchInfo.PairTime_To)
                    {
                        infoList.RemoveAt(index);
                        index--;
                    }
                }
            }

            return infoList;
        }
Example #7
0
        /// <summary>
        /// 单卡发卡逻辑
        /// </summary>
        /// <param name="userID">用户信息记录ID</param>
        /// <param name="fNewCardCost">新卡工本费</param>
        /// <param name="fAdvanceCost">可透支额</param>
        /// <returns></returns>
        ReturnValueInfo pairCardLogic(Guid userID, decimal fNewCardCost, decimal fAdvanceCost)
        {
            ReturnValueInfo rvInfo = new ReturnValueInfo();
            try
            {
                ConsumeCardInfo sourceCardInfo = this._Reader.ReadCardInfo(base._CardInfoSection, base._SectionPwd);
                if (sourceCardInfo == null)
                {
                    sourceCardInfo = this._Reader.ReadCardInfo(base._CardInfoSection, base._OrganizeSectionPwd);
                    if (sourceCardInfo != null)
                    {
                        rvInfo = this._Reader.ModifySectionPwd(base._CardInfoSection, base._OrganizeSectionPwd, base._SectionPwd);
                    }
                }

                if (sourceCardInfo == null)
                {
                    rvInfo.messageText = "卡片已损坏,请重试。";
                    rvInfo.isError = true;
                    return rvInfo;
                }

                string strCardID = sourceCardInfo.CardSourceID;
                if (strCardID == null)
                {
                    rvInfo.messageText = "卡片已损坏或摆放位置不正确,请重试。";
                    rvInfo.isError = true;
                    return rvInfo;
                }

                ConsumeCardMaster_ccm_Info cardSearch = null;
                ConsumeCardMaster_ccm_Info cardInfo = new ConsumeCardMaster_ccm_Info();
                cardInfo.ccm_cCardID = strCardID;

                // *********1、搜索卡主档,检查是否存在此卡资料*********
                #region 卡主档信息检查
                cardSearch = this._IConsumeCardMasterBL.DisplayRecord(cardInfo) as ConsumeCardMaster_ccm_Info;
                if (cardSearch == null)
                {
                    //无相应卡主档记录则先添加此卡
                    cardInfo.ccm_cCardState = DefineConstantValue.CardUseState.NotUsed.ToString();
                    cardInfo.ccm_cAdd = base.UserInformation.usm_cUserLoginID;
                    cardInfo.ccm_dAddDate = DateTime.Now;
                    cardInfo.ccm_cLast = cardInfo.ccm_cAdd;
                    cardInfo.ccm_dLastDate = cardInfo.ccm_dAddDate;

                    rvInfo = this._IConsumeCardMasterBL.Save(cardInfo, DefineConstantValue.EditStateEnum.OE_Insert);
                    if (!rvInfo.boolValue || rvInfo.isError)
                    {
                        rvInfo.messageText = "录入本卡信息失败,请重试。";
                        rvInfo.isError = true;
                        return rvInfo;
                    }
                }

                #endregion

                try
                {
                    //*********2、插入发卡信息************
                    UserCardPair_ucp_Info pairInfo = new UserCardPair_ucp_Info();

                    #region 检查是否已发卡

                    pairInfo = new UserCardPair_ucp_Info();
                    pairInfo.ucp_cCUSID = userID;
                    List<UserCardPair_ucp_Info> listSearch = this._IUserCardPairBL.SearchRecords(pairInfo);
                    listSearch = listSearch.Where(x => x.ucp_cUseStatus != Common.DefineConstantValue.ConsumeCardStatus.Returned.ToString()).ToList();
                    if (listSearch.Count > 0)
                    {
                        //此人已发卡
                        rvInfo.messageText = "此用户已被发卡。" + Environment.NewLine + "拥有卡号:" + listSearch[0].ucp_iCardNo.ToString();
                        return rvInfo;
                    }

                    pairInfo = new UserCardPair_ucp_Info();
                    pairInfo.ucp_iCardNo = int.Parse(sourceCardInfo.CardNo);
                    pairInfo.ucp_cCardID = cardInfo.ccm_cCardID;
                    listSearch = this._IUserCardPairBL.SearchRecords(pairInfo);
                    listSearch = listSearch.Where(x => x.ucp_cUseStatus != Common.DefineConstantValue.ConsumeCardStatus.Returned.ToString()).ToList();
                    if (listSearch.Count > 0)
                    {
                        //此卡已发卡
                        rvInfo.messageText = "此卡已被发卡。" + Environment.NewLine + "卡拥有人:" + listSearch[0].CardOwner.cus_cStudentID + " " + listSearch[0].CardOwner.cus_cChaName;
                        return rvInfo;
                    }

                    #endregion

                    pairInfo = new UserCardPair_ucp_Info();
                    pairInfo.ucp_cRecordID = Guid.NewGuid();
                    pairInfo.ucp_cCardID = cardInfo.ccm_cCardID;
                    pairInfo.ucp_cCUSID = userID;
                    pairInfo.ucp_dPairTime = DateTime.Now;
                    pairInfo.ucp_cUseStatus = Common.DefineConstantValue.ConsumeCardStatus.Normal.ToString();
                    pairInfo.ucp_cAdd = base.UserInformation.usm_cUserLoginID;
                    pairInfo.ucp_dAddDate = pairInfo.ucp_dPairTime;
                    pairInfo.ucp_cLast = pairInfo.ucp_cAdd;
                    pairInfo.ucp_dLastDate = pairInfo.ucp_dAddDate;

                    rvInfo = this._IUserCardPairBL.InsertNewCard(pairInfo, fNewCardCost);

                    if (rvInfo.boolValue && !rvInfo.isError)
                    {
                        // *********3、写入卡物理信息*********
                        #region 发卡

                        UserCardPair_ucp_Info currentPair = this._IUserCardPairBL.DisplayRecord(new UserCardPair_ucp_Info()
                        {
                            ucp_cRecordID = pairInfo.ucp_cRecordID
                        });

                        CardUserMaster_cus_Info userInfo = null;

                        //抽取用户资料【写入卡显示名称】
                        string strCardName = string.Empty;//卡片显示信息
                        #region 写入卡显示信息

                        if (currentPair.CardOwner != null)
                        {
                            CardUserMaster_cus_Info userSearch = new CardUserMaster_cus_Info()
                            {
                                cus_cRecordID = currentPair.CardOwner.cus_cRecordID
                            };
                            userInfo = this._ICardUserMasterBL.DisplayRecord(userSearch);

                            if (userInfo != null)
                            {
                                #region 判断身份

                                if (userInfo.cus_cIdentityNum == DefineConstantValue.CodeMasterDefine.KEY2_SIOT_CardUserIdentity_Student)//学生
                                {
                                    if (userInfo.ClassInfo != null)
                                    {
                                        if (userInfo.ClassInfo.GradeInfo == null)
                                        {
                                            strCardName += userInfo.ClassInfo.csm_cClassName.Substring(0, 1) == "高" ? "G" : "C";
                                            strCardName += userInfo.ClassInfo.csm_cClassName.Substring(1, 1);
                                        }
                                        else
                                        {
                                            strCardName += userInfo.ClassInfo.GradeInfo.gdm_cAbbreviation;
                                        }

                                        string strTmpName = userInfo.cus_cChaName;
                                        if (userInfo.cus_cChaName.Length > 3)
                                        {
                                            strTmpName = userInfo.cus_cChaName.Substring(1, 3);
                                        }
                                        strCardName += strTmpName;
                                    }
                                    else
                                    {
                                        rvInfo.messageText = "用户班级信息不全,请重试。";
                                        rvInfo.isError = true;
                                        return rvInfo;
                                    }
                                }
                                else if (userInfo.cus_cIdentityNum == DefineConstantValue.CodeMasterDefine.KEY2_SIOT_CardUserIdentity_Staff)//老师
                                {
                                    string strTmpName = userInfo.cus_cChaName;
                                    if (userInfo.cus_cChaName.Length > 6)
                                    {
                                        strTmpName = strTmpName.Substring(0, 6);
                                    }
                                    strCardName = strTmpName;
                                }
                                else
                                {
                                    rvInfo.messageText = "有未知身份的用户。" + Environment.NewLine + userInfo.cus_cStudentID + " " + userInfo.cus_cChaName;
                                    rvInfo.isError = true;
                                    return rvInfo;
                                }

                                #endregion

                                ConsumeCardInfo writeCardInfo = new ConsumeCardInfo() { CardBalance = 0, CardNo = currentPair.ucp_iCardNo.ToString(), CardPwd = base._PayPwd, ConsumeTimes = 0, Name = strCardName };
                                //写入卡显示信息
                                rvInfo = this._Reader.WriteCardInfo(base._CardInfoSection, base._SectionPwd, writeCardInfo);
                                if (!rvInfo.boolValue || rvInfo.isError)
                                {
                                    rvInfo = this._IUserCardPairBL.Save(pairInfo, DefineConstantValue.EditStateEnum.OE_Delete);
                                    if (rvInfo.boolValue && rvInfo.isError)
                                    {
                                        rvInfo.messageText = "写入用户卡信息时出现异常,当前发卡记录已重置,请重新进行发卡操作。";
                                        rvInfo.isError = true;
                                        return rvInfo;
                                    }
                                    else
                                    {
                                        rvInfo.messageText = "写入用户卡信息时出现异常,当前发卡记录未能重置,请联系系统管理员重置发卡记录后重新发卡。";
                                        rvInfo.isError = true;
                                        return rvInfo;
                                    }
                                }
                            }
                            else
                            {
                                rvInfo.messageText = "用户信息异常,请检查该用户信息后重试。";
                                rvInfo.isError = true;
                                return rvInfo;
                            }
                        }

                        #endregion

                        if (userInfo.cus_cIdentityNum == DefineConstantValue.CodeMasterDefine.KEY2_SIOT_CardUserIdentity_Student)
                        {
                            #region 学生发卡,需预充透支金额

                            //插入发卡信息后,充入透支金额
                            rvInfo = this._Reader.Recharge((short)base._CardInfoSection, base._SectionPwd, fAdvanceCost);

                            if (rvInfo.boolValue && !rvInfo.isError)
                            {
                                RechargeRecord_rcr_Info record = new RechargeRecord_rcr_Info();

                                record.rcr_cRecordID = Guid.NewGuid();
                                record.rcr_cCardID = cardInfo.ccm_cCardID;
                                record.rcr_cRechargeType = DefineConstantValue.ConsumeMoneyFlowType.Recharge_AdvanceMoney.ToString();
                                record.rcr_cStatus = DefineConstantValue.ConsumeMoneyFlowStatus.Finished.ToString();
                                record.rcr_cUserID = userID;
                                record.rcr_dRechargeTime = DateTime.Now;
                                record.rcr_cAdd = base.UserInformation.usm_cUserLoginID;
                                record.rcr_cLast = record.rcr_cAdd;
                                record.rcr_dLastDate = record.rcr_dRechargeTime;
                                record.rcr_fRechargeMoney = fAdvanceCost;

                                //成功充值后,将充值信息计入相应记录表
                                rvInfo = this._IRechargeRecordBL.Save(record, DefineConstantValue.EditStateEnum.OE_Insert);
                                if (!rvInfo.boolValue || rvInfo.isError)
                                {
                                    //卡充值失败,将原金额扣除
                                    rvInfo = this._Reader.Recharge((short)base._CardInfoSection, base._SectionPwd, fAdvanceCost * -1);

                                    rvInfo.messageText = "发卡成功,保存预充透支金额失败。";
                                    rvInfo.isError = true;
                                    return rvInfo;
                                }

                                ConsumeCardInfo cardCurrentInfo = this._Reader.ReadCardInfo(base._CardInfoSection, base._SectionPwd);
                                string strContent = "发卡成功。" + Environment.NewLine + "学生姓名:" + userInfo.cus_cChaName;
                                if (cardCurrentInfo != null)
                                {
                                    strContent += Environment.NewLine + "卡可用余额:¥" + cardCurrentInfo.CardBalance.ToString() + "元。";
                                    strContent += Environment.NewLine + "(包含可透支金额:¥" + fAdvanceCost.ToString() + "元)";
                                    strContent += Environment.NewLine + "新卡工本费:¥" + fNewCardCost.ToString() + "元。";
                                }

                                rvInfo.messageText = strContent;
                            }//CardRecharge
                            else
                            {
                                rvInfo.messageText = "发卡成功,消费卡充入预支款失败。";
                                rvInfo.isError = true;
                                return rvInfo;
                            }

                            #endregion
                        }
                        else if (userInfo.cus_cIdentityNum == DefineConstantValue.CodeMasterDefine.KEY2_SIOT_CardUserIdentity_Staff)
                        {
                            #region 老师卡发卡

                            rvInfo.messageText = "发卡成功。" + Environment.NewLine
                                + "老师姓名:" + userInfo.cus_cChaName + "。" + Environment.NewLine
                                + "新卡工本费:" + fNewCardCost.ToString() + "。";

                            #endregion
                        }

                        #endregion
                        rvInfo.ValueObject = currentPair;

                        //*********4、查询是否有预充值款项,有则进行预充值*********
                        //查找该用户是否有【转账充值】款项
                        List<PreRechargeRecord_prr_Info> listPreRecharge = this._IPreRechargeRecordBL.SearchRecords(new PreRechargeRecord_prr_Info()
                        {
                            prr_cUserID = userID,
                            prr_cStatus = Common.DefineConstantValue.ConsumeMoneyFlowStatus.WaitForAcceptTransfer.ToString()
                        });
                        if (listPreRecharge != null && listPreRecharge.Count > 0)
                        {
                            #region 预充值

                            //查找该用户是否有未付的【预消费】款项
                            decimal fSumPreCost = decimal.Zero;//未结算消费总额
                            List<PreConsumeRecord_pcs_Info> listPreCost = this._IPreConsumeRecordBL.SearchRecords(new PreConsumeRecord_pcs_Info()
                            {
                                pcs_cUserID = userID,
                            });
                            if (listPreCost != null)
                            {
                                listPreCost = listPreCost.Where(x =>
                                    x.pcs_lIsSettled == false
                                    && x.pcs_cConsumeType != Common.DefineConstantValue.ConsumeMoneyFlowType.IndeterminateCost.ToString()
                                    && x.pcs_cConsumeType != Common.DefineConstantValue.ConsumeMoneyFlowType.AdvanceMealCost.ToString()
                                    && x.pcs_cConsumeType != Common.DefineConstantValue.ConsumeMoneyFlowType.HedgeFund.ToString()
                                    ).ToList();
                                if (listPreCost.Count > 0)
                                {
                                    fSumPreCost = listPreCost.Sum(x => x.pcs_fCost);
                                }
                            }

                            ConsumeCardInfo CardInfo = this._Reader.ReadCardInfo(base._CardInfoSection, base._SectionPwd);
                            if (CardInfo == null)
                            {
                                rvInfo.messageText += Environment.NewLine + "确认卡片信息失败,无法继续进行预充值操作。";
                                rvInfo.boolValue = false;
                                return rvInfo;
                            }
                            decimal fCardBalance = CardInfo.CardBalance;//卡片现可用余额
                            decimal fPreRecharge = listPreRecharge.Sum(x => x.prr_fRechargeMoney);//预充值累积款
                            decimal fCardRecharge = fPreRecharge + fSumPreCost;//预充值款 + 未结算预付款  = 卡片应充值金额

                            if (fPreRecharge > 0 && fCardRecharge >= 0)
                            {
                                #region 存在预充值记录,并且足以扣除未结算款项

                                ReturnValueInfo rvInfoPreRecharge = this._Reader.Recharge(base._CardInfoSection, base._SectionPwd, fCardRecharge);
                                if (rvInfoPreRecharge.boolValue && !rvInfoPreRecharge.isError)
                                {
                                    List<RechargeRecord_rcr_Info> listRechargeInsert = new List<RechargeRecord_rcr_Info>();
                                    decimal fPerTimeRecharge = fSumPreCost;

                                    //foreach (PreRechargeRecord_prr_Info preRecItem in listPreRecharge)
                                    //{
                                    //    RechargeRecord_rcr_Info rechargeRecord = new RechargeRecord_rcr_Info();
                                    //    rechargeRecord.rcr_cAdd = base.UserInformation.usm_cUserLoginID;
                                    //    rechargeRecord.rcr_cCardID = pairInfo.ucp_cCardID;
                                    //    rechargeRecord.rcr_cLast = base.UserInformation.usm_cUserLoginID;
                                    //    rechargeRecord.rcr_cRechargeType = preRecItem.prr_cRechargeType;
                                    //    rechargeRecord.rcr_cRecordID = Guid.NewGuid();
                                    //    rechargeRecord.rcr_cStatus = DefineConstantValue.ConsumeMoneyFlowStatus.Finished.ToString();
                                    //    rechargeRecord.rcr_cUserID = pairInfo.ucp_cCUSID;
                                    //    rechargeRecord.rcr_dLastDate = DateTime.Now;
                                    //    rechargeRecord.rcr_dRechargeTime = DateTime.Now;
                                    //    rechargeRecord.rcr_fRechargeMoney = preRecItem.prr_fRechargeMoney;

                                    //    fPerTimeRecharge += preRecItem.prr_fRechargeMoney;
                                    //    if (fPerTimeRecharge < 0)
                                    //    {
                                    //        rechargeRecord.rcr_fBalance = fCardBalance;
                                    //    }
                                    //    else
                                    //    {
                                    //        rechargeRecord.rcr_fBalance = fCardBalance + fPerTimeRecharge;
                                    //    }

                                    //    preRecItem.prr_cRCRID = rechargeRecord.rcr_cRecordID;
                                    //    listRechargeInsert.Add(rechargeRecord);
                                    //}

                                    for (int i = 0; i < listPreRecharge.Count; i++)
                                    {
                                        RechargeRecord_rcr_Info rechargeRecord = new RechargeRecord_rcr_Info();
                                        rechargeRecord.rcr_cAdd = base.UserInformation.usm_cUserLoginID;
                                        rechargeRecord.rcr_cCardID = pairInfo.ucp_cCardID;
                                        rechargeRecord.rcr_cLast = base.UserInformation.usm_cUserLoginID;
                                        rechargeRecord.rcr_cRechargeType = listPreRecharge[i].prr_cRechargeType;
                                        rechargeRecord.rcr_cRecordID = Guid.NewGuid();
                                        rechargeRecord.rcr_cStatus = DefineConstantValue.ConsumeMoneyFlowStatus.Finished.ToString();
                                        rechargeRecord.rcr_cUserID = pairInfo.ucp_cCUSID;
                                        rechargeRecord.rcr_dLastDate = DateTime.Now;
                                        rechargeRecord.rcr_dRechargeTime = DateTime.Now;
                                        rechargeRecord.rcr_fRechargeMoney = listPreRecharge[i].prr_fRechargeMoney;

                                        fPerTimeRecharge += listPreRecharge[i].prr_fRechargeMoney;
                                        if (fPerTimeRecharge < 0)
                                        {
                                            //rechargeRecord.rcr_fBalance = fCardBalance;

                                            if (i != listPreRecharge.Count - 1)
                                            {
                                                rechargeRecord.rcr_fBalance = fCardBalance;
                                            }
                                            else
                                            {
                                                rechargeRecord.rcr_fBalance = fCardBalance + fPerTimeRecharge;
                                            }
                                        }
                                        else
                                        {
                                            rechargeRecord.rcr_fBalance = fCardBalance + fPerTimeRecharge;
                                        }

                                        listPreRecharge[i].prr_cRCRID = rechargeRecord.rcr_cRecordID;
                                        listRechargeInsert.Add(rechargeRecord);
                                    }

                                    rvInfoPreRecharge = this._IRechargeRecordBL.UpdateRechargeRecord(listPreRecharge, listRechargeInsert, fSumPreCost);

                                    if (rvInfoPreRecharge.boolValue && !rvInfoPreRecharge.isError)
                                    {
                                        rvInfo.messageText += Environment.NewLine + "存在预转账记录" + listPreRecharge.Count.ToString() + "条,款项合共:¥" + fPreRecharge.ToString() + "元,已成功充入。";
                                        rvInfo.boolValue = true;
                                        return rvInfo;
                                    }
                                    else
                                    {
                                        rvInfoPreRecharge = this._Reader.Recharge(base._CardInfoSection, base._SectionPwd, fPreRecharge);
                                        if (rvInfoPreRecharge.isError || !rvInfoPreRecharge.boolValue)
                                        {
                                            rvInfo.messageText += Environment.NewLine + "保存预充值记录失败,卡片金额已更新,请联系管理员扣减卡金额。";
                                        }
                                    }
                                }
                                else
                                {
                                    rvInfo.messageText += Environment.NewLine + "预充值操作失败,无法将该用户的待转账款项充入卡内,请稍后手动转账充值。" + Environment.NewLine + rvInfoPreRecharge.messageText;
                                    rvInfo.boolValue = false;
                                }

                                #endregion
                            }
                            else
                            {
                                if (fCardRecharge < 0)
                                {
                                    rvInfo.messageText += Environment.NewLine + "本用户有转账充值记录" + listPreRecharge.Count.ToString() + "条,但不足以抵扣未结算预付款,请充值。";
                                    rvInfo.boolValue = true;
                                    return rvInfo;
                                }
                            }

                            #endregion
                        }
                        else
                        {
                            rvInfo.boolValue = true;
                            return rvInfo;
                        }
                    }
                    else
                    {
                        rvInfo.messageText = "保存新发卡资料失败。" + rvInfo.messageText;
                        rvInfo.isError = true;
                        return rvInfo;
                    }
                }
                catch (Exception ex)
                {
                    rvInfo.messageText = ex.Message;
                    rvInfo.isError = true;
                    return rvInfo;
                }
            }
            catch (Exception exAll)
            {
                rvInfo.messageText = exAll.Message;
                rvInfo.isError = true;
            }
            return rvInfo;
        }
Example #8
0
        /// <summary>
        /// 添加已发卡的卡信息
        /// </summary>
        /// <param name="pairInfo"></param>
        /// <returns></returns>
        bool AddCardMasterInfo(UserCardPair_ucp_Info pairInfo)
        {
            bool res = false;
            try
            {
                ConsumeCardMaster_ccm_Info searchInfo = new ConsumeCardMaster_ccm_Info();
                searchInfo.ccm_cCardID = pairInfo.ucp_cCardID;
                pairInfo.CardInfo = this._IConsumeCardMasterDA.DisplayRecord(searchInfo);
                if (pairInfo.CardOwner != null)
                    res = true;
            }
            catch (Exception ex)
            {

                throw ex;
            }
            return res;
        }
Example #9
0
        public ReturnValueInfo Save(IModelObject itemEntity, DefineConstantValue.EditStateEnum EditMode)
        {
            ReturnValueInfo rvInfo = new ReturnValueInfo();
            try
            {
                DefineConstantValue.CardUseState cardState = DefineConstantValue.CardUseState.NotUsed;

                UserCardPair_ucp_Info pairInfo = itemEntity as UserCardPair_ucp_Info;

                if (pairInfo == null)
                {
                    rvInfo.isError = true;
                    rvInfo.messageText = Common.DefineConstantValue.SystemMessageText.strMessageText_E_ObjectNull;
                    return rvInfo;
                }

                switch (EditMode)
                {
                    case DefineConstantValue.EditStateEnum.OE_Insert:
                        {
                            //如果无被发卡,则插入发卡记录
                            rvInfo = CheckPairDetail(pairInfo);
                            if (!rvInfo.boolValue || rvInfo.isError)
                            {
                                return rvInfo;
                            }

                            pairInfo.ucp_dPairTime = DateTime.Now;
                            pairInfo.ucp_dAddDate = pairInfo.ucp_dPairTime;
                            pairInfo.ucp_dLastDate = pairInfo.ucp_dPairTime;

                            rvInfo = this._IUserCardPairDA.InsertRecord(pairInfo);
                            cardState = DefineConstantValue.CardUseState.InUse;
                            break;
                        }
                    case DefineConstantValue.EditStateEnum.OE_Update:

                        pairInfo.ucp_dLastDate = DateTime.Now;

                        rvInfo = this._IUserCardPairDA.UpdateRecord(pairInfo);
                        cardState = DefineConstantValue.CardUseState.InUse;
                        break;
                    case DefineConstantValue.EditStateEnum.OE_Delete:

                        pairInfo.ucp_dLastDate = DateTime.Now;

                        rvInfo = this._IUserCardPairDA.DeleteRecord(pairInfo);
                        cardState = DefineConstantValue.CardUseState.NotUsed;
                        break;
                    default:
                        break;
                }

                rvInfo.ValueObject = this._IUserCardPairDA.DisplayRecord(pairInfo);

                if (rvInfo.boolValue && !rvInfo.isError)
                {
                    //检查本卡是否已经录入卡主档
                    ConsumeCardMaster_ccm_Info searchCardInfo = new ConsumeCardMaster_ccm_Info();
                    searchCardInfo.ccm_cCardID = pairInfo.ucp_cCardID;
                    ConsumeCardMaster_ccm_Info cardInfo = this._IConsumeCardMasterDA.DisplayRecord(searchCardInfo);

                    if (cardInfo == null)//查无此卡
                    {
                        cardInfo = new ConsumeCardMaster_ccm_Info();
                        cardInfo.ccm_cCardID = pairInfo.ucp_cCardID;
                        cardInfo.ccm_cCardState = cardState.ToString();
                        cardInfo.ccm_cAdd = pairInfo.ucp_cLast;
                        cardInfo.ccm_dAddDate = DateTime.Now;
                        cardInfo.ccm_dLastDate = cardInfo.ccm_dAddDate;
                        //将新卡录入卡主档
                        rvInfo = this._IConsumeCardMasterDA.InsertRecord(cardInfo);
                    }
                    else
                    {
                        if (EditMode != DefineConstantValue.EditStateEnum.OE_Delete)
                        {
                            if (cardInfo.ccm_cCardState != DefineConstantValue.CardUseState.InUse.ToString())
                            {
                                cardInfo.ccm_cCardState = DefineConstantValue.CardUseState.InUse.ToString();
                                rvInfo = this._IConsumeCardMasterDA.UpdateRecord(cardInfo);
                            }
                        }
                        else
                        {
                            if (cardInfo.ccm_cCardState != DefineConstantValue.CardUseState.NotUsed.ToString())
                            {
                                cardInfo.ccm_cCardState = DefineConstantValue.CardUseState.NotUsed.ToString();
                                rvInfo = this._IConsumeCardMasterDA.UpdateRecord(cardInfo);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                rvInfo.isError = true;
                rvInfo.messageText = ex.Message;
            }
            return rvInfo;
        }