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 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; }