public frmCardInfoDetail(UserCardPair_ucp_Info ucpInfo) { InitializeComponent(); _iccmBL = MasterBLLFactory.GetBLL<IConsumeCardMasterBL>(MasterBLLFactory.ConsumeCardMaster); _ucpInfo = ucpInfo; init(); }
/// <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; }
/// <summary> /// 接受不同类型的条件参数 /// </summary> /// <param name="itemEntity">参数可以为实体CardUserMaster_cus_Info、ConsumeCardMaster_ccm_Info</param> /// <returns></returns> UserCardPair_ucp_Info GetPairEntityCondiction(IModelObject itemEntity) { UserCardPair_ucp_Info searchInfo = itemEntity as UserCardPair_ucp_Info; if (searchInfo != null) { return searchInfo; } CardUserMaster_cus_Info userInfo = itemEntity as CardUserMaster_cus_Info; if (userInfo == null) { ConsumeCardMaster_ccm_Info cardInfo = itemEntity as ConsumeCardMaster_ccm_Info; if (cardInfo == null) { return null; } else { searchInfo = new UserCardPair_ucp_Info(); searchInfo.ucp_cCardID = cardInfo.ccm_cCardID; } } else { searchInfo = new UserCardPair_ucp_Info(); searchInfo.ucp_cCUSID = userInfo.cus_cRecordID; //searchInfo.ucp_cUseStatus = DefineConstantValue.ConsumeCardStatus.Normal.ToString(); } return searchInfo; }
public List<UserCardPair_ucp_Info> GetUnusualCardList() { List<UserCardPair_ucp_Info> listPairs = null; try { StringBuilder sbSQL = new StringBuilder(); //sbSQL.AppendLine("select top"); //sbSQL.AppendLine(Common.DefineConstantValue.ListRecordMaxCount.ToString()); //sbSQL.AppendLine("* from UserCardPair_ucp with(nolock)"); //sbSQL.AppendLine("where ucp_cCardID not in("); //sbSQL.AppendLine("select ucp_cCardID from UserCardPair_ucp with(nolock)"); //sbSQL.AppendLine("where ucp_cUseStatus='Normal')"); //sbSQL.AppendLine("and (ucp_dLastDate>=DATEADD(MONTH,-6,GETDATE())"); //sbSQL.AppendLine("or ucp_cUseStatus='LoseReporting')"); sbSQL.AppendLine("select * from UserCardPair_ucp with(nolock)"); sbSQL.AppendLine("where ucp_cUseStatus<>'Normal' and ucp_dPairTime>=DATEADD(MONTH,-12,GETDATE())"); using (SqlDataReader reader = DbHelperSQL.ExecuteReader(sbSQL.ToString())) { listPairs = new List<UserCardPair_ucp_Info>(); while (reader.Read()) { UserCardPair_ucp_Info pairInfo = new UserCardPair_ucp_Info(); if (reader["ucp_cRecordID"] != null && reader["ucp_cRecordID"].ToString() != string.Empty) { pairInfo.ucp_cRecordID = new Guid(reader["ucp_cRecordID"].ToString()); } if (reader["ucp_iCardNo"] != null && reader["ucp_iCardNo"].ToString() != string.Empty) { pairInfo.ucp_iCardNo = int.Parse(reader["ucp_iCardNo"].ToString()); } if (reader["ucp_cCardID"] != null && reader["ucp_cCardID"].ToString() != string.Empty) { pairInfo.ucp_cCardID = reader["ucp_cCardID"].ToString(); } if (reader["ucp_cCUSID"] != null && reader["ucp_cCUSID"].ToString() != string.Empty) { pairInfo.ucp_cCUSID = new Guid(reader["ucp_cCUSID"].ToString()); } if (reader["ucp_dPairTime"] != null && reader["ucp_dPairTime"].ToString() != string.Empty) { pairInfo.ucp_dPairTime = DateTime.Parse(reader["ucp_dPairTime"].ToString()); } if (reader["ucp_dReturnTime"] != null && reader["ucp_dReturnTime"].ToString() != string.Empty) { pairInfo.ucp_dReturnTime = DateTime.Parse(reader["ucp_dReturnTime"].ToString()); } if (reader["ucp_cUseStatus"] != null && reader["ucp_cUseStatus"].ToString() != string.Empty) { pairInfo.ucp_cUseStatus = reader["ucp_cUseStatus"].ToString(); } if (reader["ucp_lIsActive"] != null && reader["ucp_lIsActive"].ToString() != string.Empty) { pairInfo.ucp_lIsActive = bool.Parse(reader["ucp_lIsActive"].ToString()); } if (reader["ucp_cAdd"] != null && reader["ucp_cAdd"].ToString() != string.Empty) { pairInfo.ucp_cAdd = reader["ucp_cAdd"].ToString(); } if (reader["ucp_dAddDate"] != null && reader["ucp_dAddDate"].ToString() != string.Empty) { pairInfo.ucp_dAddDate = DateTime.Parse(reader["ucp_dAddDate"].ToString()); } if (reader["ucp_cLast"] != null && reader["ucp_cLast"].ToString() != string.Empty) { pairInfo.ucp_cLast = reader["ucp_cLast"].ToString(); } if (reader["ucp_dLastDate"] != null && reader["ucp_dLastDate"].ToString() != string.Empty) { pairInfo.ucp_dLastDate = DateTime.Parse(reader["ucp_dLastDate"].ToString()); } listPairs.Add(pairInfo); } } } catch (Exception ex) { throw ex; } return listPairs; }
/// <summary> /// 计算预付款欠款值 /// </summary> /// <param name="pairInfo">发卡资料</param> private void computePreCost(UserCardPair_ucp_Info pairInfo) { //计算未付的预付款金额 List<PreConsumeRecord_pcs_Info> listPreCost = this._IPreConsumeRecordBL.SearchRecords(new PreConsumeRecord_pcs_Info() { pcs_cUserID = pairInfo.ucp_cCUSID }); 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 != null) { if (listPreCost.Count > 0) { decimal fSumPreCost = listPreCost.Sum(x => x.pcs_fCost); labPreCost.Text = Math.Round(fSumPreCost, 2).ToString(); btnPreCostDetail.Enabled = true; ckbPreCost.Enabled = true; } else { labPreCost.Text = "0.00"; } } else { labPreCost.Text = "未付金额信息异常"; } }
/// <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 { } }
private void btnSelectUser_Click(object sender, EventArgs e) { dlgCardUserSelection dlg = new dlgCardUserSelection(); if (dlg.ShowDialog() == DialogResult.OK) { if (dlg.SelectedUser != null) { this._CurrentUser = dlg.SelectedUser; this._CurrentPair = dlg.SelectedUser.PairInfo; labUserName.Text = this._CurrentUser.cus_cChaName; labClassName.Text = dlg.SelectedUser.ClassInfo != null ? dlg.SelectedUser.ClassInfo.csm_cClassName : dlg.SelectedUser.DeptInfo.dpm_cName; labStuNum.Text = this._CurrentUser.cus_cStudentID; this.Cursor = Cursors.WaitCursor; //获取当前余额 CardUserAccount_cua_Info accountInfo = this._ICardUserAccountBL.SearchRecords(new CardUserAccount_cua_Info() { cua_cCUSID = this._CurrentUser.cus_cRecordID }).FirstOrDefault() as CardUserAccount_cua_Info; if (accountInfo != null) { labAccountBalance.Text = accountInfo.cua_fCurrentBalance.ToString(); labAccountSyncTime.Text = accountInfo.cua_dLastSyncTime.ToString("yyyy/MM/dd HH:mm:ss"); } tbxRefundMoney.Enabled = true; tbxRefundMoney.Focus(); btnConfirmRefund.Enabled = false; this.Cursor = Cursors.Default; } } }
/// <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; }
public ReturnValueInfo InsertNewCard(UserCardPair_ucp_Info infoObject, decimal dCost) { try { ReturnValueInfo rvInfo = this._IUserCardPairDA.InsertNewCard(infoObject, dCost); if (rvInfo.boolValue && !rvInfo.isError) { UserCardPair_ucp_Info pairInfo = DisplayRecord(new UserCardPair_ucp_Info() { ucp_cRecordID = infoObject.ucp_cRecordID }); this._IBlacklistChangeRecordBL.InsertUploadCardNo(pairInfo.ucp_iCardNo, DefineConstantValue.EnumCardUploadListOpt.AddWhiteList, DefineConstantValue.EnumCardUploadListReason.NewCard, infoObject.ucp_cLast); } return rvInfo; } catch (Exception ex) { throw ex; } }
public ReturnValueInfo InsertExchargeCard(UserCardPair_ucp_Info infoObject, decimal dCost) { try { return this._IUserCardPairDA.InsertExchargeCard(infoObject, dCost); } catch (Exception ex) { throw ex; } }
public ReturnValueInfo UpdateRecord(UserCardPair_ucp_Info infoObject) { ReturnValueInfo rvInfo = new ReturnValueInfo(); try { if (infoObject != null) { using (SIOTSDB_HHZXDataContext db = new SIOTSDB_HHZXDataContext()) { UserCardPair_ucp pair = db.UserCardPair_ucp.Where(x => x.ucp_cRecordID == infoObject.ucp_cRecordID).FirstOrDefault(); if (pair != null) { pair.ucp_cCardID = infoObject.ucp_cCardID; pair.ucp_cCUSID = infoObject.ucp_cCUSID; pair.ucp_cLast = infoObject.ucp_cLast; pair.ucp_cUseStatus = infoObject.ucp_cUseStatus; pair.ucp_dLastDate = infoObject.ucp_dLastDate; pair.ucp_dPairTime = infoObject.ucp_dPairTime; pair.ucp_dReturnTime = infoObject.ucp_dReturnTime; pair.ucp_lIsActive = infoObject.ucp_lIsActive; //pair.ucp_iCardNo = infoObject.ucp_iCardNo; db.SubmitChanges(); rvInfo.boolValue = true; } else { rvInfo.messageText = "GetEntity is null"; } } } else { rvInfo.messageText = Common.DefineConstantValue.SystemMessageText.strMessageText_E_ObjectNull; } } catch (Exception ex) { rvInfo.isError = true; rvInfo.messageText = ex.Message; } return rvInfo; }
public ReturnValueInfo ReturnCard(UserCardPair_ucp_Info infoObject) { ReturnValueInfo rvInfo = new ReturnValueInfo(); try { if (infoObject == null) { rvInfo.isError = true; rvInfo.messageText = Common.DefineConstantValue.SystemMessageText.strMessageText_E_ObjectNull; return rvInfo; } using (SIOTSDB_HHZXDataContext db = new SIOTSDB_HHZXDataContext()) { db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { UserCardPair_ucp pairInfo = db.UserCardPair_ucp.Where(x => x.ucp_cRecordID == infoObject.ucp_cRecordID).FirstOrDefault(); if (pairInfo != null) { pairInfo.ucp_cUseStatus = Common.DefineConstantValue.ConsumeCardStatus.Returned.ToString(); pairInfo.ucp_dReturnTime = infoObject.ucp_dReturnTime; pairInfo.ucp_cLast = infoObject.ucp_cLast; pairInfo.ucp_dLastDate = infoObject.ucp_dLastDate; db.SubmitChanges(); ConsumeCardMaster_ccm cardInfo = db.ConsumeCardMaster_ccm.Where(x => x.ccm_cCardID == infoObject.ucp_cCardID).FirstOrDefault(); if (cardInfo != null) { cardInfo.ccm_cCardState = Common.DefineConstantValue.CardUseState.NotUsed.ToString(); cardInfo.ccm_cLast = infoObject.ucp_cLast; cardInfo.ccm_dLastDate = infoObject.ucp_dLastDate; db.SubmitChanges(); } else { cardInfo = new ConsumeCardMaster_ccm(); cardInfo.ccm_cAdd = infoObject.ucp_cLast; cardInfo.ccm_cLast = infoObject.ucp_cLast; cardInfo.ccm_dAddDate = infoObject.ucp_dLastDate; cardInfo.ccm_dLastDate = infoObject.ucp_dLastDate; cardInfo.ccm_cCardState = Common.DefineConstantValue.CardUseState.NotUsed.ToString(); cardInfo.ccm_lIsActive = true; cardInfo.ccm_cCardID = infoObject.ucp_cCardID; db.ConsumeCardMaster_ccm.InsertOnSubmit(cardInfo); db.SubmitChanges(); } db.Transaction.Commit(); db.Connection.Close(); rvInfo.boolValue = true; } } catch (Exception exx) { db.Transaction.Rollback(); db.Connection.Close(); throw exx; } } } catch (Exception ex) { rvInfo.isError = true; rvInfo.messageText = ex.Message; } return rvInfo; }
public ReturnValueInfo InsertRecord(UserCardPair_ucp_Info infoObject) { ReturnValueInfo rvInfo = new ReturnValueInfo(); try { if (infoObject != null) { using (SIOTSDB_HHZXDataContext db = new SIOTSDB_HHZXDataContext()) { UserCardPair_ucp pair = Common.General.CopyObjectValue<UserCardPair_ucp_Info, UserCardPair_ucp>(infoObject); if (pair != null) { db.UserCardPair_ucp.InsertOnSubmit(pair); db.SubmitChanges(); rvInfo.boolValue = true; infoObject = Common.General.CopyObjectValue<UserCardPair_ucp, UserCardPair_ucp_Info>(pair); rvInfo.ValueObject = infoObject; } else { rvInfo.messageText = "TransEntity is null"; } } } else { rvInfo.messageText = Common.DefineConstantValue.SystemMessageText.strMessageText_E_ObjectNull; } } catch (Exception ex) { rvInfo.isError = true; rvInfo.messageText = ex.Message; } return rvInfo; }
public ReturnValueInfo InsertNewCard(UserCardPair_ucp_Info infoObject, decimal dCost) { ReturnValueInfo rvInfo = new ReturnValueInfo(); try { if (infoObject == null) { rvInfo.isError = true; rvInfo.messageText = Common.DefineConstantValue.SystemMessageText.strMessageText_E_ObjectNull; return rvInfo; } using (SIOTSDB_HHZXDataContext db = new SIOTSDB_HHZXDataContext()) { try { db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); ConsumeCardMaster_ccm cardInfo = db.ConsumeCardMaster_ccm.Where(x => x.ccm_cCardID == infoObject.ucp_cCardID).FirstOrDefault(); if (cardInfo == null) { //如未有卡主档信息,则添加 cardInfo = new ConsumeCardMaster_ccm(); cardInfo.ccm_cCardID = infoObject.ucp_cCardID; cardInfo.ccm_cCardState = Common.DefineConstantValue.CardUseState.InUse.ToString(); cardInfo.ccm_cAdd = infoObject.ucp_cLast; cardInfo.ccm_dAddDate = DateTime.Now; cardInfo.ccm_cLast = infoObject.ucp_cLast; cardInfo.ccm_dLastDate = DateTime.Now; cardInfo.ccm_lIsActive = true; db.ConsumeCardMaster_ccm.InsertOnSubmit(cardInfo); } else { //如已有卡主档信息,则更新卡的使用状态 cardInfo.ccm_cCardState = Common.DefineConstantValue.CardUseState.InUse.ToString(); cardInfo.ccm_cLast = infoObject.ucp_cLast; cardInfo.ccm_dLastDate = DateTime.Now; } //检查是否已发卡 UserCardPair_ucp pair = db.UserCardPair_ucp.Where(x => x.ucp_cCUSID == infoObject.ucp_cCUSID && x.ucp_cUseStatus == Common.DefineConstantValue.ConsumeCardStatus.Normal.ToString()).FirstOrDefault(); if (pair != null) { rvInfo.isError = true; rvInfo.messageText = "本用户已发卡,现用卡号为:" + pair.ucp_iCardNo.ToString(); return rvInfo; } pair = Common.General.CopyObjectValue<UserCardPair_ucp_Info, UserCardPair_ucp>(infoObject); if (pair != null) { pair.ucp_dAddDate = DateTime.Now; pair.ucp_dLastDate = DateTime.Now; db.UserCardPair_ucp.InsertOnSubmit(pair); db.SubmitChanges(); //查看是否已经创建账户 CardUserAccount_cua account = db.CardUserAccount_cua.Where(x => x.cua_cCUSID == pair.ucp_cCUSID).FirstOrDefault(); if (account == null) { //如未创建账户,则自动创建 account = new CardUserAccount_cua(); account.cua_cRecordID = Guid.NewGuid(); account.cua_cCUSID = pair.ucp_cCUSID; account.cua_fCurrentBalance = 0; account.cua_fOriginalBalance = 0; account.cua_dLastSyncTime = DateTime.Now; account.cua_lIsActive = true; account.cua_cAdd = pair.ucp_cAdd; account.cua_dAddDate = DateTime.Now; db.CardUserAccount_cua.InsertOnSubmit(account); db.SubmitChanges(); } decimal fFormula = -1; CodeMaster_cmt codeFormula = db.CodeMaster_cmt.Where(x => x.cmt_cKey1 == Common.DefineConstantValue.EnumFormulaKey.PRECOSTFORMULA.ToString() && x.cmt_cKey2 == Common.DefineConstantValue.ConsumeMoneyFlowType.NewCardCost.ToString()).FirstOrDefault(); if (codeFormula != null) { fFormula = codeFormula.cmt_fNumber; } //account.cua_fCurrentBalance += dCost * fFormula; //account.cua_dLastSyncTime = DateTime.Now; //db.SubmitChanges(); //插入【预消费记录】 PreConsumeRecord_pcs preConsume = new PreConsumeRecord_pcs(); preConsume.pcs_cAccountID = account.cua_cRecordID; preConsume.pcs_cRecordID = Guid.NewGuid(); preConsume.pcs_cUserID = infoObject.ucp_cCUSID; preConsume.pcs_cConsumeType = Common.DefineConstantValue.ConsumeMoneyFlowType.NewCardCost.ToString(); preConsume.pcs_dConsumeDate = DateTime.Now; preConsume.pcs_fCost = dCost; preConsume.pcs_cAdd = pair.ucp_cAdd; preConsume.pcs_dAddDate = DateTime.Now; if (dCost == 0) { preConsume.pcs_lIsSettled = true; preConsume.pcs_dSettleTime = DateTime.Now; } else { preConsume.pcs_lIsSettled = false; } preConsume.pcs_cSourceID = pair.ucp_cRecordID; db.PreConsumeRecord_pcs.InsertOnSubmit(preConsume); db.SubmitChanges(); db.Transaction.Commit(); rvInfo.boolValue = true; } else { rvInfo.isError = true; rvInfo.messageText = Common.DefineConstantValue.SystemMessageText.strMessageText_E_ObjectNull; return rvInfo; } } catch (Exception exx) { db.Transaction.Rollback(); db.Connection.Close(); throw exx; } } } catch (Exception ex) { rvInfo.isError = true; rvInfo.messageText = ex.Message; } return rvInfo; }
public ReturnValueInfo InsertExchargeCard(UserCardPair_ucp_Info infoObject, decimal dCost) { ReturnValueInfo rvInfo = new ReturnValueInfo(); try { if (infoObject != null) { using (SIOTSDB_HHZXDataContext db = new SIOTSDB_HHZXDataContext()) { db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { UserCardPair_ucp pair = Common.General.CopyObjectValue<UserCardPair_ucp_Info, UserCardPair_ucp>(infoObject); if (pair != null) { db.UserCardPair_ucp.InsertOnSubmit(pair); db.SubmitChanges(); // 用户账户不存在时,自动创建对应账户信息 CardUserAccount_cua accountInfo = db.CardUserAccount_cua.Where(x => x.cua_cCUSID == pair.ucp_cCUSID).FirstOrDefault(); if (accountInfo == null) { accountInfo = new CardUserAccount_cua(); accountInfo.cua_cCUSID = pair.ucp_cCUSID; accountInfo.cua_cRecordID = Guid.NewGuid(); accountInfo.cua_cAdd = pair.ucp_cLast; accountInfo.cua_dAddDate = DateTime.Now; accountInfo.cua_dLastSyncTime = DateTime.Now; accountInfo.cua_fCurrentBalance = 0; accountInfo.cua_fOriginalBalance = 0; accountInfo.cua_lIsActive = true; db.CardUserAccount_cua.InsertOnSubmit(accountInfo); db.SubmitChanges(); } //插入【预消费记录】 PreConsumeRecord_pcs preConsume = new PreConsumeRecord_pcs(); preConsume.pcs_cAccountID = accountInfo.cua_cRecordID; preConsume.pcs_cRecordID = Guid.NewGuid(); preConsume.pcs_cUserID = infoObject.ucp_cCUSID; preConsume.pcs_cConsumeType = Common.DefineConstantValue.ConsumeMoneyFlowType.ReplaceCardCost.ToString(); preConsume.pcs_dConsumeDate = DateTime.Now; preConsume.pcs_fCost = dCost; if (dCost == 0) { preConsume.pcs_lIsSettled = true; preConsume.pcs_dSettleTime = DateTime.Now; } else { preConsume.pcs_lIsSettled = false; } preConsume.pcs_cAdd = pair.ucp_cAdd; preConsume.pcs_cSourceID = pair.ucp_cRecordID; preConsume.pcs_dAddDate = DateTime.Now; preConsume.pcs_cSourceID = pair.ucp_cRecordID; db.PreConsumeRecord_pcs.InsertOnSubmit(preConsume); db.SubmitChanges(); db.Transaction.Commit(); rvInfo.boolValue = true; rvInfo.ValueObject = Common.General.CopyObjectValue<UserCardPair_ucp, UserCardPair_ucp_Info>(pair); } else { rvInfo.messageText = "TransEntity is null"; db.Transaction.Rollback(); } } catch (Exception exx) { db.Transaction.Rollback(); throw exx; } } } else { rvInfo.messageText = Common.DefineConstantValue.SystemMessageText.strMessageText_E_ObjectNull; } } catch (Exception ex) { rvInfo.isError = true; rvInfo.messageText = ex.Message; } return rvInfo; }
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; }
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 ReturnValueInfo ReturnCard(UserCardPair_ucp_Info infoObject) { try { ReturnValueInfo rvInfo = this._IUserCardPairDA.ReturnCard(infoObject); if (rvInfo.boolValue && !rvInfo.isError) { this._IBlacklistChangeRecordBL.InsertUploadCardNo(infoObject.ucp_iCardNo, DefineConstantValue.EnumCardUploadListOpt.RemoveWhiteList, DefineConstantValue.EnumCardUploadListReason.CardReturned, infoObject.ucp_cLast); } return rvInfo; } catch (Exception ex) { throw ex; } }
private void sysToolBar_OnItemDetail_Click(object sender, EventArgs e) { if (this.lvCardList.SelectedItems.Count > 0) { CardUserMaster_cus_Info cusInfo = new CardUserMaster_cus_Info(); cusInfo.cus_cChaName = this.lvCardList.SelectedItems[0].SubItems[2].Text; UserCardPair_ucp_Info ucpInfo = new UserCardPair_ucp_Info(); if (!String.IsNullOrEmpty(this.lvCardList.SelectedItems[0].SubItems[1].Text)) { ucpInfo.ucp_iCardNo = Int32.Parse(this.lvCardList.SelectedItems[0].SubItems[1].Text); } ucpInfo.ucp_cUseStatus = this.lvCardList.SelectedItems[0].SubItems[3].Text; ucpInfo.ucp_cCardID = this.lvCardList.SelectedItems[0].SubItems[5].Text; ucpInfo.CardOwner = cusInfo; frmCardInfoDetail dlgDetail = new frmCardInfoDetail(ucpInfo); if (dlgDetail.ShowDialog() == DialogResult.Yes) { } } else { this.ShowInformationMessage("请先选择一条记录!"); lvCardList.Focus(); } }
/// <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; }
private void btnConfirmRefund_Click(object sender, EventArgs e) { bool resUkey = base.CheckUKey(); if (!resUkey) { return; } if (string.IsNullOrEmpty(tbxRefundMoney.Text.Trim())) { this.ShowWarningMessage("请输入退款金额。"); tbxRefundMoney.Focus(); return; } decimal fRefund; bool res = decimal.TryParse(tbxRefundMoney.Text.Trim(), out fRefund); if (!res) { this.ShowWarningMessage("请检查退款金额的格式。"); tbxRefundMoney.Focus(); return; } if (fRefund <= 0) { this.ShowWarningMessage("退款金额需大于0,请重新输入。"); tbxRefundMoney.Focus(); return; } else if (fRefund > Common.DefineConstantValue.MaxRechargeVal) { this.ShowWarningMessage("退款金额不能大于" + Common.DefineConstantValue.MaxRechargeVal.ToString() + ",请重新输入。"); tbxRefundMoney.Focus(); tbxRefundMoney.SelectAll(); return; } //帐号余额 ConsumeCardInfo ccInfo = new ConsumeCardInfo(); ccInfo.CardBalance = decimal.Parse(this.labAccountBalance.Text); //查卡号 UserCardPair_ucp_Info ucpInfo = new UserCardPair_ucp_Info(); ucpInfo.ucp_cCUSID = this._CurrentUser.cus_cRecordID; List<UserCardPair_ucp_Info> ucpList = _IUserCardPairBL.SearchRecords(ucpInfo); if (ucpList != null && ucpList.Count > 0) { ucpList = ucpList.OrderBy(p => p.ucp_dAddDate).ToList(); ccInfo.CardNo = ucpList[0].ucp_iCardNo.ToString(); } else { if (MessageBox.Show("该用户未发卡,确认继续进行操作?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { } else { return; } } dlgConfirmInfo dlg = new dlgConfirmInfo(); dlg.RefundMoney = fRefund; dlg.UserInfo = this._CurrentUser; dlg.PreCostMoney = computePreCost(this._CurrentUser.cus_cRecordID); dlg.CardInfo = ccInfo; dlg.IsPrinted = cbxPrint.Checked; dlg.IsSkipPreCost = true; if (dlg.ShowDialog() == DialogResult.OK) { this.Cursor = Cursors.WaitCursor; try { PreRechargeRecord_prr_Info preRechargeInfo = new PreRechargeRecord_prr_Info(); preRechargeInfo.prr_cAdd = base.UserInformation.usm_cUserLoginID; preRechargeInfo.prr_cLast = base.UserInformation.usm_cUserLoginID; preRechargeInfo.prr_cRechargeType = Common.DefineConstantValue.ConsumeMoneyFlowType.Refund_PersonalTransfer.ToString(); preRechargeInfo.prr_cRecordID = Guid.NewGuid(); preRechargeInfo.prr_cStatus = Common.DefineConstantValue.ConsumeMoneyFlowStatus.WaitForAcceptTransfer.ToString(); preRechargeInfo.prr_cUserID = this._CurrentUser.cus_cRecordID; preRechargeInfo.prr_dRechargeTime = DateTime.Now; preRechargeInfo.prr_fRechargeMoney = fRefund; ReturnValueInfo rvInfo = this._IPreRechargeRecordBL.Save(preRechargeInfo, Common.DefineConstantValue.EditStateEnum.OE_Insert); if (rvInfo.boolValue && !rvInfo.isError) { base.ShowInformationMessage("转账成功,请通知卡用户进行退款确认。"); if (cbxPrint.Checked) { RechargeDetail rdInfo = new RechargeDetail(); //rdInfo.CardNo = Int32.Parse(this.labCardNo.Text); rdInfo.OperationTime = System.DateTime.Now; rdInfo.Operator = this.UserInformation.usm_cUserLoginID; rdInfo.RechargeValue = fRefund; rdInfo.UserName = this.labUserName.Text; rdInfo.ClassName = this.labClassName.Text; //打印小票 PrintTicket(rdInfo); } } else { base.ShowErrorMessage("转账失败。" + rvInfo.messageText); } } catch (Exception ex) { this.Cursor = Cursors.Default; this.ShowErrorMessage(ex); } ResetAllControls(); this.Cursor = Cursors.Default; } }
/// <summary> /// 添加用户的账户信息 /// </summary> /// <param name="userInfo"></param> void AddUserAccountInfo(UserCardPair_ucp_Info pairInfo) { if (pairInfo != null && pairInfo.CardOwner != null) { CardUserAccount_cua_Info accountInfo = this._ICardUserAccountDA.SearchRecords(new CardUserAccount_cua_Info() { cua_cCUSID = pairInfo.ucp_cCUSID }).FirstOrDefault(); if (accountInfo != null) { pairInfo.CardOwner.AccountInfo = accountInfo; } } }
private void btnRead_Click(object sender, EventArgs e) { if (this._IsConnected) { bool resUkey = base.CheckUKey(); if (!resUkey) { return; } this.Cursor = Cursors.WaitCursor; resetAllControls(); ConsumeCardInfo cardInfo = this._Reader.ReadCardInfo(base._CardInfoSection, base._SectionPwd); if (cardInfo != null) { this._CurrentCardInfo = cardInfo; labCardBalance.Text = cardInfo.CardBalance.ToString(); labCardNo.Text = cardInfo.CardNo.PadLeft(8, '0'); string strCardID = cardInfo.CardSourceID; //根据原始卡号查询发卡信息 UserCardPair_ucp_Info searchInfo = new UserCardPair_ucp_Info(); searchInfo.ucp_cCardID = strCardID; searchInfo.ucp_iCardNo = int.Parse(cardInfo.CardNo); List<UserCardPair_ucp_Info> listPairInfo = this._IUserCardPairBL.SearchRecords(searchInfo); listPairInfo = listPairInfo.Where(x => x.ucp_cUseStatus != Common.DefineConstantValue.ConsumeCardStatus.Returned.ToString()).ToList(); UserCardPair_ucp_Info pairInfo = null; if (listPairInfo == null || (listPairInfo != null && listPairInfo.Count < 1)) { this._PairInfo = null; pairInfo = null; this.Cursor = Cursors.Default; resetAllControls(); this.ShowWarningMessage("此卡未被发卡。"); return; } else { listPairInfo = listPairInfo.OrderByDescending(x => x.ucp_dPairTime).ToList(); this._PairInfo = listPairInfo[0]; pairInfo = listPairInfo[0]; if (pairInfo.ucp_cUseStatus == Common.DefineConstantValue.ConsumeCardStatus.LoseReporting.ToString()) { this.Cursor = Cursors.Default; resetAllControls(); this.ShowWarningMessage("此卡正在挂失中,请解挂后重试。"); return; } } if (pairInfo.CardOwner != null) { base._CurrentCardUserInfo = pairInfo.CardOwner; base._CurrentCardInfo = cardInfo; labUserName.Text = pairInfo.CardOwner.cus_cChaName; labStuNum.Text = pairInfo.CardOwner.cus_cStudentID; labClassName.Text = pairInfo.CardOwner.ClassInfo == null ? pairInfo.CardOwner.DeptInfo.dpm_cName : pairInfo.CardOwner.ClassInfo.csm_cClassName; // 获取用户账户资料 getAccountInfos(); //计算未结算款项 computePreCost(pairInfo); tbxDesc.Enabled = true; tbxDesc.Text = string.Empty; tbxRefundMoney.Enabled = true; tbxRefundMoney.Focus(); tbxRefundMoney.SelectAll(); } else { base._CurrentCardUserInfo = null; resetAllControls(); this.Cursor = Cursors.Default; this.ShowWarningMessage("获取消费卡用户信息异常,请重试。"); return; } } else { this.Cursor = Cursors.Default; resetAllControls(); this.ShowWarningMessage("读卡信息失败,请重试。"); return; } } else { this.Cursor = Cursors.Default; resetAllControls(); this.ShowWarningMessage("未连接到读写器,请检查设备连通性。"); return; } this.Cursor = Cursors.Default; }
/// <summary> /// 添加已发卡的卡用户信息 /// </summary> /// <param name="pairInfo"></param> /// <returns></returns> bool AddUserMasterInfo(UserCardPair_ucp_Info pairInfo) { bool res = false; try { if (pairInfo != null) { CardUserMaster_cus_Info searchInfo = new CardUserMaster_cus_Info(); searchInfo.cus_cRecordID = pairInfo.ucp_cCUSID; pairInfo.CardOwner = this._ICardUserMasterDA.DisplayRecord(searchInfo); if (pairInfo.CardOwner != null) { AddClassInfoToUser(pairInfo.CardOwner); res = true; } } } catch (Exception ex) { throw ex; } return res; }
private void ShowCardMessage() { try { UserCardPair_ucp_Info ucpInfo = new UserCardPair_ucp_Info(); ucpInfo.ucp_cCardID = _cardInfo.CardSourceID; ucpInfo.ucp_iCardNo = Int32.Parse(_cardInfo.CardNo); ucpInfo = _iucpBL.SearchRecords(ucpInfo).FirstOrDefault() as UserCardPair_ucp_Info; if (ucpInfo != null) { _userInfo = ucpInfo; this.lblChaName.Text = ucpInfo.CardOwner.cus_cChaName; this.lblCardNo.Text = ucpInfo.ucp_iCardNo.ToString(); this.btnSearch.Enabled = true; } else { base.MessageDialog("提示", "找不到卡资料!"); this.btnSearch.Enabled = false; } } catch { } }
/// <summary> /// 检查是否已被发卡 /// </summary> /// <param name="pairInfo"></param> /// <returns></returns> ReturnValueInfo CheckPairDetail(UserCardPair_ucp_Info pairInfo) { ReturnValueInfo rvInfo = new ReturnValueInfo(); //以卡主档记录查询 UserCardPair_ucp_Info searchInfo = new UserCardPair_ucp_Info(); searchInfo.ucp_cCardID = pairInfo.ucp_cCardID; List<UserCardPair_ucp_Info> listPair = this._IUserCardPairDA.SearchRecords(searchInfo); listPair = listPair.Where(x => x.ucp_cUseStatus == DefineConstantValue.ConsumeCardStatus.Normal.ToString() || x.ucp_cUseStatus == DefineConstantValue.ConsumeCardStatus.LoseReporting.ToString() && x.ucp_lIsActive).ToList(); if (listPair != null && listPair.Count > 0) { UserCardPair_ucp_Info pair = listPair[0]; AddUserMasterInfo(pair); if (pair != null) { rvInfo.isError = true; if (pair.CardOwner != null) { rvInfo.messageText = "此卡已被发卡,持有人为:" + pair.CardOwner.cus_cChaName; } return rvInfo; } } else { //以用户主档记录查询 searchInfo = new UserCardPair_ucp_Info(); searchInfo.ucp_cCUSID = pairInfo.ucp_cCUSID; listPair = this._IUserCardPairDA.SearchRecords(searchInfo); listPair = listPair.Where(x => x.ucp_cUseStatus == DefineConstantValue.ConsumeCardStatus.Normal.ToString() || x.ucp_cUseStatus == DefineConstantValue.ConsumeCardStatus.LoseReporting.ToString() && x.ucp_lIsActive).ToList(); if (listPair != null && listPair.Count > 0) { UserCardPair_ucp_Info pair = listPair[0]; if (pair != null) { rvInfo.isError = true; rvInfo.messageText = "此用户已被发卡,持有卡号:" + pair.ucp_iCardNo.ToString(); return rvInfo; } } } rvInfo.boolValue = true; return rvInfo; }